SPB Git

spb/lou-ka Public

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

HTML 99.7%

Mission 1a — couche commune : schéma enrichi, normalisation centrale, robustesse, tests

- schema.Listing : availability_date (ISO/now), area_sqft, pets, furnished,
  details (JSON structuré) + finalize() appliqué à toutes les sources
- normalize.py : dates FR/EN → ISO, superficies pi²/m², prix robuste,
  types d'unité (chambres→½, 6½+, MDV…), commodités → tags canoniques,
  stationnement/animaux/fumeur/contact extraits du texte
- db.py : migration auto, délai de grâce (2 syncs) avant désactivation,
  détection de dérive (volume + taux de prix null) avec retraits suspendus,
  cache des pages détail, cache de géocodage (préparé pour la carte)
- fixtures.py + run.py record : enregistrement/rejeu des réponses HTTP,
  tests de régression pytest par connecteur (snapshot + validité schéma)
- web.py : nouveaux filtres pets/furnished/available_by/area_min

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
simon-pierre boucher committed 2 days ago (Aug 8, 2026) parent ece6ed0

Showing 15 changed files with +19,732 and −94

modified louka/connectors/base.py +24 −0
@@ -31,11 +31,13 @@ class BaseConnector:
31 31 source_id: str = ""
32 32 request_delay: float = 0.6 # politesse entre requêtes
33 33 timeout: int = 30
34 + use_detail_cache: bool = True # cache BD des pages détail
34 35
35 36 def __init__(self) -> None:
36 37 self.session = requests.Session()
37 38 self.session.headers["User-Agent"] = USER_AGENT
38 39 self._last_request = 0.0
40 + self._detail_con = None
39 41
40 42 # -- backends -------------------------------------------------------------
41 43 def get(self, url: str, **kw) -> requests.Response:
@@ -67,6 +69,28 @@ class BaseConnector:
67 69 data = resp.json()
68 70 return (data.get("data") or {}).get("html", "")
69 71
72 + def detail(self, external_id: str, key: str, fetch_fn) -> dict:
73 + """Payload « page détail » avec cache : `fetch_fn` n'est appelé que si
74 + l'annonce est nouvelle ou si sa clé (hash du contenu liste) a changé.
75 +
76 + Permet d'extraire les champs riches (description, inclusions, contact…)
77 + sans revisiter chaque page détail à chaque synchronisation.
78 + `fetch_fn` doit retourner un dict JSON-sérialisable.
79 + """
80 + if not self.use_detail_cache:
81 + return fetch_fn() or {}
82 + from .. import db
83 + if self._detail_con is None:
84 + self._detail_con = db.connect()
85 + cached = db.get_cached_detail(self._detail_con, self.source_id,
86 + str(external_id), key)
87 + if cached is not None:
88 + return cached
89 + payload = fetch_fn() or {}
90 + db.put_cached_detail(self._detail_con, self.source_id,
91 + str(external_id), key, payload)
92 + return payload
93 +
70 94 # -- contrat --------------------------------------------------------------
71 95 def fetch(self) -> list[Listing]:
72 96 raise NotImplementedError
modified louka/db.py +202 −39
@@ -1,13 +1,15 @@
1 1 # -----------------------------------------------------------------------------
2 2 # Lou-Ka — Agrégateur de logements à louer (province de Québec)
3 3 # Auteur : Simon-Pierre Boucher — contact@spboucher.ai
4 # db.py : persistance SQLite, upsert avec détection de changements,
5 # désactivation automatique des annonces disparues (contenu toujours à jour)
4 +# db.py : persistance SQLite — upsert avec détection de changements,
5 +# cycle de vie avec délai de grâce (2 syncs), détection de dérive,
6 +# cache des pages détail, cache de géocodage.
6 7 # -----------------------------------------------------------------------------
7 8 from __future__ import annotations
8 9
9 10 import json
10 11 import sqlite3
12 +import statistics
11 13 import time
12 14 from pathlib import Path
13 15
@@ -15,6 +17,16 @@ from .schema import Listing
15 17
16 18 DB_PATH = Path(__file__).resolve().parent.parent / "data" / "louka.db"
17 19
20 +# Nombre d'exécutions consécutives où une annonce doit être absente de la
21 +# source avant d'être désactivée (délai de grâce contre les ratés ponctuels).
22 +MISS_GRACE = 2
23 +
24 +# Dérive : si une source retourne <= DRIFT_RATIO × sa médiane historique
25 +# (médiane >= DRIFT_MIN_BASE annonces), on alerte et on suspend les retraits.
26 +DRIFT_RATIO = 0.25
27 +DRIFT_MIN_BASE = 8
28 +DRIFT_HISTORY = 5
29 +
18 30 _SCHEMA = """
19 31 CREATE TABLE IF NOT EXISTS listings (
20 32 uid TEXT PRIMARY KEY,
@@ -29,15 +41,22 @@ CREATE TABLE IF NOT EXISTS listings (
29 41 price REAL,
30 42 price_label TEXT,
31 43 availability TEXT,
44 + availability_date TEXT,
45 + area_sqft REAL,
46 + pets TEXT,
47 + furnished INTEGER,
32 48 description TEXT,
33 amenities TEXT, -- JSON
49 + amenities TEXT, -- JSON (liste de textes source)
50 + details TEXT, -- JSON (champs structurés : inclusions, parking…)
34 51 images TEXT, -- JSON
35 52 lat REAL,
36 53 lng REAL,
54 + geocode_failed INTEGER DEFAULT 0,
37 55 content_hash TEXT,
38 56 first_seen REAL,
39 57 last_seen REAL,
40 58 updated_at REAL,
59 + miss_count INTEGER DEFAULT 0,
41 60 active INTEGER DEFAULT 1
42 61 );
43 62 CREATE INDEX IF NOT EXISTS idx_listings_source ON listings(source);
@@ -53,32 +72,114 @@ CREATE TABLE IF NOT EXISTS sync_log (
53 72 updated INTEGER,
54 73 removed INTEGER,
55 74 ok INTEGER,
56 message TEXT
75 + message TEXT,
76 + stats TEXT -- JSON : taux de champs null, missed, alerte…
77 +);
78 +
79 +CREATE TABLE IF NOT EXISTS detail_cache (
80 + source TEXT NOT NULL,
81 + external_id TEXT NOT NULL,
82 + key TEXT, -- hash du contenu « liste » de l'annonce
83 + payload TEXT, -- JSON opaque propre au connecteur
84 + fetched_at REAL,
85 + PRIMARY KEY (source, external_id)
86 +);
87 +
88 +CREATE TABLE IF NOT EXISTS geocode_cache (
89 + address TEXT PRIMARY KEY, -- adresse normalisée (clé de cache)
90 + lat REAL,
91 + lng REAL,
92 + provider TEXT,
93 + failed INTEGER DEFAULT 0,
94 + ts REAL
57 95 );
58 96 """
59 97
98 +# Colonnes ajoutées après la v1 — migration automatique des bases existantes.
99 +_MIGRATIONS = {
100 + "listings": {
101 + "availability_date": "TEXT",
102 + "area_sqft": "REAL",
103 + "pets": "TEXT",
104 + "furnished": "INTEGER",
105 + "details": "TEXT",
106 + "geocode_failed": "INTEGER DEFAULT 0",
107 + "miss_count": "INTEGER DEFAULT 0",
108 + },
109 + "sync_log": {
110 + "stats": "TEXT",
111 + },
112 +}
113 +
60 114
61 115 def connect() -> sqlite3.Connection:
62 116 DB_PATH.parent.mkdir(parents=True, exist_ok=True)
63 117 con = sqlite3.connect(DB_PATH)
64 118 con.row_factory = sqlite3.Row
65 119 con.executescript(_SCHEMA)
120 + for table, cols in _MIGRATIONS.items():
121 + existing = {r["name"] for r in con.execute(f"PRAGMA table_info({table})")}
122 + for col, decl in cols.items():
123 + if col not in existing:
124 + con.execute(f"ALTER TABLE {table} ADD COLUMN {col} {decl}")
125 + con.commit()
66 126 return con
67 127
68 128
129 +# ---------------------------------------------------------------------------
130 +# Synchronisation d'une source
131 +# ---------------------------------------------------------------------------
132 +
133 +def _drift_alert(con: sqlite3.Connection, source: str, found: int,
134 + null_price_rate: float) -> str | None:
135 + """Détecte une dérive du connecteur (chute du volume ou des prix extraits).
136 +
137 + Retourne un message d'alerte, ou None si tout est normal.
138 + """
139 + hist = con.execute(
140 + "SELECT found, stats FROM sync_log WHERE source=? AND ok=1"
141 + " ORDER BY ts DESC LIMIT ?", (source, DRIFT_HISTORY)).fetchall()
142 + if len(hist) < 3:
143 + return None
144 + med_found = statistics.median(r["found"] for r in hist)
145 + if med_found >= DRIFT_MIN_BASE and found <= DRIFT_RATIO * med_found:
146 + return (f"dérive: {found} annonce(s) trouvée(s) contre une médiane de "
147 + f"{med_found:.0f} — retraits suspendus, vérifier le connecteur")
148 + if found >= DRIFT_MIN_BASE and null_price_rate >= 0.8:
149 + rates = []
150 + for r in hist:
151 + try:
152 + rates.append(json.loads(r["stats"] or "{}")["null_price_rate"])
153 + except (KeyError, ValueError, TypeError):
154 + continue
155 + if rates and statistics.median(rates) <= 0.3:
156 + return (f"dérive: {null_price_rate:.0%} des annonces sans prix "
157 + f"(habituellement {statistics.median(rates):.0%}) — "
158 + "le format de la source a probablement changé")
159 + return None
160 +
161 +
69 162 def sync_source(con: sqlite3.Connection, source: str,
70 163 listings: list[Listing]) -> dict:
71 164 """Synchronise les annonces d'une source.
72 165
73 166 - nouvelle annonce -> insertion
74 167 - annonce modifiée -> mise à jour (comparaison de content_hash)
75 - annonce disparue -> active=0 (elle n'est plus affichée)
76 C'est l'équivalent « webhook » : chaque exécution détecte les changements.
168 + - annonce disparue -> miss_count += 1, puis active=0 après MISS_GRACE
169 + exécutions consécutives (délai de grâce)
170 + - dérive détectée -> alerte consignée, retraits suspendus
77 171 """
78 172 now = time.time()
79 173 added = updated = 0
80 174 seen_uids = set()
81 175
176 + n = len(listings)
177 + null_price = sum(1 for l in listings if l.price is None)
178 + null_addr = sum(1 for l in listings if not l.address)
179 + null_price_rate = round(null_price / n, 3) if n else 0.0
180 +
181 + alert = _drift_alert(con, source, n, null_price_rate)
182 +
82 183 for lst in listings:
83 184 seen_uids.add(lst.uid)
84 185 h = lst.content_hash()
@@ -89,8 +190,13 @@ def sync_source(con: sqlite3.Connection, source: str,
89 190 url=lst.url, title=lst.title, address=lst.address,
90 191 sector=lst.sector, city=lst.city, unit_type=lst.unit_type,
91 192 price=lst.price, price_label=lst.price_label,
92 availability=lst.availability, description=lst.description,
193 + availability=lst.availability,
194 + availability_date=lst.availability_date,
195 + area_sqft=lst.area_sqft, pets=lst.pets,
196 + furnished=(None if lst.furnished is None else int(lst.furnished)),
197 + description=lst.description,
93 198 amenities=json.dumps(lst.amenities, ensure_ascii=False),
199 + details=json.dumps(lst.details, ensure_ascii=False),
94 200 images=json.dumps(lst.images, ensure_ascii=False),
95 201 lat=lst.lat, lng=lst.lng, content_hash=h, now=now,
96 202 )
@@ -98,47 +204,74 @@ def sync_source(con: sqlite3.Connection, source: str,
98 204 con.execute(
99 205 """INSERT INTO listings (uid, source, external_id, url, title,
100 206 address, sector, city, unit_type, price, price_label,
101 availability, description, amenities, images, lat, lng,
102 content_hash, first_seen, last_seen, updated_at, active)
207 + availability, availability_date, area_sqft, pets, furnished,
208 + description, amenities, details, images, lat, lng,
209 + content_hash, first_seen, last_seen, updated_at,
210 + miss_count, active)
103 211 VALUES (:uid,:source,:external_id,:url,:title,:address,
104 212 :sector,:city,:unit_type,:price,:price_label,:availability,
105 :description,:amenities,:images,:lat,:lng,:content_hash,
106 :now,:now,:now,1)""", params)
213 + :availability_date,:area_sqft,:pets,:furnished,
214 + :description,:amenities,:details,:images,:lat,:lng,
215 + :content_hash,:now,:now,:now,0,1)""", params)
107 216 added += 1
217 + elif row["content_hash"] != h:
218 + # COALESCE : ne jamais écraser des coordonnées géocodées par null
219 + con.execute(
220 + """UPDATE listings SET url=:url, title=:title,
221 + address=:address, sector=:sector, city=:city,
222 + unit_type=:unit_type, price=:price,
223 + price_label=:price_label, availability=:availability,
224 + availability_date=:availability_date,
225 + area_sqft=:area_sqft, pets=:pets, furnished=:furnished,
226 + description=:description, amenities=:amenities,
227 + details=:details, images=:images,
228 + lat=COALESCE(:lat, lat), lng=COALESCE(:lng, lng),
229 + content_hash=:content_hash, last_seen=:now,
230 + updated_at=:now, miss_count=0, active=1
231 + WHERE uid=:uid""", params)
232 + updated += 1
108 233 else:
109 if row["content_hash"] != h:
234 + con.execute(
235 + "UPDATE listings SET last_seen=?, miss_count=0, active=1 WHERE uid=?",
236 + (now, lst.uid))
237 +
238 + # Annonces de cette source qui n'apparaissent plus : délai de grâce,
239 + # puis désactivation. Suspendu si une dérive est détectée.
240 + removed = missed = 0
241 + if not alert:
242 + for r in con.execute(
243 + "SELECT uid, miss_count FROM listings WHERE source=? AND active=1",
244 + (source,)).fetchall():
245 + if r["uid"] in seen_uids:
246 + continue
247 + missed += 1
248 + if r["miss_count"] + 1 >= MISS_GRACE:
110 249 con.execute(
111 """UPDATE listings SET url=:url, title=:title,
112 address=:address, sector=:sector, city=:city,
113 unit_type=:unit_type, price=:price,
114 price_label=:price_label, availability=:availability,
115 description=:description, amenities=:amenities,
116 images=:images, lat=:lat, lng=:lng,
117 content_hash=:content_hash, last_seen=:now,
118 updated_at=:now, active=1 WHERE uid=:uid""", params)
119 updated += 1
120 else:
121 con.execute("UPDATE listings SET last_seen=?, active=1 WHERE uid=?",
122 (now, lst.uid))
123
124 # Annonces de cette source qui n'apparaissent plus -> inactives
125 removed = 0
126 if seen_uids:
127 rows = con.execute(
128 "SELECT uid FROM listings WHERE source=? AND active=1", (source,))
129 for r in rows.fetchall():
130 if r["uid"] not in seen_uids:
131 con.execute("UPDATE listings SET active=0, updated_at=? WHERE uid=?",
132 (now, r["uid"]))
250 + "UPDATE listings SET active=0, miss_count=?, updated_at=?"
251 + " WHERE uid=?", (r["miss_count"] + 1, now, r["uid"]))
133 252 removed += 1
253 + else:
254 + con.execute("UPDATE listings SET miss_count=miss_count+1 WHERE uid=?",
255 + (r["uid"],))
134 256
257 + stats = {
258 + "null_price_rate": null_price_rate,
259 + "null_address_rate": round(null_addr / n, 3) if n else 0.0,
260 + "missed": missed,
261 + }
262 + if alert:
263 + stats["alert"] = alert
135 264 con.execute(
136 "INSERT INTO sync_log (source, ts, found, added, updated, removed, ok, message)"
137 " VALUES (?,?,?,?,?,?,1,?)",
138 (source, now, len(listings), added, updated, removed, "ok"))
265 + "INSERT INTO sync_log (source, ts, found, added, updated, removed, ok,"
266 + " message, stats) VALUES (?,?,?,?,?,?,1,?,?)",
267 + (source, now, n, added, updated, removed, alert or "ok",
268 + json.dumps(stats, ensure_ascii=False)))
139 269 con.commit()
140 return {"source": source, "found": len(listings), "added": added,
141 "updated": updated, "removed": removed}
270 + out = {"source": source, "found": n, "added": added,
271 + "updated": updated, "removed": removed}
272 + if alert:
273 + out["alert"] = alert
274 + return out
142 275
143 276
144 277 def log_failure(con: sqlite3.Connection, source: str, message: str) -> None:
@@ -146,3 +279,33 @@ def log_failure(con: sqlite3.Connection, source: str, message: str) -> None:
146 279 "INSERT INTO sync_log (source, ts, found, added, updated, removed, ok, message)"
147 280 " VALUES (?,?,0,0,0,0,0,?)", (source, time.time(), message))
148 281 con.commit()
282 +
283 +
284 +# ---------------------------------------------------------------------------
285 +# Cache des pages détail (« détail si nouveau/modifié »)
286 +# ---------------------------------------------------------------------------
287 +
288 +def get_cached_detail(con: sqlite3.Connection, source: str,
289 + external_id: str, key: str) -> dict | None:
290 + """Payload détail mis en cache si la clé (hash liste) n'a pas changé."""
291 + row = con.execute(
292 + "SELECT key, payload FROM detail_cache WHERE source=? AND external_id=?",
293 + (source, external_id)).fetchone()
294 + if row and row["key"] == key and row["payload"]:
295 + try:
296 + return json.loads(row["payload"])
297 + except ValueError:
298 + return None
299 + return None
300 +
301 +
302 +def put_cached_detail(con: sqlite3.Connection, source: str,
303 + external_id: str, key: str, payload: dict) -> None:
304 + con.execute(
305 + "INSERT INTO detail_cache (source, external_id, key, payload, fetched_at)"
306 + " VALUES (?,?,?,?,?)"
307 + " ON CONFLICT(source, external_id) DO UPDATE SET"
308 + " key=excluded.key, payload=excluded.payload, fetched_at=excluded.fetched_at",
309 + (source, external_id, key, json.dumps(payload, ensure_ascii=False),
310 + time.time()))
311 + con.commit()
added louka/fixtures.py +194 −0
@@ -0,0 +1,194 @@
1 +# -----------------------------------------------------------------------------
2 +# Lou-Ka — Agrégateur de logements à louer (province de Québec)
3 +# Auteur : Simon-Pierre Boucher — contact@spboucher.ai
4 +# fixtures.py : enregistrement/rejeu des réponses HTTP des sources.
5 +# `python run.py record <source>` capture toutes les réponses (HTML/JSON)
6 +# dans tests/fixtures/<source>/ + un instantané `expected.json` du parsing.
7 +# Les tests (tests/test_connectors.py) rejouent ces fixtures hors-ligne :
8 +# si un connecteur régresse, le test casse — sans toucher au site réel.
9 +# -----------------------------------------------------------------------------
10 +from __future__ import annotations
11 +
12 +import hashlib
13 +import json
14 +from pathlib import Path
15 +
16 +import requests
17 +from requests.adapters import BaseAdapter, HTTPAdapter
18 +
19 +from .schema import Listing
20 +
21 +ROOT = Path(__file__).resolve().parent.parent
22 +FIXTURES_DIR = ROOT / "tests" / "fixtures"
23 +
24 +
25 +class MissingFixture(Exception):
26 + """Le connecteur a demandé une URL absente des fixtures enregistrées."""
27 +
28 +
29 +def _req_key(method: str, url: str, body: bytes | str | None) -> str:
30 + if isinstance(body, str):
31 + body = body.encode("utf-8")
32 + h = hashlib.sha1()
33 + h.update(f"{method.upper()} {url} ".encode())
34 + if body:
35 + h.update(body)
36 + return h.hexdigest()[:20]
37 +
38 +
39 +def _ext_for(content_type: str) -> str:
40 + if "json" in content_type:
41 + return ".json"
42 + if "html" in content_type:
43 + return ".html"
44 + return ".txt"
45 +
46 +
47 +# ---------------------------------------------------------------------------
48 +# Enregistrement
49 +# ---------------------------------------------------------------------------
50 +
51 +class _RecordAdapter(HTTPAdapter):
52 + def __init__(self, store: dict, out_dir: Path):
53 + super().__init__()
54 + self.store = store
55 + self.out_dir = out_dir
56 +
57 + def send(self, request, **kwargs): # type: ignore[override]
58 + resp = super().send(request, **kwargs)
59 + key = _req_key(request.method or "GET", request.url or "", request.body)
60 + ctype = resp.headers.get("Content-Type", "")
61 + fname = key + _ext_for(ctype)
62 + (self.out_dir / fname).write_bytes(resp.content)
63 + self.store[key] = {
64 + "method": request.method, "url": request.url,
65 + "status": resp.status_code, "content_type": ctype, "file": fname,
66 + }
67 + if resp.headers.get("Location"):
68 + self.store[key]["location"] = resp.headers["Location"]
69 + return resp
70 +
71 +
72 +def record(source_id: str) -> dict:
73 + """Exécute le connecteur en enregistrant chaque réponse HTTP en fixture.
74 +
75 + Écrit tests/fixtures/<source>/{index.json, expected.json, *.html|json}.
76 + Retourne un résumé {source, requests, listings}.
77 + """
78 + from .connectors import CONNECTORS
79 + cls = CONNECTORS[source_id]
80 + out_dir = FIXTURES_DIR / source_id
81 + out_dir.mkdir(parents=True, exist_ok=True)
82 + for old in out_dir.iterdir():
83 + old.unlink()
84 +
85 + inst = cls()
86 + inst.use_detail_cache = False # capturer aussi les pages détail
87 + store: dict = {}
88 + adapter = _RecordAdapter(store, out_dir)
89 + inst.session.mount("https://", adapter)
90 + inst.session.mount("http://", adapter)
91 +
92 + # get_rendered (Firecrawl) : enregistrer le HTML rendu, clé = URL cible
93 + orig_rendered = inst.get_rendered
94 +
95 + def _rec_rendered(url: str) -> str:
96 + html = orig_rendered(url)
97 + key = _req_key("RENDERED", url, None)
98 + fname = key + ".html"
99 + (out_dir / fname).write_text(html, encoding="utf-8")
100 + store[key] = {"method": "RENDERED", "url": url, "status": 200,
101 + "content_type": "text/html", "file": fname}
102 + return html
103 +
104 + inst.get_rendered = _rec_rendered # type: ignore[method-assign]
105 +
106 + listings = inst.fetch()
107 + (out_dir / "index.json").write_text(
108 + json.dumps(store, ensure_ascii=False, indent=1), encoding="utf-8")
109 + (out_dir / "expected.json").write_text(
110 + json.dumps(snapshot(listings), ensure_ascii=False, indent=1),
111 + encoding="utf-8")
112 + return {"source": source_id, "requests": len(store),
113 + "listings": len(listings)}
114 +
115 +
116 +def snapshot(listings: list[Listing]) -> dict:
117 + """Instantané compact et déterministe du parsing (champs bruts, pré-finalize).
118 +
119 + La date de disponibilité normalisée dépend du jour d'exécution : on ne
120 + snapshotte que les champs stables pour éviter les tests fragiles.
121 + """
122 + rows = []
123 + for l in sorted(listings, key=lambda x: x.uid):
124 + rows.append({
125 + "uid": l.uid, "url": l.url, "title": l.title,
126 + "address": l.address, "sector": l.sector, "city": l.city,
127 + "unit_type": l.unit_type, "price": l.price,
128 + "availability": l.availability, "area_sqft": l.area_sqft,
129 + "n_images": len(l.images), "n_amenities": len(l.amenities),
130 + })
131 + return {"count": len(rows), "listings": rows}
132 +
133 +
134 +# ---------------------------------------------------------------------------
135 +# Rejeu
136 +# ---------------------------------------------------------------------------
137 +
138 +class _ReplayAdapter(BaseAdapter):
139 + def __init__(self, index: dict, fixtures_dir: Path):
140 + super().__init__()
141 + self.index = index
142 + self.dir = fixtures_dir
143 +
144 + def send(self, request, **kwargs): # type: ignore[override]
145 + key = _req_key(request.method or "GET", request.url or "", request.body)
146 + meta = self.index.get(key)
147 + if meta is None:
148 + raise MissingFixture(f"{request.method} {request.url}")
149 + resp = requests.models.Response()
150 + resp.status_code = meta["status"]
151 + resp._content = (self.dir / meta["file"]).read_bytes()
152 + resp.headers["Content-Type"] = meta.get("content_type", "")
153 + if meta.get("location"):
154 + resp.headers["Location"] = meta["location"]
155 + resp.url = request.url or ""
156 + resp.request = request
157 + resp.encoding = "utf-8"
158 + return resp
159 +
160 + def close(self):
161 + pass
162 +
163 +
164 +def replay_connector(source_id: str):
165 + """Instancie le connecteur branché sur ses fixtures (aucun réseau)."""
166 + from .connectors import CONNECTORS
167 + cls = CONNECTORS[source_id]
168 + fdir = FIXTURES_DIR / source_id
169 + index = json.loads((fdir / "index.json").read_text(encoding="utf-8"))
170 +
171 + inst = cls()
172 + inst.request_delay = 0.0 # pas de politesse hors-ligne
173 + inst.use_detail_cache = False # tests indépendants de la BD
174 + adapter = _ReplayAdapter(index, fdir)
175 + inst.session.mount("https://", adapter)
176 + inst.session.mount("http://", adapter)
177 +
178 + def _replay_rendered(url: str) -> str:
179 + key = _req_key("RENDERED", url, None)
180 + meta = index.get(key)
181 + if meta is None:
182 + raise MissingFixture(f"RENDERED {url}")
183 + return (fdir / meta["file"]).read_text(encoding="utf-8")
184 +
185 + inst.get_rendered = _replay_rendered # type: ignore[method-assign]
186 + return inst
187 +
188 +
189 +def recorded_sources() -> list[str]:
190 + """Sources ayant des fixtures enregistrées (pour paramétrer les tests)."""
191 + if not FIXTURES_DIR.exists():
192 + return []
193 + return sorted(p.name for p in FIXTURES_DIR.iterdir()
194 + if (p / "index.json").exists())
modified louka/ingest.py +11 −1
@@ -28,8 +28,18 @@ def run(sources: list[str] | None = None) -> list[dict]:
28 28 print(f"[lou-ka] sync {sid} ...")
29 29 try:
30 30 listings = cls().fetch()
31 stats = db.sync_source(con, sid, listings)
31 + finalized, dropped = [], 0
32 + for lst in listings:
33 + try:
34 + finalized.append(lst.finalize())
35 + except Exception: # une annonce malformée ne bloque pas la source
36 + dropped += 1
37 + stats = db.sync_source(con, sid, finalized)
32 38 stats["seconds"] = round(time.time() - t0, 1)
39 + if dropped:
40 + stats["dropped"] = dropped
41 + if stats.get("alert"):
42 + print(f"[lou-ka] ⚠ ALERTE {sid} : {stats['alert']}")
33 43 print(f"[lou-ka] {stats}")
34 44 results.append(stats)
35 45 except Exception as exc: # robustesse : une source ne bloque pas les autres
added louka/normalize.py +421 −0
@@ -0,0 +1,421 @@
1 +# -----------------------------------------------------------------------------
2 +# Lou-Ka — Agrégateur de logements à louer (province de Québec)
3 +# Auteur : Simon-Pierre Boucher — contact@spboucher.ai
4 +# normalize.py : couche de normalisation commune — chaque connecteur retourne
5 +# les champs bruts de sa source, ce module uniformise tout :
6 +# prix, dates de disponibilité, types d'unité, superficies,
7 +# commodités (tags canoniques), adresses, contacts.
8 +# -----------------------------------------------------------------------------
9 +from __future__ import annotations
10 +
11 +import re
12 +import unicodedata
13 +from datetime import date
14 +
15 +# ---------------------------------------------------------------------------
16 +# Utilitaires texte
17 +# ---------------------------------------------------------------------------
18 +
19 +_NBSP = (" ", " ", " ")
20 +
21 +
22 +def strip_accents(s: str) -> str:
23 + return "".join(c for c in unicodedata.normalize("NFD", s)
24 + if unicodedata.category(c) != "Mn")
25 +
26 +
27 +def _clean_text(s: str) -> str:
28 + """Espaces insécables -> espaces, espaces multiples réduits."""
29 + for ch in _NBSP:
30 + s = s.replace(ch, " ")
31 + return re.sub(r"\s+", " ", s).strip()
32 +
33 +
34 +def _key(s: str) -> str:
35 + """Texte en minuscules sans accents, pour matcher des mots-clés."""
36 + return strip_accents(_clean_text(s or "")).lower()
37 +
38 +
39 +def clean_address(raw: str) -> str:
40 + """Nettoie une adresse : espaces, virgules orphelines, casse conservée."""
41 + if not raw:
42 + return ""
43 + s = _clean_text(raw)
44 + s = re.sub(r"\s*,\s*", ", ", s) # virgules uniformes
45 + s = re.sub(r"(, )+", ", ", s) # virgules doublées
46 + return s.strip(" ,;-")
47 +
48 +
49 +# ---------------------------------------------------------------------------
50 +# Prix
51 +# ---------------------------------------------------------------------------
52 +
53 +_PRICE_FROM_RE = re.compile(
54 + r"a partir|des\s+\d|starting|\bfrom\b|\bdes\b\s*$|\+\s*$", re.I)
55 +
56 +
57 +def parse_price(raw: str) -> float | None:
58 + """Extrait un loyer mensuel : '1 195 $/mois', '$1,195', 'À partir de 995$'.
59 +
60 + Retourne le montant le plus bas si plusieurs, None si aucun montant
61 + plausible (100–20 000 $). Jamais de valeur inventée.
62 + """
63 + if not raw:
64 + return None
65 + s = _clean_text(str(raw))
66 + if "$" not in s:
67 + return None
68 + nums = []
69 + for m in re.finditer(r"(?:\$\s*)?(\d[\d\s]*(?:[.,]\d+)?)(?:\s*\$)?", s):
70 + # le nombre doit toucher un « $ » (avant ou après)
71 + start, end = m.span()
72 + near = s[max(0, start - 2):start] + m.group(0) + s[end:end + 2]
73 + if "$" not in near:
74 + continue
75 + num = m.group(1).replace(" ", "")
76 + # « 1,195 » = virgule de milliers ; « 1195,00 » = décimales
77 + if re.search(r",\d{3}(?:\D|$)", num + " "):
78 + num = num.replace(",", "")
79 + else:
80 + num = num.replace(",", ".")
81 + try:
82 + val = float(num)
83 + except ValueError:
84 + continue
85 + if 100 <= val <= 20000:
86 + nums.append(val)
87 + return min(nums) if nums else None
88 +
89 +
90 +def price_is_from(raw: str) -> bool:
91 + """Vrai si le prix est annoncé « à partir de »."""
92 + return bool(raw) and bool(_PRICE_FROM_RE.search(_key(raw)))
93 +
94 +
95 +# ---------------------------------------------------------------------------
96 +# Type d'unité
97 +# ---------------------------------------------------------------------------
98 +
99 +_UNIT_WORDS = [
100 + (re.compile(r"\bstudio\b|\bbachelor\b"), "Studio"),
101 + (re.compile(r"\bloft\b"), "Loft"),
102 + (re.compile(r"\bpenthouse\b"), "Penthouse"),
103 + (re.compile(r"\bcondo\b"), "Condo"),
104 + (re.compile(r"maison de ville|townhouse|\bmdv\b"), "Maison"),
105 + (re.compile(r"\bmaison\b|\bhouse\b|\bcottage\b"), "Maison"),
106 + (re.compile(r"\bchambre\b|\broom\b(?!s)"), "Chambre"),
107 +]
108 +
109 +
110 +def normalize_unit_type(raw: str) -> str:
111 + """Standardise le type d'unité vers l'énumération Lou-Ka.
112 +
113 + '4 1/2', '4½', '4,5', '4.5' -> '4½' ; '2 chambres' -> '4½' (n cc + 2) ;
114 + '6½' et plus -> '6½+' ; 'bachelor' -> 'Studio' ; 'MDV' -> 'Maison'.
115 + """
116 + if not raw:
117 + return ""
118 + s = _key(str(raw))
119 +
120 + # « 4 1/2 », « 4½ », « 4,5 », « 4.5 », « 5 1/5 » (coquille fréquente)
121 + m = re.search(r"(\d+)\s*(?:½|1/2|1/5|[.,]5)", s)
122 + if not m:
123 + # « 4 pièces et demie »
124 + m = re.search(r"(\d+)\s*pieces?\s*(?:et\s*demie?)?", s)
125 + if m:
126 + n = int(m.group(1))
127 + if n < 1:
128 + return ""
129 + return "6½+" if n >= 6 else f"{n}½"
130 +
131 + # « 2 chambres », « 3 cc », « 2 bedrooms » -> n + 2 pièces et demie
132 + m = re.search(r"(\d+)\s*(?:chambres?|\bcc\b|\bcac\b|bed(?:room)?s?\b|\bbdr\b)", s)
133 + if m:
134 + n = int(m.group(1)) + 2
135 + return "6½+" if n >= 6 else f"{n}½"
136 +
137 + for rx, label in _UNIT_WORDS:
138 + if rx.search(s):
139 + # « chambre » précédé d'un nombre a déjà été traité ci-dessus
140 + return label
141 + return _clean_text(str(raw))
142 +
143 +
144 +# ---------------------------------------------------------------------------
145 +# Date de disponibilité
146 +# ---------------------------------------------------------------------------
147 +
148 +_MONTHS = {
149 + "janvier": 1, "jan": 1, "january": 1,
150 + "fevrier": 2, "fev": 2, "feb": 2, "february": 2,
151 + "mars": 3, "mar": 3, "march": 3,
152 + "avril": 4, "avr": 4, "apr": 4, "april": 4,
153 + "mai": 5, "may": 5,
154 + "juin": 6, "jun": 6, "june": 6,
155 + "juillet": 7, "juil": 7, "jul": 7, "july": 7,
156 + "aout": 8, "aug": 8, "august": 8,
157 + "septembre": 9, "sept": 9, "sep": 9, "september": 9,
158 + "octobre": 10, "oct": 10, "october": 10,
159 + "novembre": 11, "nov": 11, "november": 11,
160 + "decembre": 12, "dec": 12, "december": 12,
161 +}
162 +_MONTH_RE = "|".join(sorted(_MONTHS, key=len, reverse=True))
163 +
164 +_NOW_RE = re.compile(
165 + r"immediat|maintenant|\bnow\b|des maintenant|\blibre\b|disponible|available|occupation immediate")
166 +
167 +
168 +def parse_availability_date(raw: str, today: date | None = None) -> str | None:
169 + """Normalise une disponibilité en date ISO, « now », ou None.
170 +
171 + « Libre immédiatement » -> "now" ; « 1er juillet » -> prochaine occurrence
172 + (ou "now" si déjà passée) ; « Disponibilité : 01 décembre 2026 » ->
173 + "2026-12-01" ; texte inconnu -> None (jamais de date inventée).
174 + """
175 + if not raw:
176 + return None
177 + today = today or date.today()
178 + s = _key(str(raw))
179 +
180 + def _build(y: int | None, m: int, d: int) -> str:
181 + if y is None:
182 + y = today.year
183 + if date(y, m, min(d, 28)) < today:
184 + # date sans année déjà passée : le logement est libre
185 + return "now"
186 + try:
187 + dt = date(y, m, d)
188 + except ValueError:
189 + dt = date(y, m, 1)
190 + return "now" if dt <= today else dt.isoformat()
191 +
192 + # ISO : 2026-07-01
193 + m = re.search(r"(20\d{2})-(\d{1,2})-(\d{1,2})", s)
194 + if m:
195 + return _build(int(m.group(1)), int(m.group(2)), int(m.group(3)))
196 +
197 + # 01/07/2026 ou 2026/07/01 (format jour/mois/année au Québec)
198 + m = re.search(r"(\d{1,2})[/.](\d{1,2})[/.](20\d{2})", s)
199 + if m:
200 + d, mo = int(m.group(1)), int(m.group(2))
201 + if mo > 12 and d <= 12:
202 + d, mo = mo, d
203 + if 1 <= mo <= 12:
204 + return _build(int(m.group(3)), mo, min(d, 28) if d > 31 else d)
205 + m = re.search(r"(20\d{2})[/.](\d{1,2})[/.](\d{1,2})", s)
206 + if m:
207 + return _build(int(m.group(1)), int(m.group(2)), int(m.group(3)))
208 +
209 + # « 1er juillet 2026 », « 01 décembre », « juillet 2026 », « déc. 2026 »
210 + m = re.search(
211 + rf"(?:(\d{{1,2}})(?:er|e)?\s+)?({_MONTH_RE})\.?\s*(20\d{{2}})?", s)
212 + if m and m.group(2):
213 + d = int(m.group(1)) if m.group(1) else 1
214 + mo = _MONTHS[m.group(2)]
215 + y = int(m.group(3)) if m.group(3) else None
216 + if 1 <= d <= 31:
217 + return _build(y, mo, d)
218 +
219 + # « July 1, 2026 » (mois déjà couvert ci-dessus) / « 2026 » seul : ignoré
220 + if _NOW_RE.search(s):
221 + return "now"
222 + return None
223 +
224 +
225 +# ---------------------------------------------------------------------------
226 +# Superficie
227 +# ---------------------------------------------------------------------------
228 +
229 +_AREA_SQFT_RE = re.compile(
230 + r"(\d[\d\s]*(?:[.,]\d+)?)\s*(?:pi\s*[²2]|pi\.?\s*ca|pieds?\s*carres?|sq\.?\s*-?\s*ft|ft\s*[²2]|sqft|pc\b|p[²2])", re.I)
231 +_AREA_SQM_RE = re.compile(
232 + r"(\d[\d\s]*(?:[.,]\d+)?)\s*(?:m\s*[²2]|metres?\s*carres?|sq\.?\s*m\b)", re.I)
233 +
234 +
235 +def parse_area_sqft(raw: str) -> float | None:
236 + """Superficie en pi². Gère « 850 pi² », « 850 sq. ft. », « 78 m² »."""
237 + if not raw:
238 + return None
239 + s = _key(str(raw))
240 +
241 + def _num(txt: str) -> float | None:
242 + try:
243 + return float(txt.replace(" ", "").replace(",", "."))
244 + except ValueError:
245 + return None
246 +
247 + vals = []
248 + for m in _AREA_SQFT_RE.finditer(s):
249 + v = _num(m.group(1))
250 + if v and 80 <= v <= 20000:
251 + vals.append(v)
252 + for m in _AREA_SQM_RE.finditer(s):
253 + v = _num(m.group(1))
254 + if v and 8 <= v <= 2000:
255 + vals.append(round(v * 10.7639))
256 + return min(vals) if vals else None
257 +
258 +
259 +# ---------------------------------------------------------------------------
260 +# Commodités -> tags canoniques (details JSON)
261 +# ---------------------------------------------------------------------------
262 +# Chaque règle : clé canonique -> (motifs positifs, motifs négatifs).
263 +# Les motifs sont matchés sur du texte sans accents en minuscules.
264 +# Absence de match = inconnu (la clé n'apparaît pas), jamais « false » deviné.
265 +
266 +_AMENITY_RULES: dict[str, tuple[str, str | None]] = {
267 + # inclusions
268 + "heating": (r"chauffage|chauffe[e]? |heating|heat included", r"chauffage non inclus|sans chauffage"),
269 + "electricity": (r"electricite|hydro inclus|electricity", r"electricite non incluse?"),
270 + "hot_water": (r"eau chaude|hot water", r"eau chaude non incluse?"),
271 + "internet": (r"internet|wi[- ]?fi", r"internet non inclus"),
272 + "cable": (r"\bcable\b|television|telus|videotron|bell fibe", None),
273 + # électroménagers
274 + "fridge": (r"refrigerateur|\bfrigo\b|\bfridge\b|electromenagers?( inclus)?|appliances", None),
275 + "stove": (r"cuisiniere|\bstove\b|\bfour\b|plaques? de cuisson", None),
276 + "dishwasher": (r"lave[- ]vaisselle|dishwasher", None),
277 + "washer_dryer": (r"laveuse[- /]secheuse|laveuse et secheuse|washer|dryer", r"entrees? (?:de )?laveuse|entrees? laveuse[- /]secheuse|washer.{0,10}hookup"),
278 + "washer_dryer_hookup": (r"entrees? (?:de )?laveuse|entrees? laveuse[- /]secheuse|sorties? laveuse|washer.{0,10}hookups?", None),
279 + "ac": (r"climatis|air climatise|\ba/?c\b|air conditioning|thermopompe", None),
280 + # immeuble
281 + "elevator": (r"ascenseur|elevator", None),
282 + "balcony": (r"balcon|terrasse|patio|loggia", None),
283 + "pool": (r"piscine|\bpool\b|\bspa\b", None),
284 + "gym": (r"\bgym\b|salle d.?entrainement|entrainement|fitness|salle de sport", None),
285 + "laundry": (r"buanderie|salle de lavage|laundry room", None),
286 + "storage": (r"rangement|\blocker\b|espace de rangement|storage", None),
287 + "furnished_kw": (r"\bmeuble\b|\bmeublee?s?\b|furnished", r"non[- ]meuble|unfurnished|semi[- ]meuble"),
288 + "parking_kw": (r"stationnement|parking|garage", None),
289 +}
290 +
291 +_PETS_YES_RE = re.compile(
292 + r"animaux (?:acceptes|admis|bienvenus|permis|autorises|ok)|pet[s]?[- ]friendly|pets? (?:allowed|welcome)|chats? (?:et chiens? )?(?:acceptes|admis)")
293 +_PETS_NO_RE = re.compile(
294 + r"(?:pas d.?animaux|aucun animal|animaux (?:refuses|interdits|non admis|non acceptes|non autorises|non permis))|no pets?")
295 +_PETS_COND_RE = re.compile(
296 + r"animaux (?:sous conditions?|sur approbation)|petits? animaux|petits? chiens?|chats? (?:seulement|acceptes)\b|cats? only|avec restrictions")
297 +_SMOKING_NO_RE = re.compile(r"non[- ]fumeurs?|sans fumee|smoke[- ]free|no smoking|interdiction de fumer")
298 +_SMOKING_YES_RE = re.compile(r"fumeurs? (?:accepte|permis|autorise)")
299 +
300 +_PARKING_INT_RE = re.compile(r"(?:stationnement|garage|parking)[^.]{0,30}(?:interieur|souterrain|sous[- ]terrain|indoor)|garage")
301 +_PARKING_EXT_RE = re.compile(r"(?:stationnement|parking)[^.]{0,30}(?:exterieur|outdoor)")
302 +_PARKING_INCL_RE = re.compile(r"(?:stationnement|parking)[^.]{0,30}inclus")
303 +_PARKING_EXTRA_RE = re.compile(r"(?:stationnement|parking)[^.]{0,40}(?:en sus|en option|disponible|(\d+)\s*\$)")
304 +
305 +_PHONE_RE = re.compile(r"\(?\b([2-9]\d{2})\)?[\s.\-]?(\d{3})[\s.\-](\d{4})\b")
306 +_EMAIL_RE = re.compile(r"\b[\w.+-]+@[\w-]+\.[\w.]+\b")
307 +
308 +_FLOOR_RE = re.compile(r"(\d{1,2})\s*(?:e|er|eme|ieme|th|nd|rd|st)?\s*etage|etage\s*:?\s*(\d{1,2})|(\d{1,2})(?:e|er|eme)\s+et")
309 +
310 +
311 +def extract_details(amenities: list[str], description: str = "",
312 + title: str = "") -> dict:
313 + """Dérive les champs structurés depuis les commodités libres + description.
314 +
315 + Retourne un dict « sparse » : une clé absente = information inconnue.
316 + Clés : inclusions{}, appliances{}, pets, smoking, furnished, parking{},
317 + elevator, balcony, pool, gym, laundry, storage, ac, floor, contact{}.
318 + """
319 + items = [_key(a) for a in (amenities or []) if a]
320 + desc = _key(description or "")
321 + all_text = " | ".join(items + ([desc] if desc else []) +
322 + ([_key(title)] if title else []))
323 + if not all_text.strip(" |"):
324 + return {}
325 +
326 + flags: dict[str, bool] = {}
327 + for cle, (pos, neg) in _AMENITY_RULES.items():
328 + neg_rx = re.compile(neg) if neg else None
329 + pos_rx = re.compile(pos)
330 + # commodités (listes courtes) : match libéral ; description : aussi,
331 + # les négatifs l'emportent sur les positifs.
332 + if neg_rx and neg_rx.search(all_text):
333 + flags[cle] = False
334 + elif pos_rx.search(all_text):
335 + flags[cle] = True
336 +
337 + details: dict = {}
338 + inclusions = {k: v for k, v in flags.items()
339 + if k in ("heating", "electricity", "hot_water", "internet", "cable")}
340 + if inclusions:
341 + details["inclusions"] = inclusions
342 + appliances = {k: v for k, v in flags.items()
343 + if k in ("fridge", "stove", "dishwasher", "washer_dryer")}
344 + if flags.get("washer_dryer_hookup"):
345 + appliances["washer_dryer_hookup"] = True
346 + # « entrées laveuse-sécheuse » n'implique pas les appareils fournis
347 + if not re.search(r"laveuse[- /]secheuse (?:incluse?s?|fournies?)", all_text):
348 + appliances.pop("washer_dryer", None)
349 + if appliances:
350 + details["appliances"] = appliances
351 + for cle in ("ac", "elevator", "balcony", "pool", "gym", "laundry", "storage"):
352 + if cle in flags:
353 + details[cle] = flags[cle]
354 +
355 + # animaux / fumeur
356 + if _PETS_COND_RE.search(all_text):
357 + details["pets"] = "conditions"
358 + elif _PETS_NO_RE.search(all_text):
359 + details["pets"] = "non"
360 + elif _PETS_YES_RE.search(all_text):
361 + details["pets"] = "oui"
362 + if _SMOKING_NO_RE.search(all_text):
363 + details["smoking"] = False
364 + elif _SMOKING_YES_RE.search(all_text):
365 + details["smoking"] = True
366 +
367 + # meublé
368 + if "furnished_kw" in flags:
369 + details["furnished"] = flags["furnished_kw"]
370 +
371 + # stationnement
372 + if flags.get("parking_kw"):
373 + parking: dict = {"available": True}
374 + if _PARKING_INT_RE.search(all_text):
375 + parking["type"] = "intérieur"
376 + elif _PARKING_EXT_RE.search(all_text):
377 + parking["type"] = "extérieur"
378 + if _PARKING_INCL_RE.search(all_text):
379 + parking["included"] = True
380 + else:
381 + m = _PARKING_EXTRA_RE.search(all_text)
382 + if m:
383 + parking["included"] = False
384 + if m.group(1):
385 + parking["price"] = float(m.group(1))
386 + details["parking"] = parking
387 +
388 + # étage
389 + m = _FLOOR_RE.search(all_text)
390 + if m:
391 + floor = next((g for g in m.groups() if g), None)
392 + if floor and 0 < int(floor) <= 60:
393 + details["floor"] = int(floor)
394 +
395 + # contact (depuis la description seulement — les listes n'en ont pas)
396 + contact: dict = {}
397 + m = _PHONE_RE.search(description or "")
398 + if m:
399 + contact["phone"] = f"{m.group(1)}-{m.group(2)}-{m.group(3)}"
400 + m = _EMAIL_RE.search(description or "")
401 + if m:
402 + contact["email"] = m.group(0)
403 + if contact:
404 + details["contact"] = contact
405 +
406 + return details
407 +
408 +
409 +def merge_details(base: dict, derived: dict) -> dict:
410 + """Fusionne les détails dérivés sous ceux fournis par le connecteur.
411 +
412 + Les valeurs explicites du connecteur ont priorité ; les sous-dicts
413 + (inclusions, appliances, parking, contact) sont fusionnés clé par clé.
414 + """
415 + out = dict(derived)
416 + for k, v in (base or {}).items():
417 + if isinstance(v, dict) and isinstance(out.get(k), dict):
418 + out[k] = {**out[k], **v}
419 + else:
420 + out[k] = v
421 + return out
modified louka/schema.py +68 −54
@@ -1,22 +1,40 @@
1 1 # -----------------------------------------------------------------------------
2 2 # Lou-Ka — Agrégateur de logements à louer (province de Québec)
3 3 # Auteur : Simon-Pierre Boucher — contact@spboucher.ai
4 # schema.py : modèle de données standardisé + fonctions de normalisation
4 +# schema.py : modèle de données standardisé (Listing) + enrichissement central
5 5 # -----------------------------------------------------------------------------
6 6 """Schéma standard d'une annonce (Listing) et normalisation des champs.
7 7
8 8 Chaque connecteur, peu importe le site source, doit produire des objets
9 `Listing` conformes à ce schéma. C'est la couche de standardisation qui
10 permet d'agréger des sites hétérogènes.
9 +`Listing` conformes à ce schéma. La méthode `finalize()` applique ensuite
10 +la couche de normalisation commune (louka/normalize.py) : dates ISO,
11 +superficie en pi², commodités canoniques, prix… — les connecteurs peuvent
12 +donc rester simples et remplir les champs bruts.
11 13 """
12 14 from __future__ import annotations
13 15
14 16 import hashlib
15 17 import json
16 import re
17 import unicodedata
18 18 from dataclasses import dataclass, field, asdict
19 19
20 +from .normalize import ( # ré-exportés pour les connecteurs existants
21 + clean_address,
22 + extract_details,
23 + merge_details,
24 + normalize_unit_type,
25 + parse_area_sqft,
26 + parse_availability_date,
27 + parse_price,
28 + price_is_from,
29 + strip_accents,
30 +)
31 +
32 +__all__ = [
33 + "Listing", "infer_city", "normalize_unit_type", "parse_price",
34 + "parse_availability_date", "parse_area_sqft", "clean_address",
35 + "strip_accents",
36 +]
37 +
20 38
21 39 @dataclass
22 40 class Listing:
@@ -29,13 +47,18 @@ class Listing:
29 47 address: str = "" # adresse civique
30 48 sector: str = "" # quartier/arrondissement (ex. Beauport)
31 49 city: str = "" # Québec, Lévis, ...
32 unit_type: str = "" # 1½, 2½, 3½, 4½, 5½, Loft, Studio...
50 + unit_type: str = "" # 1½ … 5½, 6½+, Studio, Loft, Chambre…
33 51 price: float | None = None # loyer mensuel ($ CAD), le plus bas si "à partir de"
34 52 price_label: str = "" # texte original (ex. "à partir de 799$")
35 availability: str = "" # ex. "Libre immédiatement", "juillet 2026"
53 + availability: str = "" # texte original (ex. "Libre immédiatement")
54 + availability_date: str | None = None # ISO "2026-07-01", "now", ou None
55 + area_sqft: float | None = None # superficie en pi²
56 + pets: str | None = None # "oui" | "non" | "conditions" | None
57 + furnished: bool | None = None # meublé (None = inconnu)
36 58 description: str = ""
37 amenities: list[str] = field(default_factory=list)
38 images: list[str] = field(default_factory=list) # URLs absolues
59 + amenities: list[str] = field(default_factory=list) # texte source, pour affichage
60 + details: dict = field(default_factory=dict) # champs structurés (JSON)
61 + images: list[str] = field(default_factory=list) # URLs absolues
39 62 lat: float | None = None
40 63 lng: float | None = None
41 64
@@ -49,55 +72,46 @@ class Listing:
49 72 blob = json.dumps(payload, sort_keys=True, ensure_ascii=False)
50 73 return hashlib.sha256(blob.encode("utf-8")).hexdigest()
51 74
75 + def finalize(self) -> "Listing":
76 + """Applique la normalisation commune. Appelé par le pipeline d'ingestion.
77 +
78 + Idempotent ; ne remplace jamais une valeur explicite du connecteur.
79 + """
80 + self.title = self.title.strip()
81 + self.address = clean_address(self.address)
82 + self.unit_type = normalize_unit_type(self.unit_type)
83 +
84 + if self.price is None:
85 + self.price = parse_price(self.price_label)
86 + if self.availability_date is None:
87 + self.availability_date = parse_availability_date(self.availability)
88 + if self.area_sqft is None:
89 + for texte in (self.description, " ".join(self.amenities), self.title):
90 + self.area_sqft = parse_area_sqft(texte)
91 + if self.area_sqft is not None:
92 + break
93 +
94 + derived = extract_details(self.amenities, self.description, self.title)
95 + if self.price_label and price_is_from(self.price_label):
96 + derived["price_from"] = True
97 + self.details = merge_details(self.details, derived)
98 +
99 + if self.pets is None:
100 + self.pets = self.details.get("pets")
101 + else:
102 + self.details["pets"] = self.pets
103 + if self.furnished is None:
104 + furn = self.details.get("furnished")
105 + self.furnished = furn if isinstance(furn, bool) else None
106 + else:
107 + self.details["furnished"] = self.furnished
108 + return self
109 +
52 110
53 111 # ---------------------------------------------------------------------------
54 # Normalisation
112 +# Secteur -> ville (agglomération Québec / Lévis)
55 113 # ---------------------------------------------------------------------------
56 114
57 _TYPE_MAP = {
58 "1 1/2": "1½", "2 1/2": "2½", "3 1/2": "3½", "4 1/2": "4½",
59 "5 1/2": "5½", "6 1/2": "6½", "studio": "Studio", "loft": "Loft",
60 "chambre": "Chambre", "maison": "Maison",
61 }
62
63
64 def normalize_unit_type(raw: str) -> str:
65 """Standardise le type d'unité : '4 1/2', '4½', '4 ½' -> '4½'."""
66 if not raw:
67 return ""
68 s = raw.strip().lower()
69 s = s.replace(" ", " ")
70 m = re.search(r"(\d)\s*(?:½|1/2)", s)
71 if m:
72 return f"{m.group(1)}½"
73 for k, v in _TYPE_MAP.items():
74 if k in s:
75 return v
76 return raw.strip()
77
78
79 def parse_price(raw: str) -> float | None:
80 """Extrait un montant mensuel d'un texte : 'à partir de 1 250,00$' -> 1250.0."""
81 if not raw:
82 return None
83 s = raw.replace(" ", " ").replace(" ", " ")
84 m = re.search(r"(\d[\d\s]*(?:[.,]\d{2})?)\s*\$", s)
85 if not m:
86 return None
87 num = m.group(1).replace(" ", "").replace(",", ".")
88 try:
89 val = float(num)
90 except ValueError:
91 return None
92 return val if 100 <= val <= 20000 else None
93
94
95 def strip_accents(s: str) -> str:
96 return "".join(c for c in unicodedata.normalize("NFD", s)
97 if unicodedata.category(c) != "Mn")
98
99
100 # Secteur -> ville (agglomération Québec / Lévis)
101 115 _LEVIS_SECTORS = {
102 116 "levis", "saint-romuald", "st-romuald", "charny", "saint-nicolas",
103 117 "st-nicolas", "saint-david", "st-david", "desjardins", "saint-redempteur",
modified louka/web.py +20 −0
@@ -32,6 +32,9 @@ def _row_to_dict(row) -> dict:
32 32 d = dict(row)
33 33 d["amenities"] = json.loads(d.get("amenities") or "[]")
34 34 d["images"] = json.loads(d.get("images") or "[]")
35 + d["details"] = json.loads(d.get("details") or "{}")
36 + if d.get("furnished") is not None:
37 + d["furnished"] = bool(d["furnished"])
35 38 return d
36 39
37 40
@@ -43,6 +46,10 @@ def list_listings(
43 46 source: str | None = None,
44 47 price_max: float | None = None,
45 48 price_min: float | None = None,
49 + pets: str | None = None, # "oui" -> oui OU conditions
50 + furnished: int | None = None, # 1 / 0
51 + available_by: str | None = None, # ISO : dispo maintenant ou avant date
52 + area_min: float | None = None, # superficie minimale (pi²)
46 53 q: str | None = None,
47 54 active: int = 1,
48 55 limit: int = Query(500, le=2000),
@@ -65,6 +72,19 @@ def list_listings(
65 72 sql += " AND price IS NOT NULL AND price<=?"; args.append(price_max)
66 73 if price_min is not None:
67 74 sql += " AND price IS NOT NULL AND price>=?"; args.append(price_min)
75 + if pets == "oui":
76 + sql += " AND pets IN ('oui','conditions')"
77 + elif pets:
78 + sql += " AND pets=?"; args.append(pets)
79 + if furnished in (0, 1):
80 + sql += " AND furnished=?"; args.append(furnished)
81 + if available_by:
82 + # « now » trié après les dates ISO : comparaison explicite
83 + sql += " AND (availability_date='now' OR (availability_date IS NOT NULL" \
84 + " AND availability_date<=?))"
85 + args.append(available_by)
86 + if area_min is not None:
87 + sql += " AND area_sqft IS NOT NULL AND area_sqft>=?"; args.append(area_min)
68 88 if q:
69 89 sql += " AND (title LIKE ? OR address LIKE ? OR sector LIKE ?)"
70 90 args += [f"%{q}%"] * 3
modified run.py +10 −0
@@ -8,6 +8,7 @@
8 8 python run.py sync [source ...] # synchronise les annonces
9 9 python run.py watch [minutes] # synchronise en boucle (défaut 60 min)
10 10 python run.py serve [port] # démarre l'API + le frontend (défaut 8080)
11 + python run.py record <source ...> # enregistre les fixtures de test d'une source
11 12 """
12 13 from __future__ import annotations
13 14
@@ -34,6 +35,15 @@ def main() -> None:
34 35 from louka import ingest
35 36 minutes = int(sys.argv[2]) if len(sys.argv) > 2 else 60
36 37 ingest.watch(minutes * 60)
38 + elif cmd == "record":
39 + from louka import fixtures
40 + from louka.connectors import CONNECTORS
41 + targets = sys.argv[2:] or sorted(CONNECTORS)
42 + for sid in targets:
43 + try:
44 + print(f"[lou-ka] record {sid} ... {fixtures.record(sid)}")
45 + except Exception as exc:
46 + print(f"[lou-ka] record {sid} ÉCHEC : {exc}", file=sys.stderr)
37 47 elif cmd == "serve":
38 48 import uvicorn
39 49 port = int(sys.argv[2]) if len(sys.argv) > 2 else 8080
added tests/conftest.py +5 −0
@@ -0,0 +1,5 @@
1 +# Rend le paquet `louka` importable quand pytest est lancé depuis la racine.
2 +import sys
3 +from pathlib import Path
4 +
5 +sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
added tests/fixtures/lafrance_mathieu/061c28dc873c87c42013.html +2803 −0
@@ -0,0 +1,2803 @@
1 +
2 +
3 +
4 +
5 + <!DOCTYPE html>
6 + <html lang="fr" class="building-detail">
7 +
8 + <head>
9 +
10 + <meta charset="utf-8">
11 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
12 + <meta name="format-detection" content="telephone=no" />
13 + <link rel="alternate" href="https://lafrance-mathieu.com" hreflang="fr-ca" />
14 + <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css" />
15 + <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
16 + <link rel="stylesheet" href="/static/styling/index.css" />
17 + <script src="https://kit.fontawesome.com/72880f5a8c.js" crossorigin="anonymous"></script>
18 + <link rel="stylesheet" href="/static/styling/vendor/jssocials.css" />
19 + <link rel="stylesheet" href="/static/styling/vendor/jssocials-theme-flat.css" />
20 + <link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin="" />
21 + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css" integrity="sha256-siyOpF/pBWUPgIcQi17TLBkjvNgNQArcmwJB8YvkAgg=" crossorigin="anonymous" />
22 +
23 +<link rel="alternate" hreflang="fr-ca" href="/logement/162" />
24 +<meta name="title" content="Logement a louer - 5425, 5ème Avenue Ouest">
25 +<meta name="description" content="Trouvez votre appartement chez Lafrance et Mathieu. Louez un logement.">
26 +<meta name="keywords"
27 + content="appartement a louer,logement a louer, alouer, studio a louer, appartement meublé, appartement, louer, logement vacant, condo à louer,condo locatif, condo a louer lebourgneuf, condo a louer neufchatel, condo a louer charlesbourg, condo locatif Québec, logement, Québec, ville de québec, limoilou, charlesbourg, beauport, location, lafrance, mathieu, 1 et demi, 2 et demi, 3 et demi, 4 et demi, 5 et demi, 6 et demi, 7 et demi">
28 +<meta name="robots" content="index, follow">
29 +<title>5425, 5ème Avenue Ouest - Lafrance & Mathieu</title>
30 +<script src="https://www.google.com/recaptcha/api.js?hl=fr" async defer></script>
31 +
32 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
33 + <meta name="language" content="French">
34 + <link rel="icon" type="image/ico" href="/static/images/favicon.ico" />
35 +
36 +
37 + <!-- Google Tag Manager -->
38 + <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
39 + new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
40 + j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
41 + 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
42 + })(window,document,'script','dataLayer','GTM-T675TG3');</script>
43 + <!-- End Google Tag Manager -->
44 + </head>
45 +
46 + <body>
47 + <!-- Google Tag Manager (noscript) -->
48 + <noscript><iframe src=https://www.googletagmanager.com/ns.html?id=GTM-T675TG3
49 + height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
50 + <!-- End Google Tag Manager (noscript) -->
51 +
52 + <div class="main-container">
53 + <header id="gilm-header" class>
54 +
55 +
56 +
57 +
58 +<nav class="nav desktop-nav">
59 + <div class="desktop-nav-top">
60 + <a class="desktop-nav-top-link" href="/faire-carriere/">
61 + <p>Carrières</p>
62 + </a>
63 +
64 + <a class="desktop-nav-top-link" href="/blog">
65 + <p>Lafrance et Mathieu: Blogue</p>
66 + </a>
67 +
68 + <a class="desktop-nav-top-link" href="https://espace-client.lafrance-mathieu.com" target="_blank">
69 + <p class="text-primary">Connexion</p>
70 + </a>
71 + </div>
72 + <div class="desktop-nav-bottom ">
73 + <ul class="desktop-nav-bottom-content left">
74 +
75 +
76 +
77 +
78 +
79 +
80 +
81 +<li
82 + class="nav-item dropdown "
83 + href="#"
84 +>
85 + <a
86 + class="nav-link py-0 dropdown-toggle header-main-navigation"
87 + href="#"
88 + id="navbardrop"
89 + data-toggle="dropdown"
90 + >
91 + Services de gestion <br class='nav-item-translation'>immobilière
92 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
93 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
94 +</svg>
95 +
96 + </a>
97 + <ul
98 + class="dropdown-menu dark dropdown-submenu"
99 + >
100 +
101 +
102 + <li class="nav-item">
103 + <a
104 + class="dropdown-item header-main-navigation text-wrap "
105 + href="/services-de-gestion-immobiliere"
106 + >
107 + Présentation de nos services
108 + </a>
109 + </li>
110 +
111 +
112 +
113 + <li class="nav-item">
114 + <a
115 + class="dropdown-item header-main-navigation text-wrap "
116 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
117 + >
118 + Gestion d’immeubles en copropriété
119 + </a>
120 + </li>
121 +
122 +
123 +
124 + <li class="nav-item">
125 + <a
126 + class="dropdown-item header-main-navigation text-wrap "
127 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
128 + >
129 + Gestion immobilière d&#x27;appartements en location
130 + </a>
131 + </li>
132 +
133 +
134 +
135 + <li class="nav-item">
136 + <a
137 + class="dropdown-item header-main-navigation text-wrap "
138 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
139 + >
140 + Gestion immobilière commerciale
141 + </a>
142 + </li>
143 +
144 +
145 +
146 + <li class="nav-item">
147 + <a
148 + class="dropdown-item header-main-navigation text-wrap "
149 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
150 + >
151 + Service de courtage immobilier
152 + </a>
153 + </li>
154 +
155 +
156 +
157 + <li class="nav-item">
158 + <a
159 + class="dropdown-item header-main-navigation text-wrap "
160 + href="/services-de-gestion-immobiliere/gilm-renovation"
161 + >
162 + GILM Rénovation
163 + </a>
164 + </li>
165 +
166 +
167 + </ul>
168 + <hr class="my-1 border-gray-medium d-none">
169 +</li>
170 +
171 +
172 +
173 +
174 +
175 +
176 +
177 +
178 +<li class="nav-item ">
179 + <a class="nav-link py-0 header-main-navigation"
180 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
181 + <hr class="my-1 border-gray-medium d-none">
182 +</li>
183 +
184 +
185 +
186 +
187 +
188 +
189 +
190 +<li class="nav-item ">
191 + <a class="nav-link py-0 header-main-navigation"
192 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
193 + <hr class="my-1 border-gray-medium d-none">
194 +</li>
195 +
196 +
197 +
198 +
199 + </ul>
200 +
201 + <ul class="desktop-nav-bottom-content">
202 + <li class="desktop-nav-logo">
203 + <a href="/">
204 + <img src="/static/images/logos/sansfond_horizontal_noir.png" alt="L&M Logo" class="desktop-nav-logo-horizontal " />
205 + <img src="/static/images/logos/sansfond_vertical_blanc.png" alt="L&M Logo" class="desktop-nav-logo-vertical d-none" />
206 + </a>
207 + </li>
208 + </ul>
209 +
210 + <ul class="desktop-nav-bottom-content right">
211 +
212 +
213 +
214 +
215 +<li class="nav-item order-5">
216 + <a class="nav-link py-0 header-main-navigation"
217 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
218 + <hr class="my-1 border-gray-medium d-none">
219 +</li>
220 +
221 +
222 +
223 +
224 +
225 +
226 +
227 +
228 +
229 +
230 +<li
231 + class="nav-item dropdown order-6"
232 + href="#"
233 +>
234 + <a
235 + class="nav-link py-0 dropdown-toggle header-main-navigation"
236 + href="#"
237 + id="navbardrop"
238 + data-toggle="dropdown"
239 + >
240 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
241 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
242 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
243 +</svg>
244 +
245 + </a>
246 + <ul
247 + class="dropdown-menu dark dropdown-submenu"
248 + >
249 +
250 +
251 + <li class="nav-item">
252 + <a
253 + class="dropdown-item header-main-navigation text-wrap "
254 + href="/qui-sommes-nous/?tab=1"
255 + >
256 + Qui sommes-nous
257 + </a>
258 + </li>
259 +
260 +
261 +
262 + <li class="nav-item">
263 + <a
264 + class="dropdown-item header-main-navigation text-wrap "
265 + href="/qui-sommes-nous/?tab=2"
266 + >
267 + Mission et valeurs
268 + </a>
269 + </li>
270 +
271 +
272 +
273 + <li class="nav-item">
274 + <a
275 + class="dropdown-item header-main-navigation text-wrap "
276 + href="/qui-sommes-nous/?tab=3"
277 + >
278 + Équipe de direction
279 + </a>
280 + </li>
281 +
282 +
283 + </ul>
284 + <hr class="my-1 border-gray-medium d-none">
285 +</li>
286 +
287 +
288 +
289 +
290 +
291 +
292 +
293 +
294 +<li class="nav-item order-7">
295 + <a class="nav-link py-0 header-main-navigation"
296 + href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
297 + <hr class="my-1 border-gray-medium d-none">
298 +</li>
299 +
300 +
301 +
302 +
303 + </ul>
304 + </div>
305 +</nav>
306 +<nav class="nav mobile-nav">
307 + <div class="nav-bottom nav-d-none order-2" id="navbarSupportedContent">
308 + <ul class="nav-main-links">
309 +
310 +
311 +
312 +
313 +<li class="nav-item ">
314 + <a class="nav-link py-0 header-main-navigation"
315 + href="/">Accueil</a>
316 + <hr class="my-1 border-gray-medium d-none">
317 +</li>
318 +
319 +
320 +
321 +
322 +
323 +
324 +
325 +
326 +
327 +
328 +<li
329 + class="nav-item dropdown "
330 + href="#"
331 +>
332 + <a
333 + class="nav-link py-0 dropdown-toggle header-main-navigation"
334 + href="#"
335 + id="navbardrop"
336 + data-toggle="dropdown"
337 + >
338 + Services de gestion <br class='nav-item-translation'>immobilière
339 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
340 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
341 +</svg>
342 +
343 + </a>
344 + <ul
345 + class="dropdown-menu bg-gray-blue dropdown-submenu"
346 + >
347 +
348 +
349 + <li class="nav-item">
350 + <a
351 + class="dropdown-item header-main-navigation text-wrap "
352 + href="/services-de-gestion-immobiliere"
353 + >
354 + Présentation de nos services
355 + </a>
356 + </li>
357 +
358 +
359 +
360 + <li class="nav-item">
361 + <a
362 + class="dropdown-item header-main-navigation text-wrap "
363 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
364 + >
365 + Gestion d’immeubles en copropriété
366 + </a>
367 + </li>
368 +
369 +
370 +
371 + <li class="nav-item">
372 + <a
373 + class="dropdown-item header-main-navigation text-wrap "
374 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
375 + >
376 + Gestion immobilière d&#x27;appartements en location
377 + </a>
378 + </li>
379 +
380 +
381 +
382 + <li class="nav-item">
383 + <a
384 + class="dropdown-item header-main-navigation text-wrap "
385 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
386 + >
387 + Gestion immobilière commerciale
388 + </a>
389 + </li>
390 +
391 +
392 +
393 + <li class="nav-item">
394 + <a
395 + class="dropdown-item header-main-navigation text-wrap "
396 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
397 + >
398 + Service de courtage immobilier
399 + </a>
400 + </li>
401 +
402 +
403 +
404 + <li class="nav-item">
405 + <a
406 + class="dropdown-item header-main-navigation text-wrap "
407 + href="/services-de-gestion-immobiliere/gilm-renovation"
408 + >
409 + GILM Rénovation
410 + </a>
411 + </li>
412 +
413 +
414 + </ul>
415 + <hr class="my-1 border-gray-medium d-none">
416 +</li>
417 +
418 +
419 +
420 +
421 +
422 +
423 +
424 +
425 +<li class="nav-item ">
426 + <a class="nav-link py-0 header-main-navigation"
427 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
428 + <hr class="my-1 border-gray-medium d-none">
429 +</li>
430 +
431 +
432 +
433 +
434 +
435 +
436 +
437 +<li class="nav-item ">
438 + <a class="nav-link py-0 header-main-navigation"
439 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
440 + <hr class="my-1 border-gray-medium d-none">
441 +</li>
442 +
443 +
444 +
445 +
446 +
447 +
448 +
449 +<li class="nav-item ">
450 + <a class="nav-link py-0 header-main-navigation"
451 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
452 + <hr class="my-1 border-gray-medium d-none">
453 +</li>
454 +
455 +
456 +
457 +
458 +
459 +
460 +
461 +
462 +
463 +
464 +<li
465 + class="nav-item dropdown "
466 + href="#"
467 +>
468 + <a
469 + class="nav-link py-0 dropdown-toggle header-main-navigation"
470 + href="#"
471 + id="navbardrop"
472 + data-toggle="dropdown"
473 + >
474 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
475 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
476 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
477 +</svg>
478 +
479 + </a>
480 + <ul
481 + class="dropdown-menu bg-gray-blue dropdown-submenu"
482 + >
483 +
484 +
485 + <li class="nav-item">
486 + <a
487 + class="dropdown-item header-main-navigation text-wrap "
488 + href="/qui-sommes-nous/?tab=1"
489 + >
490 + Qui sommes-nous
491 + </a>
492 + </li>
493 +
494 +
495 +
496 + <li class="nav-item">
497 + <a
498 + class="dropdown-item header-main-navigation text-wrap "
499 + href="/qui-sommes-nous/?tab=2"
500 + >
501 + Mission et valeurs
502 + </a>
503 + </li>
504 +
505 +
506 +
507 + <li class="nav-item">
508 + <a
509 + class="dropdown-item header-main-navigation text-wrap "
510 + href="/qui-sommes-nous/?tab=3"
511 + >
512 + Équipe de direction
513 + </a>
514 + </li>
515 +
516 +
517 + </ul>
518 + <hr class="my-1 border-gray-medium d-none">
519 +</li>
520 +
521 +
522 +
523 +
524 +
525 + </ul>
526 + <ul class="nav-quick-links mobile d-flex d-lg-none">
527 +
528 +
529 +<div class="nav-item">
530 + <a class="header-secondary-navigation" href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
531 +</div>
532 +
533 +
534 +
535 +
536 +<div class="nav-item">
537 + <a class="header-secondary-navigation" href="/blog">Blogue</a>
538 +</div>
539 +
540 +
541 +
542 +
543 +<div class="nav-item">
544 + <a class="header-secondary-navigation" href="/faire-carriere/">Carrières</a>
545 +</div>
546 +
547 +
548 +
549 + <li class="nav-item nav-client-space">
550 +
551 +
552 +<a class="btn btn-primary header-button-navigation text-white" href="https://espace-client.lafrance-mathieu.com">Connexion à l’Espace client</a>
553 + </li>
554 + </ul>
555 + <div class="w-100 my-3 d-flex d-lg-none flex-wrap">
556 + <div class="mb-4 p-0 pr-4 d-flex flex-column">
557 + <a href="tel:14186265500" class="mb-2 d-flex align-items-center">
558 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-2" />
559 + <span class="text-gray-light">418 626-5500</span>
560 + </a>
561 + <a href="/cdn-cgi/l/email-protection#dcb5b2bab39cb0bdbaaebdb2bfb9f1b1bda8b4b5b9a9f2bfb3b1" target="_blank" class="mb-3 d-flex align-items-center">
562 + <img src=/static/images/icons/call.svg alt="email icon" class="footer-icon mr-2" />
563 + <span><span class="__cf_email__" data-cfemail="4b22252d240b272a2d392a25282e66262a3f23222e3e65282426">[email&#160;protected]</span></span>
564 + </a>
565 + <p class="footer-text text-uppercase text-white text-bold">Suivez-nous sur les réseaux</p>
566 + <div class="d-flex">
567 + <a href="https://ca.linkedin.com/company/gestion-immobilière-lafrance-et-mathieu-inc">
568 + <img src=/static/images/icons/linkedin.svg alt="linkedin icon"
569 + class="footer-social-icon mr-3" />
570 + </a>
571 + <a href="https://fr-ca.facebook.com/lafrance.mathieu">
572 + <img src=/static/images/icons/facebook.svg alt="facebook icon"
573 + class="footer-social-icon" />
574 + </a>
575 + </div>
576 + </div>
577 + <div class="mb-4 mb-md-0 p-0 pl-sm-4 px-md-4 d-flex flex-column">
578 + <p class="footer-text text-uppercase text-white text-bold">Soutien aux résidents (24/7)</p>
579 + <a href="tel:14186265500" class="mb-2 d-flex align-items-center">
580 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-2" />
581 + <span class="text-gray-light">418 626-5500</span>
582 + </a>
583 + </div>
584 + </div>
585 + </div>
586 + <div class="nav-top order-1">
587 + <ul class="nav-main-links nav-main-links-top">
588 +
589 +
590 +
591 +
592 +<li class="nav-item ">
593 + <a class="nav-link py-0 header-main-navigation"
594 + href="/">Accueil</a>
595 + <hr class="my-1 border-gray-medium d-none">
596 +</li>
597 +
598 +
599 +
600 +
601 +
602 +
603 +
604 +
605 +
606 +
607 +<li
608 + class="nav-item dropdown "
609 + href="#"
610 +>
611 + <a
612 + class="nav-link py-0 dropdown-toggle header-main-navigation"
613 + href="#"
614 + id="navbardrop"
615 + data-toggle="dropdown"
616 + >
617 + Services de gestion <br class='nav-item-translation'>immobilière
618 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
619 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
620 +</svg>
621 +
622 + </a>
623 + <ul
624 + class="dropdown-menu bg-gray-blue dropdown-submenu"
625 + >
626 +
627 +
628 + <li class="nav-item">
629 + <a
630 + class="dropdown-item header-main-navigation text-wrap "
631 + href="/services-de-gestion-immobiliere"
632 + >
633 + Présentation de nos services
634 + </a>
635 + </li>
636 +
637 +
638 +
639 + <li class="nav-item">
640 + <a
641 + class="dropdown-item header-main-navigation text-wrap "
642 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
643 + >
644 + Gestion d’immeubles en copropriété
645 + </a>
646 + </li>
647 +
648 +
649 +
650 + <li class="nav-item">
651 + <a
652 + class="dropdown-item header-main-navigation text-wrap "
653 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
654 + >
655 + Gestion immobilière d&#x27;appartements en location
656 + </a>
657 + </li>
658 +
659 +
660 +
661 + <li class="nav-item">
662 + <a
663 + class="dropdown-item header-main-navigation text-wrap "
664 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
665 + >
666 + Gestion immobilière commerciale
667 + </a>
668 + </li>
669 +
670 +
671 +
672 + <li class="nav-item">
673 + <a
674 + class="dropdown-item header-main-navigation text-wrap "
675 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
676 + >
677 + Service de courtage immobilier
678 + </a>
679 + </li>
680 +
681 +
682 +
683 + <li class="nav-item">
684 + <a
685 + class="dropdown-item header-main-navigation text-wrap "
686 + href="/services-de-gestion-immobiliere/gilm-renovation"
687 + >
688 + GILM Rénovation
689 + </a>
690 + </li>
691 +
692 +
693 + </ul>
694 + <hr class="my-1 border-gray-medium d-none">
695 +</li>
696 +
697 +
698 +
699 +
700 +
701 +
702 +
703 +
704 +<li class="nav-item ">
705 + <a class="nav-link py-0 header-main-navigation"
706 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
707 + <hr class="my-1 border-gray-medium d-none">
708 +</li>
709 +
710 +
711 +
712 +
713 +
714 +
715 +
716 +<li class="nav-item ">
717 + <a class="nav-link py-0 header-main-navigation"
718 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
719 + <hr class="my-1 border-gray-medium d-none">
720 +</li>
721 +
722 +
723 +
724 +
725 +
726 +
727 +
728 +<li class="nav-item ">
729 + <a class="nav-link py-0 header-main-navigation"
730 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
731 + <hr class="my-1 border-gray-medium d-none">
732 +</li>
733 +
734 +
735 +
736 +
737 +
738 +
739 +
740 +
741 +
742 +
743 +<li
744 + class="nav-item dropdown "
745 + href="#"
746 +>
747 + <a
748 + class="nav-link py-0 dropdown-toggle header-main-navigation"
749 + href="#"
750 + id="navbardrop"
751 + data-toggle="dropdown"
752 + >
753 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
754 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
755 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
756 +</svg>
757 +
758 + </a>
759 + <ul
760 + class="dropdown-menu bg-gray-blue dropdown-submenu"
761 + >
762 +
763 +
764 + <li class="nav-item">
765 + <a
766 + class="dropdown-item header-main-navigation text-wrap "
767 + href="/qui-sommes-nous/?tab=1"
768 + >
769 + Qui sommes-nous
770 + </a>
771 + </li>
772 +
773 +
774 +
775 + <li class="nav-item">
776 + <a
777 + class="dropdown-item header-main-navigation text-wrap "
778 + href="/qui-sommes-nous/?tab=2"
779 + >
780 + Mission et valeurs
781 + </a>
782 + </li>
783 +
784 +
785 +
786 + <li class="nav-item">
787 + <a
788 + class="dropdown-item header-main-navigation text-wrap "
789 + href="/qui-sommes-nous/?tab=3"
790 + >
791 + Équipe de direction
792 + </a>
793 + </li>
794 +
795 +
796 + </ul>
797 + <hr class="my-1 border-gray-medium d-none">
798 +</li>
799 +
800 +
801 +
802 +
803 +
804 + </ul>
805 + <button class="nav-toggle d-block d-lg-none" type="button" onclick="toggleMenu();">
806 + <img class="nav-toggle-icon icon-top d-none" src="/static/images/menu.svg" alt="menu">
807 + <img class="nav-toggle-icon icon-sticky" src="/static/images/menu-dark.svg" alt="menu">
808 + </button>
809 + <ul class="nav-quick-links">
810 +
811 +
812 +<div class="nav-item">
813 + <a class="header-secondary-navigation" href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
814 +</div>
815 +
816 +
817 +
818 +
819 +<div class="nav-item">
820 + <a class="header-secondary-navigation" href="/blog">Blogue</a>
821 +</div>
822 +
823 +
824 +
825 +
826 +<div class="nav-item">
827 + <a class="header-secondary-navigation" href="/faire-carriere/">Carrières</a>
828 +</div>
829 +
830 +
831 +
832 + <li class="nav-item nav-client-space">
833 +
834 +
835 +<a class="btn btn-primary header-button-navigation text-white" href="https://espace-client.lafrance-mathieu.com">Connexion à l’Espace client</a>
836 + </li>
837 + </ul>
838 + <a class="nav-logo-link" href="/">
839 + <img id="logo-white" class="nav-logo-img icon-top d-none" src="/static/images/logos/sansfond_horizontal_blanc.png"
840 + alt="L&M Logo">
841 + <img id="logo-dark" class="nav-logo-img icon-sticky" src="/static/images/logos/sansfond_horizontal_noir.png"
842 + alt="L&M Logo">
843 + </a>
844 + </div>
845 +
846 +
847 +
848 +
849 +
850 +
851 +
852 +
853 +</nav>
854 +
855 +<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
856 + function toggleMenu() {
857 + scrollPosition = window.scrollY;
858 +
859 + const menu = document.getElementById("navbarSupportedContent");
860 + menu.classList.toggle("nav-d-none");
861 +
862 + const mobileTabs = document.getElementsByClassName("mobile-tabs")[0];
863 + if (mobileTabs && mobileTabs.classList) {
864 + mobileTabs.classList.toggle("d-none");
865 + }
866 +
867 + if (!menu.classList.contains("nav-d-none")) {
868 + makeHeaderDark();
869 + } else {
870 + makeHeaderClear();
871 + }
872 + }
873 +
874 + window.addEventListener('touchmove', function (_e) {
875 + onScroll();
876 + });
877 + window.addEventListener('scroll', function (_e) {
878 + onScroll();
879 + });
880 +
881 + function makeHeaderDark() {
882 + const header = document.getElementById("gilm-header");
883 + if (!header.classList.contains("top")) header.classList.add("top");
884 +
885 + const lightIcons = document.getElementsByClassName("icon-top");
886 + const darkIcons = document.getElementsByClassName("icon-sticky");
887 + for (icon of lightIcons) {
888 + icon.classList.contains("d-none") && icon.classList.remove("d-none");
889 + }
890 + for (icon of darkIcons) {
891 + !icon.classList.contains("d-none") && icon.classList.add("d-none");
892 + }
893 + }
894 +
895 + function makeHeaderClear() {
896 + const header = document.getElementById("gilm-header");
897 + if (header.classList.contains("top")) header.classList.remove("top");
898 +
899 + const lightIcons = document.getElementsByClassName("icon-top");
900 + const darkIcons = document.getElementsByClassName("icon-sticky");
901 + for (icon of lightIcons) {
902 + !icon.classList.contains("d-none") && icon.classList.add("d-none");
903 + }
904 + for (icon of darkIcons) {
905 + icon.classList.contains("d-none") && icon.classList.remove("d-none");
906 + }
907 + }
908 +
909 + function onScroll() {
910 +
911 + }
912 +</script>
913 +
914 + </header>
915 + <main class="overflow-y-hidden ">
916 +
917 +
918 +<div class="container">
919 + <nav class="mb-4 pt-4" aria-label="breadcrumb">
920 + <a class="breadcrumb-primary" href="/">Accueil</a>
921 + <a class="breadcrumb-primary" href="/louer-appartement-quebec/">Logements à louer</a>
922 + </nav>
923 +
924 +
925 +
926 +
927 +<div class="row">
928 + <div class="col-md-10">
929 + <p class="text-gray-light">Appartements &middot; Charlesbourg</p>
930 + <h2 id="building-address-1">5425, 5ème Avenue Ouest</h2>
931 + <p id="building-address-2" class="subtext">
932 + Québec,
933 + (Québec),
934 + G1H7E1
935 + </p>
936 + </div>
937 + <div class="col-md-2 col-sm-12 d-flex align-items-end flex-row-reverse pb-3">
938 +
939 +
940 +
941 +
942 + <button
943 + class="btn text-primary "
944 + data-toggle="modal"
945 + data-target="#modal-share"
946 + onclick="configureShareWidget(`Logements à louer - 5425, 5ème Avenue Ouest`, `https://lafrance-mathieu.com/logement/162`)">
947 + <i class="fas fa-share-square mr-1"></i>
948 + <span>Partager</span>
949 +</button>
950 +
951 +
952 +
953 + </div>
954 +</div>
955 +<div class="row">
956 + <div class="col-lg-8 d-none d-md-block">
957 +
958 +
959 +
960 +<div class="building-slideshow">
961 + <div class="slider slider-for">
962 +
963 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD096_9eac0c78-af12-11ea-a7e4-1275881fc0b8.JPG" alt="Façade">
964 +
965 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD097_9f0abc64-af12-11ea-a7e4-1275881fc0b8.JPG" alt="Façade2">
966 +
967 + </div>
968 + <div class="slider slider-nav mt-2">
969 +
970 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD096_9eac0c78-af12-11ea-a7e4-1275881fc0b8.JPG" alt="Façade">
971 +
972 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD097_9f0abc64-af12-11ea-a7e4-1275881fc0b8.JPG" alt="Façade2">
973 +
974 + </div>
975 +</div>
976 +
977 +
978 + </div>
979 + <div class="col-lg-8 d-block d-md-none">
980 +
981 +
982 +
983 +
984 +
985 +<div class="">
986 + <div class="single-item-arrow--left ml-3"></div>
987 + <div class="single-item">
988 +
989 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD096_9eac0c78-af12-11ea-a7e4-1275881fc0b8.JPG" alt="Façade" style="object-fit: cover" height="auto">
990 +
991 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD097_9f0abc64-af12-11ea-a7e4-1275881fc0b8.JPG" alt="Façade2" style="object-fit: cover" height="auto">
992 +
993 + </div>
994 + <div class="single-item-arrow--right mr-3"></div>
995 +</div>
996 +
997 +
998 + </div>
999 +
1000 + <div class="col-12 col-lg-4 order-lg-2">
1001 + <div class="border border-light rounded p-3 w-100 d-none d-lg-block shadow-sm position-relative" id="inquire-form">
1002 + <div style="position: absolute; top: -134px;" id="inquire-form-anchor"></div>
1003 +
1004 +
1005 +
1006 +
1007 +<div class="inquire-step-1 container p-0 mb-5 position-relative">
1008 + <div id="inquire-step-1" style="position: absolute; top: -134px;"></div>
1009 + <h2 class="mb-4" style="font-size: 1.6rem;">S'informer sur ce logement</h2>
1010 + <p>418-626-3070</p>
1011 + <p class="text-primary"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="dcb0b3bfbda8b5b3b29cb0bdbaaebdb2bfb9f1b1bda8b4b5b9a9f2bfb3b1">[email&#160;protected]</a></p>
1012 + <p class="mb-4">Dites-nous quelles unités vous intéressent ainsi que votre date de déménagement prévue.</p>
1013 + <p class="text-gray-light">Intéressé par ces unités</p>
1014 +
1015 + <div class="d-inline-flex flex-wrap">
1016 +
1017 +
1018 + <button
1019 + class="inquire-room btn btn-normal mb-3"
1020 + data-unit_room="4½"
1021 + data-toggle="button"
1022 + >
1023 +
1024 + </button>
1025 +
1026 +
1027 + </div>
1028 +
1029 + <div class="dropdown mb-4">
1030 + <div class="dropdown-toggle inquire-units-button rounded p-3 text-left" type="button"
1031 + id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
1032 + <p class="inquire-units-label-title text-uppercase mb-0">
1033 + Unité(s) spécifique(s)
1034 + </p>
1035 + <p id="inquire-units-label-noselected" class="inquire-units-label-selection m-0">
1036 + Aucune choisie
1037 + </p>
1038 + <p id="inquire-units-label-selected" class="inquire-units-label-selection d-none m-0"></p>
1039 + </div>
1040 + <div class="dropdown-menu inquire-units-choices rounded border-gray-very-light" aria-labelledby="dropdownMenuButton">
1041 +
1042 +
1043 + <button class="inquire-units-choice dropdown-item" data-unit="308"
1044 + data-unit_room="4½">
1045 + 308
1046 + </button>
1047 +
1048 +
1049 + </div>
1050 + </div>
1051 +
1052 +
1053 + <p class="text-gray-light">Date de déménagement prévue</p>
1054 + <div id="inquire-datepicker" class="input-group date mt-1">
1055 + <input id="inquire-datepicker-input" class="form-control" onfocus="blur();" placeholder="Sélectionner une date">
1056 + <div class="input-group-addon">
1057 + <span class="glyphicon glyphicon-th"></span>
1058 + </div>
1059 + </div>
1060 +</div>
1061 +
1062 +<div class="inquire-step-2 container p-0 mb-5 d-none position-relative">
1063 + <div id="inquire-step-2" style="position: absolute; top: -134px;"></div>
1064 + <h2 class="my-4" style="font-size: 1.6rem;">Comment peut-on vous rejoindre?</h2>
1065 + <p>Inscrivez vos coordonnées afin que notre équipe puisse vous rejoindre et vous conseiller.</p>
1066 + <form id="inquire-form">
1067 + <div class="form-group">
1068 + <input name="firstName" type="text" class="form-control" id="inquireForm-firstName"
1069 + placeholder="Prénom"></input>
1070 + </div>
1071 + <div class="form-group">
1072 + <input name="lastName" type="text" class="form-control" id="inquireForm-lastName"
1073 + placeholder="Nom de famille"></input>
1074 + </div>
1075 + <div class="form-group">
1076 + <select name="contactMethod" class="form-control" id="inquireForm-contactMethod">
1077 + <option id="email" value="email" selected>Courriel</option>
1078 + <option id="phone" value="phone">Téléphone</option>
1079 + </select>
1080 + </div>
1081 + <div id="inquireForm-contact-email" class="form-group">
1082 + <input name="contactEmail" type="email" class="form-control" id="inquireForm-email"
1083 + placeholder="Adresse courriel"></input>
1084 + </div>
1085 + <div id="inquireForm-contact-phone" class="form-group d-none">
1086 + <input name="contactPhone" type="tel" class="form-control" id="inquireForm-phone"
1087 + placeholder="Numéro de téléphone"></input>
1088 + </div>
1089 + <div class="form-group">
1090 + <textarea name="comments" type="text" class="form-control" id="inquireForm-comments"
1091 + placeholder="Questions ou notes"></textarea>
1092 + </div>
1093 + <div id="g-recaptcha-error"></div>
1094 + <div class="mb-3 g-recaptcha" data-sitekey="6LdkNyIpAAAAAD7KhL3DhvgxSocY-78gAmvXBzoe" data-callback="verifyCaptcha"></div>
1095 + </form>
1096 +</div>
1097 +
1098 +<div class="inquire-step-3 d-none position-relative">
1099 + <div id="inquire-confirmation" style="position: absolute; top: -134px;"></div>
1100 + <img class="mt-4" src="/static/images/logos/sansfond_horizontal_noir.png" alt="L&M Logo" width="auto"
1101 + height="66px">
1102 + <h2 class="my-4" style="font-size: 1.6rem;">Votre demande a été envoyée à l’équipe de Lafrance et Mathieu.</h2>
1103 + <p>Nous répondons à toutes les demandes dans un délai de 24 à 48 heures (jours ouvrables).</p>
1104 +</div>
1105 +
1106 +<button id="inquire-btn-1" class="inquire-continue inquire-step-1 btn btn-primary w-100" disabled onclick="scrollToTopOfForm();">
1107 + Continuer
1108 +</button>
1109 +<button id="inquire-btn-2" class="inquire-submit inquire-step-2 btn btn-primary w-100 d-none" onclick="submitForm();" disabled>
1110 + Soumettre
1111 +</button>
1112 +<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
1113 + var recaptcha_response = '';
1114 + window.isCondo = "False" == "True";
1115 + document.getElementById("inquire-datepicker-input").value = "";
1116 +
1117 + function scrollToTopOfForm() {
1118 + const top = document.getElementById("inquire-step-1");
1119 + top.scrollIntoView();
1120 + }
1121 + function submitForm() {
1122 + if (recaptcha_response && recaptcha_response.length !== 0 && recaptcha_response !== ''){
1123 + onContinue2Click('71IYv0AIi73dmcO3hF3Y7PBmYdAUs6XtpWfQHo8c0xiBJYMyHbkhoICpFjaF726b');
1124 + const confirmation = document.getElementById("inquire-confirmation");
1125 + confirmation.scrollIntoView();
1126 + }
1127 + else {
1128 + document.getElementById('g-recaptcha-error').innerHTML = '<span style="color:red;">Ceci est obligatoire.</span>';
1129 + }
1130 + }
1131 +
1132 + function verifyCaptcha(token) {
1133 + recaptcha_response = token;
1134 + document.getElementById('g-recaptcha-error').innerHTML = '';
1135 + }
1136 +</script>
1137 +
1138 + </div>
1139 + </div>
1140 +
1141 +</div>
1142 +
1143 +<div class="row mt-4">
1144 + <div class="col-md-8">
1145 + <h2 class="convenience-header">Commodités de l'immeuble</h2>
1146 + <div class="row mb-4">
1147 + <div class="col-md-12">
1148 +
1149 +
1150 +
1151 +
1152 +
1153 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1154 +
1155 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1156 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1157 + <p class="attribute-description mb-0">Intercom</p>
1158 + </li>
1159 +
1160 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1161 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1162 + <p class="attribute-description mb-0">Équipe de maintenance 24h</p>
1163 + </li>
1164 +
1165 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1166 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1167 + <p class="attribute-description mb-0">Stationnement</p>
1168 + </li>
1169 +
1170 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1171 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1172 + <p class="attribute-description mb-0">Planchers en béton</p>
1173 + </li>
1174 +
1175 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1176 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1177 + <p class="attribute-description mb-0">Secteur paisible</p>
1178 + </li>
1179 +
1180 + </ul>
1181 +
1182 +
1183 + </div>
1184 + </div>
1185 + </div>
1186 +</div>
1187 +
1188 +
1189 +</div>
1190 +
1191 +
1192 +
1193 +
1194 +
1195 +<script>
1196 +function scrollToId(unitRoomId) {
1197 + removeAllActive();
1198 +
1199 + const scrollOptions = {
1200 + behavior: "smooth",
1201 + block: "start"
1202 + };
1203 +
1204 + const defaultFilter = document.getElementById("unit-room-filter-all");
1205 + if (unitRoomId === "all") {
1206 + defaultFilter.classList.add("active");
1207 + defaultFilter.scrollIntoView(scrollOptions);
1208 + } else {
1209 + const element = document.getElementById(`unit-room-${unitRoomId}`);
1210 + if (!!element) {
1211 + element.scrollIntoView(scrollOptions);
1212 + const defaultFilter = document.getElementById("unit-room-filter-all");
1213 + defaultFilter.classList.remove("active");
1214 + const filter = document.getElementById(`unit-room-filter-${unitRoomId}`);
1215 + filter.classList.add("active");
1216 +
1217 + }
1218 + }
1219 +}
1220 +
1221 +function removeAllActive() {
1222 + const elements = document.getElementsByClassName("unit-room-filter");
1223 + for (element of elements) element.classList.remove("active");
1224 +}
1225 +</script>
1226 +
1227 +<div class="container">
1228 + <div class="row mt-5">
1229 + <div class="col-md-12">
1230 + <h2 id="anchor-units" class="mb-3">Unités</h2>
1231 +
1232 + <ul class="list-inline mb-0 position-relative">
1233 + <li class="list-inline-item mr-4 pb-2 unit-room-filter active" id="unit-room-filter-all">
1234 + <button onclick="scrollToId('all');" class="unit-room-filter-button btn btn-no-outline">
1235 + <span>Toutes</span>
1236 + </button>
1237 + </li>
1238 +
1239 + <li class="list-inline-item mr-4 mb-0 pb-2 unit-room-filter" id="unit-room-filter-301">
1240 + <button onclick="scrollToId('301');" class="unit-room-filter-button btn btn-no-outline">
1241 + <span class="text-primary">4½</span> <span class="text-gray-light">(1)</span>
1242 + </button>
1243 + </li>
1244 +
1245 + </ul>
1246 +
1247 + </div>
1248 + </div>
1249 +</div>
1250 +<div class="bg-background-gray pb-3">
1251 + <div class="container">
1252 + <div class="row">
1253 + <div class="col-12 p-0">
1254 +
1255 + <div class="bg-white rounded mt-3 p-3 p-md-5 mx-3 position-relative">
1256 + <div style="position: absolute; top: -134px;" id="unit-room-301"></div>
1257 + <div id="modal-details-301" class="modal">
1258 +
1259 +
1260 +
1261 +<div class="container mt-5">
1262 + <div class="col-md-8 offset-md-2 bg-white p-5 rounded shadow">
1263 +
1264 +
1265 +<div class="row">
1266 + <div class="col-9">
1267 + <h2>
1268 +
1269 + 4½ from $1310 to $1310
1270 +
1271 + </h2>
1272 + </div>
1273 + <div class="col-3 text-right">
1274 + <button class="btn-close" data-toggle="modal" data-target="#modal-details-301"></button>
1275 + </div>
1276 +</div>
1277 +<div class="row">
1278 + <div class="col-9">
1279 +
1280 +
1281 +<p class="">
1282 + 1
1283 + <span class="text-lowercase">
1284 +
1285 + unité
1286 +
1287 + </span>
1288 +</p>
1289 + </div>
1290 + <div class="col-3 text-right">
1291 +
1292 + </div>
1293 +</div>
1294 +<div class="row">
1295 + <div class="col-12" id="unit-modal-carousel-301">
1296 +
1297 +
1298 +<div class="unit-detail-carousel">
1299 + <div class="slider slider-for">
1300 +
1301 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD091_4a5bf9ea-af16-11ea-bca8-1275881fc0b8.jpg" alt="cuisine">
1302 +
1303 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD090_4a80fb3c-af16-11ea-bca8-1275881fc0b8.jpg" alt="cuisine2">
1304 +
1305 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD087_4a9c71c8-af16-11ea-bca8-1275881fc0b8.jpg" alt="cuisine">
1306 +
1307 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD084_4aba3eba-af16-11ea-bca8-1275881fc0b8.jpg" alt="salon">
1308 +
1309 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD085_4adade40-af16-11ea-bca8-1275881fc0b8.jpg" alt="salon">
1310 +
1311 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD086_4af743c8-af16-11ea-bca8-1275881fc0b8.jpg" alt="salon">
1312 +
1313 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD089_4b123494-af16-11ea-bca8-1275881fc0b8.jpg" alt="entree">
1314 +
1315 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD095_4b2a97d2-af16-11ea-bca8-1275881fc0b8.jpg" alt="sb">
1316 +
1317 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD093_4b4754e4-af16-11ea-bca8-1275881fc0b8.jpg" alt="chambre">
1318 +
1319 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD092_4b60d5c2-af16-11ea-bca8-1275881fc0b8.jpg" alt="chambre">
1320 +
1321 + </div>
1322 + <div class="slider slider-nav mt-2">
1323 +
1324 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD091_4a5bf9ea-af16-11ea-bca8-1275881fc0b8.jpg" alt="cuisine">
1325 +
1326 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD090_4a80fb3c-af16-11ea-bca8-1275881fc0b8.jpg" alt="cuisine2">
1327 +
1328 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD087_4a9c71c8-af16-11ea-bca8-1275881fc0b8.jpg" alt="cuisine">
1329 +
1330 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD084_4aba3eba-af16-11ea-bca8-1275881fc0b8.jpg" alt="salon">
1331 +
1332 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD085_4adade40-af16-11ea-bca8-1275881fc0b8.jpg" alt="salon">
1333 +
1334 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD086_4af743c8-af16-11ea-bca8-1275881fc0b8.jpg" alt="salon">
1335 +
1336 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD089_4b123494-af16-11ea-bca8-1275881fc0b8.jpg" alt="entree">
1337 +
1338 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD095_4b2a97d2-af16-11ea-bca8-1275881fc0b8.jpg" alt="sb">
1339 +
1340 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD093_4b4754e4-af16-11ea-bca8-1275881fc0b8.jpg" alt="chambre">
1341 +
1342 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD092_4b60d5c2-af16-11ea-bca8-1275881fc0b8.jpg" alt="chambre">
1343 +
1344 + </div>
1345 +</div>
1346 +
1347 + </div>
1348 +</div>
1349 +<div class="row mt-3">
1350 + <div class="col-12 unit-commodities">
1351 +
1352 +
1353 +
1354 +
1355 +
1356 +
1357 + <p class="small-header pb-1">
1358 + Commodités de l'unité
1359 + </p>
1360 +
1361 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1362 +
1363 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1364 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="icon" height="15px" width="15px">
1365 + <p class="attribute-description mb-0">Équipe de maintenance 24h</p>
1366 + </li>
1367 +
1368 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1369 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1370 + <p class="attribute-description mb-0">Stationnement extérieur</p>
1371 + </li>
1372 +
1373 + </ul>
1374 +
1375 +
1376 + </div>
1377 +</div>
1378 +<div class="row mt-3">
1379 + <div class="col-12 unit-characteristics">
1380 +
1381 +
1382 +
1383 +
1384 +
1385 +
1386 + </div>
1387 +</div>
1388 +
1389 +
1390 + <div class="units-detail mt-5">
1391 + <h2>Unités</h2>
1392 +
1393 +
1394 +
1395 +
1396 +<div class="row" id="units-for-unit-room-301">
1397 +
1398 +
1399 + <div class="col-12 h-100 ">
1400 + <div class="h-100 border-bottom">
1401 + <div class="row mt-3">
1402 + <div class="col-sm-6 col-md-4">
1403 + <p class="small-header">unité</p>
1404 + <p>
1405 + 308
1406 +
1407 + <span>&middot; 3e étage</span>
1408 +
1409 + </p>
1410 + </div>
1411 + <div class="col-sm-6 col-md-4">
1412 + <p class="small-header">Disponibilité</p>
1413 + <p class="">
1414 + décembre 2026
1415 + </p>
1416 + </div>
1417 + <div class="col-sm-6 col-md-4">
1418 + <p class="small-header">À partir de</p>
1419 + <p>1310,00$</p>
1420 + </div>
1421 +
1422 + </div>
1423 + <div class="row">
1424 + </div>
1425 +
1426 + </div>
1427 + </div>
1428 +
1429 +
1430 +</div>
1431 +
1432 + </div>
1433 +
1434 + </div>
1435 +</div>
1436 + </div>
1437 + <div class="row">
1438 + <div class="col-6">
1439 + <h4>
1440 +
1441 + 4½ à partir de 1310,00$
1442 +
1443 + </h4>
1444 + </div>
1445 + <div class="col-6 d-flex justify-content-end">
1446 +
1447 +
1448 +
1449 + <button
1450 + class="btn text-primary share-button-small"
1451 + data-toggle="modal"
1452 + data-target="#modal-share"
1453 + onclick="configureShareWidget(`4½ à louer - 5425, 5ème Avenue Ouest`, `https://lafrance-mathieu.com/logement/162`)">
1454 + <i class="fas fa-share-square mr-1"></i>
1455 + <span>Partager</span>
1456 +</button>
1457 +
1458 +
1459 + </div>
1460 + </div>
1461 + <div class="row">
1462 + <div class="col-md-4">
1463 + <div class="row">
1464 + <div class="col-12">
1465 +
1466 +
1467 +
1468 +
1469 +
1470 +<div class="unit-image-counter d-flex align-items-center">
1471 + <img class="ml-1" src="/static/images/logos/camera.png" height="14px" width="auto" alt="unit image">
1472 + <span class="ml-1 text-white small">10</span>
1473 +</div>
1474 +
1475 +
1476 +<div class="single-item-small">
1477 + <div class="single-item-arrow--left ml-3"></div>
1478 + <div class="single-item">
1479 +
1480 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD091_4a5bf9ea-af16-11ea-bca8-1275881fc0b8.jpg" alt="cuisine" style="object-fit: cover" height="auto">
1481 +
1482 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD090_4a80fb3c-af16-11ea-bca8-1275881fc0b8.jpg" alt="cuisine2" style="object-fit: cover" height="auto">
1483 +
1484 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD087_4a9c71c8-af16-11ea-bca8-1275881fc0b8.jpg" alt="cuisine" style="object-fit: cover" height="auto">
1485 +
1486 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD084_4aba3eba-af16-11ea-bca8-1275881fc0b8.jpg" alt="salon" style="object-fit: cover" height="auto">
1487 +
1488 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD085_4adade40-af16-11ea-bca8-1275881fc0b8.jpg" alt="salon" style="object-fit: cover" height="auto">
1489 +
1490 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD086_4af743c8-af16-11ea-bca8-1275881fc0b8.jpg" alt="salon" style="object-fit: cover" height="auto">
1491 +
1492 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD089_4b123494-af16-11ea-bca8-1275881fc0b8.jpg" alt="entree" style="object-fit: cover" height="auto">
1493 +
1494 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD095_4b2a97d2-af16-11ea-bca8-1275881fc0b8.jpg" alt="sb" style="object-fit: cover" height="auto">
1495 +
1496 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD093_4b4754e4-af16-11ea-bca8-1275881fc0b8.jpg" alt="chambre" style="object-fit: cover" height="auto">
1497 +
1498 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD092_4b60d5c2-af16-11ea-bca8-1275881fc0b8.jpg" alt="chambre" style="object-fit: cover" height="auto">
1499 +
1500 + </div>
1501 + <div class="single-item-arrow--right mr-3"></div>
1502 +</div>
1503 +
1504 +
1505 + </div>
1506 + </div>
1507 +
1508 + </div>
1509 + <div class="col-md-8 mt-4 mt-md-0 d-flex flex-column">
1510 + <div class="row flex-grow-1">
1511 +
1512 + <div class="unit-commodities unit-specs col-sm-6">
1513 +
1514 +
1515 +
1516 +
1517 +
1518 +
1519 + <p class="small-header pb-1">
1520 + Commodités de l'unité
1521 + </p>
1522 +
1523 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1524 +
1525 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1526 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="icon" height="15px" width="15px">
1527 + <p class="attribute-description mb-0">Équipe de maintenance 24h</p>
1528 + </li>
1529 +
1530 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1531 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1532 + <p class="attribute-description mb-0">Stationnement extérieur</p>
1533 + </li>
1534 +
1535 + </ul>
1536 +
1537 +
1538 + </div>
1539 +
1540 +
1541 + <div class="unit-characteristics unit-specs mt-3 mt-sm-0 col-sm-6">
1542 +
1543 +
1544 +
1545 +
1546 +
1547 +
1548 + <p class="small-header pb-1">
1549 + Caractéristiques de l'unité
1550 + </p>
1551 +
1552 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1553 +
1554 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1555 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_4afd9f16-7ff5-11ea-8747-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1556 + <p class="attribute-description mb-0">Chat accepté</p>
1557 + </li>
1558 +
1559 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1560 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_5d2b8d60-7ff5-11ea-8747-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1561 + <p class="attribute-description mb-0">Balcon</p>
1562 + </li>
1563 +
1564 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1565 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_dca93cae-7ff5-11ea-b282-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1566 + <p class="attribute-description mb-0">Entrée laveuse-sécheuse</p>
1567 + </li>
1568 +
1569 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1570 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_e4ecf7a2-7ff5-11ea-abd0-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1571 + <p class="attribute-description mb-0">Entrée lave-vaisselle</p>
1572 + </li>
1573 +
1574 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1575 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_f86ba210-7ff5-11ea-b282-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1576 + <p class="attribute-description mb-0">Conciergerie sur place</p>
1577 + </li>
1578 +
1579 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1580 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_94300a9a-7ff8-11ea-b282-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1581 + <p class="attribute-description mb-0">Espace de rangement</p>
1582 + </li>
1583 +
1584 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1585 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_3aa45458-af10-11ea-a7e4-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1586 + <p class="attribute-description mb-0">Petit chien accepté</p>
1587 + </li>
1588 +
1589 + </ul>
1590 +
1591 +
1592 + </div>
1593 +
1594 + </div>
1595 +
1596 + </div>
1597 + </div>
1598 + <div class="row mt-3">
1599 + <div class="col-md-4">
1600 + <button
1601 + class="inquire-room-and-scroll btn btn-outline-primary btn-block unit-detail d-none d-lg-block"
1602 + data-unit_room="4½">
1603 + S'informer
1604 + </button>
1605 + <button
1606 + class="inquire-room-and-scroll btn btn-outline-primary btn-block unit-detail d-block d-lg-none"
1607 + data-unit_room="4½" onclick="displayInquiryAndScroll();">
1608 + S'informer
1609 + </button>
1610 + </div>
1611 + </div>
1612 + <div class="units-detail">
1613 +
1614 +
1615 +<p class="mb-0 mt-4">
1616 + 1
1617 + <span class="text-lowercase">
1618 +
1619 + unité
1620 +
1621 + </span>
1622 +</p>
1623 +
1624 +
1625 +
1626 +
1627 +<div class="row" id="units-for-unit-room-301">
1628 +
1629 +
1630 + <div class="col-12 h-100 ">
1631 + <div class="h-100 border-bottom">
1632 + <div class="row mt-3">
1633 + <div class="col-sm-6 col-md-4">
1634 + <p class="small-header">unité</p>
1635 + <p>
1636 + 308
1637 +
1638 + <span>&middot; 3e étage</span>
1639 +
1640 + </p>
1641 + </div>
1642 + <div class="col-sm-6 col-md-4">
1643 + <p class="small-header">Disponibilité</p>
1644 + <p class="">
1645 + décembre 2026
1646 + </p>
1647 + </div>
1648 + <div class="col-sm-6 col-md-4">
1649 + <p class="small-header">À partir de</p>
1650 + <p>1310,00$</p>
1651 + </div>
1652 +
1653 + </div>
1654 + <div class="row">
1655 + </div>
1656 +
1657 + </div>
1658 + </div>
1659 +
1660 +
1661 +</div>
1662 +
1663 + </div>
1664 +
1665 + </div>
1666 +
1667 + </div>
1668 + </div>
1669 + </div>
1670 +</div>
1671 +
1672 +<div id="modal-video" class="modal">
1673 + <div class="modal-dialog modal-lg" role="document">
1674 + <div class="modal-content">
1675 + <div id="modal-video-body" class="modal-body">
1676 + </div>
1677 + </div>
1678 + </div>
1679 +</div>
1680 +
1681 +<script type="text/javascript">
1682 + const toggleHiddenUnits = (unitRoomId) => {
1683 + if (unitRoomId) {
1684 + const hiddenUnits = document.getElementsByClassName(`hidden-unit-${unitRoomId}`);
1685 + for (unit of hiddenUnits) {
1686 + unit.classList.toggle("d-none");
1687 + }
1688 +
1689 + const seeMoreButton = document.getElementById(`see-more-units-${unitRoomId}`);
1690 + if (seeMoreButton.textContent === "Voir plus")
1691 + seeMoreButton.textContent = "Voir moins";
1692 + else
1693 + seeMoreButton.textContent = "Voir plus";
1694 + }
1695 + }
1696 +
1697 + const playVideo = (el) => {
1698 + const list = el.getElementsByTagName('video');
1699 + if (!list || !list.length)
1700 + return;
1701 +
1702 + const video = list[0];
1703 + const container = document.getElementById('modal-video-body');
1704 + container.appendChild(video);
1705 + video.play();
1706 +
1707 + el.classList.add('show-placeholder');
1708 +
1709 + $("#modal-video").modal();
1710 + $("#modal-video").on('hidden.bs.modal', () => {
1711 + el.classList.remove('show-placeholder');
1712 + el.insertBefore(video, el.children[0]);
1713 + video.currentTime = 0;
1714 + video.pause();
1715 + });
1716 + }
1717 +
1718 + function displayInquiryAndScroll() {
1719 + displayInquiry();
1720 + const form = document.getElementById("inquire-form-anchor");
1721 + form.scrollIntoView();
1722 + }
1723 +</script>
1724 +
1725 +
1726 +<div class="container">
1727 + <div class="row mt-5">
1728 + <div class="col-md-6">
1729 + <div class="row">
1730 + <div class="col-12">
1731 + <h2>À propos de l'immeuble</h2>
1732 + </div>
1733 + </div>
1734 + <div class="row">
1735 + <div class="col-12">
1736 + <p class="mb-1"><strong>Adresse</strong></p>
1737 +
1738 +
1739 +<script id="building-coordinates" type="application/json">[{"loc": ["46.844281", "-71.266209"], "id": 162}]</script>
1740 +
1741 +<div id="map-container" class="footer mb-2 mt-1">
1742 + <div id="interactive-map" style="height: 100%;" class="rounded">
1743 + </div>
1744 +</div>
1745 +
1746 + <p class="mb-0">5425, 5ème Avenue Ouest</p>
1747 + <p class="mb-0">Québec, Québec</p>
1748 + <p class="mb-3">G1H7E1</p>
1749 + <a href="https://www.google.com/maps/search/?api=1&amp;query=%205425%205eme%20Avenue%20Ouest%20Quebec%20G1H7E1" target="_blank">
1750 + Ouvrir sur Google Maps
1751 + </a>
1752 + </div>
1753 + </div>
1754 + <hr>
1755 + <div class="row">
1756 + <div class="col-12">
1757 + <p><strong>Plus d'informations</strong></p>
1758 + <div class="row">
1759 +
1760 + <div class="col-md-4">
1761 + <p class="subtext">Nombre d'étages</p>
1762 + <p class="d-md-none">
1763 +
1764 + 3 étage(s)
1765 +
1766 + </p>
1767 + </div>
1768 +
1769 + <div class="col-md-4">
1770 + <p class="subtext">Nombre total d'unités</p>
1771 + <p class="d-md-none">
1772 +
1773 + 32 unités
1774 +
1775 + </p>
1776 + </div>
1777 +
1778 + <div class="col-md-4">
1779 + <p class="subtext">Année de construction</p>
1780 + <p class="d-md-none">1986</p>
1781 + </div>
1782 +
1783 + </div>
1784 + <div class="row mb-3 d-none d-md-flex">
1785 +
1786 + <div class="col-md-4">
1787 + <p class="">
1788 +
1789 + 3 étage(s)
1790 +
1791 + </p>
1792 + </div>
1793 +
1794 + <div class="col-md-4">
1795 + <p class="">
1796 +
1797 + 32 unités
1798 +
1799 + </p>
1800 + </div>
1801 +
1802 + <div class="col-md-4">
1803 + <p class="">1986</p>
1804 + </div>
1805 +
1806 + </div>
1807 +
1808 + </div>
1809 + </div>
1810 +
1811 + <hr>
1812 + <div class="row">
1813 + <div class="col-12">
1814 + <p><strong>Commodités de l'immeuble</strong></p>
1815 + <div class="row">
1816 + <div class="col-12">
1817 +
1818 +
1819 +
1820 +
1821 +
1822 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1823 +
1824 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1825 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1826 + <p class="attribute-description mb-0">Intercom</p>
1827 + </li>
1828 +
1829 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1830 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1831 + <p class="attribute-description mb-0">Équipe de maintenance 24h</p>
1832 + </li>
1833 +
1834 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1835 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1836 + <p class="attribute-description mb-0">Stationnement</p>
1837 + </li>
1838 +
1839 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1840 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1841 + <p class="attribute-description mb-0">Planchers en béton</p>
1842 + </li>
1843 +
1844 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1845 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1846 + <p class="attribute-description mb-0">Secteur paisible</p>
1847 + </li>
1848 +
1849 + </ul>
1850 +
1851 +
1852 + </div>
1853 + </div>
1854 + </div>
1855 + </div>
1856 +
1857 +
1858 +
1859 + <hr>
1860 + <div class="row">
1861 + <div class="col-12">
1862 + <p><strong>Accès et services</strong></p>
1863 + <div class="row">
1864 + <div class="col-12">
1865 +
1866 +
1867 +
1868 +
1869 +
1870 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1871 +
1872 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1873 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1874 + <p class="attribute-description mb-0">École</p>
1875 + </li>
1876 +
1877 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1878 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1879 + <p class="attribute-description mb-0">Métrobus à proximité</p>
1880 + </li>
1881 +
1882 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1883 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1884 + <p class="attribute-description mb-0">Accès facile aux autoroutes</p>
1885 + </li>
1886 +
1887 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1888 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1889 + <p class="attribute-description mb-0">Dépanneur</p>
1890 + </li>
1891 +
1892 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1893 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1894 + <p class="attribute-description mb-0">Garderies</p>
1895 + </li>
1896 +
1897 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1898 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1899 + <p class="attribute-description mb-0">Clinique médicale</p>
1900 + </li>
1901 +
1902 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1903 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1904 + <p class="attribute-description mb-0">Banque</p>
1905 + </li>
1906 +
1907 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1908 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1909 + <p class="attribute-description mb-0">Pharmacie</p>
1910 + </li>
1911 +
1912 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1913 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1914 + <p class="attribute-description mb-0">Parc</p>
1915 + </li>
1916 +
1917 + </ul>
1918 +
1919 +
1920 + </div>
1921 + </div>
1922 + </div>
1923 + </div>
1924 +
1925 + </div>
1926 +
1927 + <div class="offset-lg-1 col-lg-5 col-md-6 mt-4 mt-md-0">
1928 + <div class="shadow">
1929 + <img
1930 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Quebec-Parc_des_Moulins.jpeg"
1931 + alt="Borough image"
1932 + width="100%"
1933 + height="200px"
1934 + class="object-fit-cover">
1935 + <div class="row p-4">
1936 + <div class="col-12">
1937 + <p class="small-header">À propos du quartier</p>
1938 + <h3>Charlesbourg</h3>
1939 + <p>L’arrondissement de Charlesbourg se démarque par sa qualité de vie et par les traces que son histoire a laissées dans le paysage.</p>
1940 + <p>Le Trait-Carré, cœur historique de l’arrondissement, témoigne en effet de cet héritage et recèle de nombreux éléments architecturaux d’intérêt (galeries d’art, maisons ancestrales, lieux historiques). Avec près de 60% de son territoire agricole ou boisé, Charlesbourg offre un potentiel récréatif exceptionnel grâce à de nombreux parcs et espaces verts, tout en étant situé à quelques minutes du centre-ville de Québec.</p>
1941 + <a href="/louer-appartement-quebec/charlesbourg">
1942 +
1943 + Voir les appartements à Charlesbourg
1944 +
1945 + </a>
1946 + </div>
1947 + </div>
1948 + </div>
1949 + </div>
1950 +
1951 + </div>
1952 + <div class="row">
1953 + <div class="col-12">
1954 +
1955 +
1956 +
1957 +
1958 + <div class="row mt-5 ">
1959 + <h2 class="col-12 text-center mb-4 text-primary">Nos logements en vedette</h2>
1960 + <div class="col-12 mb-3">
1961 +
1962 +
1963 +
1964 +<div class="row">
1965 +
1966 + <a
1967 + href="/logement/18"
1968 + class="appartments card border-white col-sm-6 mb-4 col-md-4 "
1969 + data-type="3"
1970 + data-borough="3"
1971 + >
1972 +
1973 +
1974 +
1975 +
1976 +<script>
1977 + function displayNowAvailableBubble(buildingId) {
1978 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
1979 + nowAvailableBubble.classList.remove("d-none");
1980 + }
1981 +</script>
1982 +
1983 +<div class="row">
1984 +
1985 +
1986 +
1987 + <img src alt="" onerror="displayNowAvailableBubble(18 + '-recommendation');"></img>
1988 +
1989 +
1990 +
1991 +
1992 + <div class="now-available-bubble d-none" id="now-available-bubble-18-recommendation">
1993 + <p class="text-white m-0">En vedette</p>
1994 + </div>
1995 +
1996 +
1997 + <div class="col-6 apartment-col">
1998 + <div class="row">
1999 + <div class="col-12 pr-0">
2000 +
2001 + <img
2002 + class="rounded-left apartment-image"
2003 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_3_bf11e94e-3f15-11f1-9a87-12e0191876fd.jpg"
2004 + alt="unit image"
2005 + width=100%
2006 + height=232px
2007 + />
2008 +
2009 + </div>
2010 + </div>
2011 + </div>
2012 +
2013 +
2014 + <div class="col-6 apartment-col">
2015 + <div class="row">
2016 + <div class="col-12 pl-0">
2017 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_2_bfb756f4-3f15-11f1-9a87-12e0191876fd.jpg"
2018 + alt="unit image" width="100%" height="116px">
2019 + </div>
2020 + </div>
2021 +
2022 + <div class="row">
2023 + <div class="col-12 pl-0">
2024 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_5_mod_c088e282-3f15-11f1-9a87-12e0191876fd.jpg"
2025 + alt="unit image" width=100% height=116px>
2026 + </div>
2027 + </div>
2028 +
2029 + </div>
2030 +
2031 +
2032 +
2033 +</div>
2034 +
2035 +
2036 +
2037 +
2038 +
2039 +<div class="row mt-4">
2040 + <div class="col-12">
2041 + <div class="card-body p-0 text-left">
2042 + <h5 class="apartment-borough">Appartements &middot; Beauport</h5>
2043 + <p class="apartment-address mb-1">555, avenue du Fleuve</p>
2044 +
2045 +
2046 + <div class="row">
2047 + <div class="col-7">
2048 + <p class="apartment-infos mb-0">
2049 +
2050 + 1½ à partir de 799$
2051 +
2052 + </p>
2053 + <p class="apartment-availability footnotes">
2054 + Libre immédiatement
2055 + </p>
2056 + </div>
2057 + <div class="col-5 text-right">
2058 +
2059 +
2060 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_light.png" alt="Électricité" height=18px width=18px>
2061 +
2062 +
2063 +
2064 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2065 +
2066 +
2067 +
2068 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_heat.png" alt="Chauffage" height=18px width=18px>
2069 +
2070 +
2071 +
2072 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2073 +
2074 +
2075 +
2076 +
2077 +
2078 +
2079 +
2080 + <p class="footnotes d-inline"> +2</p>
2081 +
2082 + </div>
2083 + </div>
2084 +
2085 +
2086 +
2087 + </div>
2088 + </div>
2089 +</div>
2090 +
2091 + </a>
2092 +
2093 + <a
2094 + href="/logement/312"
2095 + class="appartments card border-white col-sm-6 mb-4 col-md-4 "
2096 + data-type="3"
2097 + data-borough="10"
2098 + >
2099 +
2100 +
2101 +
2102 +
2103 +<script>
2104 + function displayNowAvailableBubble(buildingId) {
2105 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2106 + nowAvailableBubble.classList.remove("d-none");
2107 + }
2108 +</script>
2109 +
2110 +<div class="row">
2111 +
2112 +
2113 +
2114 + <img src alt="" onerror="displayNowAvailableBubble(312 + '-recommendation');"></img>
2115 +
2116 +
2117 +
2118 +
2119 + <div class="now-available-bubble d-none" id="now-available-bubble-312-recommendation">
2120 + <p class="text-white m-0">En vedette</p>
2121 + </div>
2122 +
2123 +
2124 + <div class="col-6 apartment-col">
2125 + <div class="row">
2126 + <div class="col-12 pr-0">
2127 +
2128 + <img
2129 + class="rounded-left apartment-image"
2130 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/CUISINE_2_a8e2db9c-5811-11f0-8a5b-0e9b4be91035.jpg"
2131 + alt="unit image"
2132 + width=100%
2133 + height=232px
2134 + />
2135 +
2136 + </div>
2137 + </div>
2138 + </div>
2139 +
2140 +
2141 + <div class="col-6 apartment-col">
2142 + <div class="row">
2143 + <div class="col-12 pl-0">
2144 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/CUISINE_a99b01fe-5811-11f0-8a5b-0e9b4be91035.jpg"
2145 + alt="unit image" width="100%" height="116px">
2146 + </div>
2147 + </div>
2148 +
2149 + <div class="row">
2150 + <div class="col-12 pl-0">
2151 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/SALON_aa37903c-5811-11f0-8a5b-0e9b4be91035.jpg"
2152 + alt="unit image" width=100% height=116px>
2153 + </div>
2154 + </div>
2155 +
2156 + </div>
2157 +
2158 +
2159 +
2160 +</div>
2161 +
2162 +
2163 +
2164 +
2165 +
2166 +<div class="row mt-4">
2167 + <div class="col-12">
2168 + <div class="card-body p-0 text-left">
2169 + <h5 class="apartment-borough">Appartements &middot; Lebourgneuf</h5>
2170 + <p class="apartment-address mb-1">5900 boul. St-Jacques</p>
2171 +
2172 +
2173 + <div class="row">
2174 + <div class="col-7">
2175 + <p class="apartment-infos mb-0">
2176 +
2177 + 4½ à partir de 1595$
2178 +
2179 + </p>
2180 + <p class="apartment-availability footnotes">
2181 + octobre 2026
2182 + </p>
2183 + </div>
2184 + <div class="col-5 text-right">
2185 +
2186 +
2187 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2188 +
2189 +
2190 +
2191 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_ac.png" alt="Climatiseur" height=18px width=18px>
2192 +
2193 +
2194 +
2195 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2196 +
2197 +
2198 +
2199 + </div>
2200 + </div>
2201 +
2202 +
2203 +
2204 + </div>
2205 + </div>
2206 +</div>
2207 +
2208 + </a>
2209 +
2210 + <a
2211 + href="/logement/160"
2212 + class="appartments card border-white col-sm-6 mb-4 col-md-4 "
2213 + data-type="3"
2214 + data-borough="6"
2215 + >
2216 +
2217 +
2218 +
2219 +
2220 +<script>
2221 + function displayNowAvailableBubble(buildingId) {
2222 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2223 + nowAvailableBubble.classList.remove("d-none");
2224 + }
2225 +</script>
2226 +
2227 +<div class="row">
2228 +
2229 +
2230 +
2231 + <img src alt="" onerror="displayNowAvailableBubble(160 + '-recommendation');"></img>
2232 +
2233 +
2234 +
2235 +
2236 + <div class="now-available-bubble d-none" id="now-available-bubble-160-recommendation">
2237 + <p class="text-white m-0">En vedette</p>
2238 + </div>
2239 +
2240 +
2241 + <div class="col-6 apartment-col">
2242 + <div class="row">
2243 + <div class="col-12 pr-0">
2244 +
2245 + <img
2246 + class="rounded-left apartment-image"
2247 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD1_54749d22-bfa3-11ea-9b14-0e226705be53.jpg"
2248 + alt="unit image"
2249 + width=100%
2250 + height=232px
2251 + />
2252 +
2253 + </div>
2254 + </div>
2255 + </div>
2256 +
2257 +
2258 + <div class="col-6 apartment-col">
2259 + <div class="row">
2260 + <div class="col-12 pl-0">
2261 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD2_5554869e-bfa3-11ea-9b14-0e226705be53.jpg"
2262 + alt="unit image" width="100%" height="116px">
2263 + </div>
2264 + </div>
2265 +
2266 + <div class="row">
2267 + <div class="col-12 pl-0">
2268 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD3_562eca5c-bfa3-11ea-9b14-0e226705be53.jpg"
2269 + alt="unit image" width=100% height=116px>
2270 + </div>
2271 + </div>
2272 +
2273 + </div>
2274 +
2275 +
2276 +
2277 +</div>
2278 +
2279 +
2280 +
2281 +
2282 +
2283 +<div class="row mt-4">
2284 + <div class="col-12">
2285 + <div class="card-body p-0 text-left">
2286 + <h5 class="apartment-borough">Appartements &middot; Neufchatel</h5>
2287 + <p class="apartment-address mb-1">1573, rue Pierre-Corneille</p>
2288 +
2289 +
2290 + <div class="row">
2291 + <div class="col-7">
2292 + <p class="apartment-infos mb-0">
2293 +
2294 + 4½ à partir de 1250$
2295 +
2296 + </p>
2297 + <p class="apartment-availability footnotes">
2298 + Libre immédiatement
2299 + </p>
2300 + </div>
2301 + <div class="col-5 text-right">
2302 +
2303 +
2304 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2305 +
2306 +
2307 +
2308 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2309 +
2310 +
2311 +
2312 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2313 +
2314 +
2315 +
2316 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_appliances_alt.png" alt="Lave-vaisselle" height=18px width=18px>
2317 +
2318 +
2319 +
2320 + </div>
2321 + </div>
2322 +
2323 +
2324 +
2325 + </div>
2326 + </div>
2327 +</div>
2328 +
2329 + </a>
2330 +
2331 +</div>
2332 +
2333 + </div>
2334 +
2335 + </div>
2336 +
2337 +
2338 + </div>
2339 + </div>
2340 +</div>
2341 +<div class="bg-primary py-5 mt-5">
2342 + <div class="container">
2343 + <div class="row justify-content-center">
2344 + <div class="col-sm-8 col-md-5 col-lg-11 d-flex flex-column align-items-center">
2345 + <h1 class="text-white text-center small-title">Ce logement vous intéresse? Contactez-nous!</h1>
2346 + <a href="#building-address-1" class="btn btn-dark border-white d-none d-lg-block">Nous joindre</a>
2347 + <a href="/nous-joindre" class="btn btn-dark border-white d-block d-lg-none">Nous joindre</a>
2348 + </div>
2349 + </div>
2350 + </div>
2351 +</div>
2352 +<div id="modal-inquire" class="modal">
2353 +
2354 +
2355 +
2356 +
2357 +<div class="inquire-step-1 container p-0 mb-5 position-relative">
2358 + <div id="inquire-step-1" style="position: absolute; top: -134px;"></div>
2359 + <h2 class="mb-4" style="font-size: 1.6rem;">S'informer sur ce logement</h2>
2360 + <p>418-626-3070</p>
2361 + <p class="text-primary"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="24484b4745504d4b4a6448454256454a4741094945504c4d41510a474b49">[email&#160;protected]</a></p>
2362 + <p class="mb-4">Dites-nous quelles unités vous intéressent ainsi que votre date de déménagement prévue.</p>
2363 + <p class="text-gray-light">Intéressé par ces unités</p>
2364 +
2365 + <div class="d-inline-flex flex-wrap">
2366 +
2367 +
2368 + <button
2369 + class="inquire-room btn btn-normal mb-3"
2370 + data-unit_room="4½"
2371 + data-toggle="button"
2372 + >
2373 +
2374 + </button>
2375 +
2376 +
2377 + </div>
2378 +
2379 + <div class="dropdown mb-4">
2380 + <div class="dropdown-toggle inquire-units-button rounded p-3 text-left" type="button"
2381 + id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
2382 + <p class="inquire-units-label-title text-uppercase mb-0">
2383 + Unité(s) spécifique(s)
2384 + </p>
2385 + <p id="inquire-units-label-noselected" class="inquire-units-label-selection m-0">
2386 + Aucune choisie
2387 + </p>
2388 + <p id="inquire-units-label-selected" class="inquire-units-label-selection d-none m-0"></p>
2389 + </div>
2390 + <div class="dropdown-menu inquire-units-choices rounded border-gray-very-light" aria-labelledby="dropdownMenuButton">
2391 +
2392 +
2393 + <button class="inquire-units-choice dropdown-item" data-unit="308"
2394 + data-unit_room="4½">
2395 + 308
2396 + </button>
2397 +
2398 +
2399 + </div>
2400 + </div>
2401 +
2402 +
2403 + <p class="text-gray-light">Date de déménagement prévue</p>
2404 + <div id="inquire-datepicker" class="input-group date mt-1">
2405 + <input id="inquire-datepicker-input" class="form-control" onfocus="blur();" placeholder="Sélectionner une date">
2406 + <div class="input-group-addon">
2407 + <span class="glyphicon glyphicon-th"></span>
2408 + </div>
2409 + </div>
2410 +</div>
2411 +
2412 +<div class="inquire-step-2 container p-0 mb-5 d-none position-relative">
2413 + <div id="inquire-step-2" style="position: absolute; top: -134px;"></div>
2414 + <h2 class="my-4" style="font-size: 1.6rem;">Comment peut-on vous rejoindre?</h2>
2415 + <p>Inscrivez vos coordonnées afin que notre équipe puisse vous rejoindre et vous conseiller.</p>
2416 + <form id="inquire-form">
2417 + <div class="form-group">
2418 + <input name="firstName" type="text" class="form-control" id="inquireForm-firstName"
2419 + placeholder="Prénom"></input>
2420 + </div>
2421 + <div class="form-group">
2422 + <input name="lastName" type="text" class="form-control" id="inquireForm-lastName"
2423 + placeholder="Nom de famille"></input>
2424 + </div>
2425 + <div class="form-group">
2426 + <select name="contactMethod" class="form-control" id="inquireForm-contactMethod">
2427 + <option id="email" value="email" selected>Courriel</option>
2428 + <option id="phone" value="phone">Téléphone</option>
2429 + </select>
2430 + </div>
2431 + <div id="inquireForm-contact-email" class="form-group">
2432 + <input name="contactEmail" type="email" class="form-control" id="inquireForm-email"
2433 + placeholder="Adresse courriel"></input>
2434 + </div>
2435 + <div id="inquireForm-contact-phone" class="form-group d-none">
2436 + <input name="contactPhone" type="tel" class="form-control" id="inquireForm-phone"
2437 + placeholder="Numéro de téléphone"></input>
2438 + </div>
2439 + <div class="form-group">
2440 + <textarea name="comments" type="text" class="form-control" id="inquireForm-comments"
2441 + placeholder="Questions ou notes"></textarea>
2442 + </div>
2443 + <div id="g-recaptcha-error"></div>
2444 + <div class="mb-3 g-recaptcha" data-sitekey="6LdkNyIpAAAAAD7KhL3DhvgxSocY-78gAmvXBzoe" data-callback="verifyCaptcha"></div>
2445 + </form>
2446 +</div>
2447 +
2448 +<div class="inquire-step-3 d-none position-relative">
2449 + <div id="inquire-confirmation" style="position: absolute; top: -134px;"></div>
2450 + <img class="mt-4" src="/static/images/logos/sansfond_horizontal_noir.png" alt="L&M Logo" width="auto"
2451 + height="66px">
2452 + <h2 class="my-4" style="font-size: 1.6rem;">Votre demande a été envoyée à l’équipe de Lafrance et Mathieu.</h2>
2453 + <p>Nous répondons à toutes les demandes dans un délai de 24 à 48 heures (jours ouvrables).</p>
2454 +</div>
2455 +
2456 +<button id="inquire-btn-1" class="inquire-continue inquire-step-1 btn btn-primary w-100" disabled onclick="scrollToTopOfForm();">
2457 + Continuer
2458 +</button>
2459 +<button id="inquire-btn-2" class="inquire-submit inquire-step-2 btn btn-primary w-100 d-none" onclick="submitForm();" disabled>
2460 + Soumettre
2461 +</button>
2462 +<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
2463 + var recaptcha_response = '';
2464 + window.isCondo = "False" == "True";
2465 + document.getElementById("inquire-datepicker-input").value = "";
2466 +
2467 + function scrollToTopOfForm() {
2468 + const top = document.getElementById("inquire-step-1");
2469 + top.scrollIntoView();
2470 + }
2471 + function submitForm() {
2472 + if (recaptcha_response && recaptcha_response.length !== 0 && recaptcha_response !== ''){
2473 + onContinue2Click('71IYv0AIi73dmcO3hF3Y7PBmYdAUs6XtpWfQHo8c0xiBJYMyHbkhoICpFjaF726b');
2474 + const confirmation = document.getElementById("inquire-confirmation");
2475 + confirmation.scrollIntoView();
2476 + }
2477 + else {
2478 + document.getElementById('g-recaptcha-error').innerHTML = '<span style="color:red;">Ceci est obligatoire.</span>';
2479 + }
2480 + }
2481 +
2482 + function verifyCaptcha(token) {
2483 + recaptcha_response = token;
2484 + document.getElementById('g-recaptcha-error').innerHTML = '';
2485 + }
2486 +</script>
2487 +
2488 +</div>
2489 +
2490 +
2491 +
2492 +<div id="modal-share" class="modal">
2493 + <div class="modal-dialog h-75 d-flex justify-content-center align-items-center" role="document">
2494 + <div class="modal-content">
2495 + <div class="modal-body">
2496 + Partager ce logement
2497 + <div id="share-widget-container" class="d-flex justify-content-center"></div>
2498 + </div>
2499 + </div>
2500 + </div>
2501 +</div>
2502 +
2503 +
2504 +<script src="/static/js/share.js" defer></script>
2505 +
2506 +
2507 +
2508 +
2509 + </main>
2510 + <footer>
2511 +
2512 +
2513 +
2514 +<div class="footer row m-0 p-5 justify-content-center bg-black">
2515 + <div class="container m-0">
2516 + <div class="row mb-3">
2517 + <img src="/static/images/logos/sansfond_horizontal_blanc.png" alt="L&M Logo" width="auto"
2518 + height="80px" class="footer-logo">
2519 + </div>
2520 + <div class="row">
2521 + <div class="col-12 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pr-sm-4 d-flex flex-column">
2522 + <p class="footer-title mb-2">Contactez-nous</p>
2523 + <p class="footer-text mb-3">Pour toute question concercant nos services de gestion immobilière, nos logements à louer ou pour en savoir plus sur nos offres et services.</p>
2524 + <a href="tel:14186265500" class="mb-3 d-flex align-items-center">
2525 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-3" />
2526 + <span class="footer-phone">418 626-5500</span>
2527 + </a>
2528 + <a href="/cdn-cgi/l/email-protection#5e373038311e323f382c3f303d3b73333f2a36373b2b703d3133" target="_blank" class="mb-3 d-flex align-items-center">
2529 + <img src=/static/images/icons/email.svg alt="email icon" class="footer-icon mr-3" />
2530 + <span><span class="__cf_email__" data-cfemail="c4adaaa2ab84a8a5a2b6a5aaa7a1e9a9a5b0acada1b1eaa7aba9">[email&#160;protected]</span></span>
2531 + </a>
2532 + <a href="https://g.page/Lafrance-Mathieu?share" target="_blank" class="mb-4 d-flex align-items-center">
2533 + 1220 Boulevard Lebourgneuf<br>Québec, QC G2K 2G4
2534 + </a>
2535 + <p class="footer-title mb-2">Suivez-nous sur les réseaux</p>
2536 + <div class="d-flex">
2537 + <a href="https://ca.linkedin.com/company/gestion-immobilière-lafrance-et-mathieu-inc">
2538 + <img src=/static/images/icons/linkedin.svg alt="linkedin icon"
2539 + class="footer-social-icon mr-3" />
2540 + </a>
2541 + <a href="https://fr-ca.facebook.com/lafrance.mathieu">
2542 + <img src=/static/images/icons/facebook.svg alt="facebook icon"
2543 + class="footer-social-icon" />
2544 + </a>
2545 + </div>
2546 + </div>
2547 + <div class="col-10 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pl-sm-4 px-md-4 d-flex flex-column">
2548 + <p class="footer-title mb-2">Soutien aux résidents (24/7)</p>
2549 + <p class="footer-text mb-3">Pour toute urgence n’hésitez pas à nous contacter ou connectez vous à l’Espace client pour toute question ou demande moins urgente.</p>
2550 + <a href="tel:14186265500" class="mb-3 d-flex align-items-center">
2551 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-3" />
2552 + <span class="footer-phone">418-626-5500</span>
2553 + </a>
2554 + <a href="https://espace-client.lafrance-mathieu.com" target="_blank" class="d-flex align-items-center mb-3">
2555 + <img src=/static/images/icons/ticket.svg alt="client space icon" class="footer-icon mr-3" />
2556 + <span>Se connecter à l’Espace client</span>
2557 + </a>
2558 + <a href="https://doma.lafrance-mathieu.com:444/DocRoom/Auth/Login.aspx" target="_blank" class="d-flex align-items-center">
2559 + <img src=/static/images/icons/ticket.svg alt="intranet icon" class="footer-icon mr-3" />
2560 + <span>Se connecter à Sensaas</span>
2561 + </a>
2562 + </div>
2563 + <div class="col-10 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pr-sm-4 px-md-4">
2564 + <ul class="navbar-nav">
2565 +
2566 +
2567 +
2568 +<li class="nav-item ">
2569 + <a class="nav-link py-0 footer-main-navigation mb-3"
2570 + href="/">Accueil</a>
2571 + <hr class="my-1 border-gray-medium d-none">
2572 +</li>
2573 +
2574 +
2575 +
2576 +
2577 +
2578 +<li class="nav-item ">
2579 + <a class="nav-link py-0 footer-main-navigation mb-3"
2580 + href="/services-de-gestion-immobiliere">Services de gestion <br class='nav-item-translation'>immobilière</a>
2581 + <hr class="my-1 border-gray-medium d-none">
2582 +</li>
2583 +
2584 +
2585 +
2586 +
2587 +
2588 +<li class="nav-item ">
2589 + <a class="nav-link py-0 footer-main-navigation mb-3"
2590 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
2591 + <hr class="my-1 border-gray-medium d-none">
2592 +</li>
2593 +
2594 +
2595 +
2596 +
2597 +
2598 +<li class="nav-item ">
2599 + <a class="nav-link py-0 footer-main-navigation mb-3"
2600 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
2601 + <hr class="my-1 border-gray-medium d-none">
2602 +</li>
2603 +
2604 +
2605 +
2606 +
2607 +
2608 +<li class="nav-item ">
2609 + <a class="nav-link py-0 footer-main-navigation mb-3"
2610 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
2611 + <hr class="my-1 border-gray-medium d-none">
2612 +</li>
2613 +
2614 +
2615 +
2616 +
2617 +
2618 +<li class="nav-item ">
2619 + <a class="nav-link py-0 footer-main-navigation mb-3"
2620 + href="/qui-sommes-nous/">À propos de <br class='nav-item-translation'>Lafrance & Mathieu</a>
2621 + <hr class="my-1 border-gray-medium d-none">
2622 +</li>
2623 +
2624 +
2625 +
2626 + </ul>
2627 + </div>
2628 + <div class="col-10 col-sm-6 col-md-3 p-0 pl-sm-4">
2629 + <ul class="navbar-nav">
2630 +
2631 +
2632 +
2633 +<li class="nav-item ">
2634 + <a class="nav-link py-0 footer-main-navigation mb-3"
2635 + href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
2636 + <hr class="my-1 border-gray-medium d-none">
2637 +</li>
2638 +
2639 +
2640 +
2641 +
2642 +
2643 +<li class="nav-item ">
2644 + <a class="nav-link py-0 footer-main-navigation mb-3"
2645 + href="/blog">Blogue</a>
2646 + <hr class="my-1 border-gray-medium d-none">
2647 +</li>
2648 +
2649 +
2650 +
2651 +
2652 +
2653 +<li class="nav-item ">
2654 + <a class="nav-link py-0 footer-main-navigation mb-3"
2655 + href="/faire-carriere/">Carrières</a>
2656 + <hr class="my-1 border-gray-medium d-none">
2657 +</li>
2658 +
2659 +
2660 +
2661 + </ul>
2662 + </div>
2663 + </div>
2664 + </div>
2665 +</div>
2666 +
2667 +
2668 +
2669 +
2670 +<div class="footer-notices d-flex flex-column w-100 m-0 px-5 py-4 align-items-start align-items-sm-center bg-darker">
2671 + <div class="d-flex justify-content-center">
2672 + <ul class="list-inline mb-1">
2673 +
2674 + <li class="list-inline-item">
2675 + <a href=/conditions-utilisation>
2676 + Conditions d'utilisation
2677 + </a>
2678 + </li>
2679 +
2680 +
2681 + <li class="list-inline-item">
2682 + <a href=/politique-confidentialite>
2683 + Politique de confidentialité
2684 + </a>
2685 + </li>
2686 +
2687 +
2688 + <li class="list-inline-item">
2689 + <a href=/protection-renseignements-personnels>
2690 + Protection des renseignements personnels
2691 + </a>
2692 + </li>
2693 +
2694 +
2695 + <li class="list-inline-item">
2696 + <a href=/temoins-navigation>
2697 + Gérer vos témoins de navigation
2698 + </a>
2699 + </li>
2700 +
2701 + </ul>
2702 + </div>
2703 + <div class="d-flex justify-content-center">
2704 + <p class="">© Gestion immobilière Lafrance & Mathieu</p>
2705 + </div>
2706 +</div>
2707 +
2708 + </footer>
2709 +
2710 +
2711 +<!-- Cookie Banner -->
2712 +<div id="gilm-cookie-banner" class="alert alert-dark hidden" role="alert">
2713 + <div class="gilm-cookie-banner-container">
2714 + <div class="gilm-cookie-banner-text">
2715 + <p>
2716 + Nous utilisons les témoins de navigation (cookies) afin de mesurer et d’améliorer l’efficacité de nos
2717 + sites
2718 + Web
2719 + ou de rehausser l’expérience client. En utilisant notre site Web, vous consentez à l’utilisation de
2720 + témoins,
2721 + comme l’explique notre <a href=/protection-renseignements-personnels> protection des
2722 + renseignements personnels</a>. Si vous n'êtes pas à l'aise avec
2723 + l'utilisation
2724 + de ces informations, veuillez revoir vos paramètres avant de poursuivre votre visite.
2725 + </p>
2726 + <p class="d-sm-none">
2727 + <a href=/temoins-navigation>
2728 + Gérer vos témoins de navigation
2729 + </a>
2730 + <br/>
2731 + <a href=/politique-confidentialite>
2732 + Politique de confidentialité
2733 + </a>
2734 + <br/>
2735 + <a href=/conditions-utilisation>
2736 + Conditions d'utilisation
2737 + </a>
2738 + </p>
2739 + <p class="d-none d-sm-block">
2740 + <a href=/temoins-navigation>
2741 + Gérer vos témoins de navigation
2742 + </a>
2743 + -
2744 + <a href=/politique-confidentialite>
2745 + Politique de confidentialité
2746 + </a>
2747 + -
2748 + <a href=/conditions-utilisation>
2749 + Conditions d'utilisation
2750 + </a>
2751 + </p>
2752 + </div>
2753 + <button type="button" class="gilm-cookie-banner-button btn btn-primary btn-sm ms-3"
2754 + onclick="window.gilm_hideCookieBanner()">
2755 + <img src=/static/images/icons/close.svg alt="closing icon" class="close-icon"/>
2756 + </button>
2757 + </div>
2758 +</div>
2759 +<!-- End of Cookie Banner -->
2760 + </div>
2761 + <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous">
2762 + </script>
2763 + <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js" integrity="sha256-eGE6blurk5sHj+rmkfsGYeKyZx3M4bG+ZlFyA7Kns7E=" crossorigin="anonymous">
2764 + </script>
2765 + <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js" crossorigin="anonymous"></script>
2766 + <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous">
2767 + </script>
2768 + <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous">
2769 + </script>
2770 + <script type="text/javascript" src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js">
2771 + </script>
2772 + <script type="text/javascript" src="/static/js/carousel.js">
2773 + </script>
2774 + <script type="text/javascript" src="/static/js/cookie_banner.js">
2775 + </script>
2776 + <script id="search-script" type="text/javascript" src="/static/js/search.js">
2777 + </script>
2778 + <script type="text/javascript" src="/static/js/jssocials.min.js">
2779 + </script>
2780 + <script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin="">
2781 + </script>
2782 + <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js" integrity="sha256-bqVeqGdJ7h/lYPq6xrPv/YGzMEb6dNxlfiTUHSgRCp8=" crossorigin="anonymous">
2783 + </script>
2784 + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/locales/bootstrap-datepicker.fr.min.js" charset="UTF-8">
2785 + </script>
2786 + <script async src="https://www.googletagmanager.com/gtag/js?id=UA-20687227-3"></script>
2787 + <script>
2788 + window.dataLayer = window.dataLayer || [];
2789 +
2790 + function gtag() {
2791 + dataLayer.push(arguments);
2792 + }
2793 + gtag('js', new Date());
2794 + gtag('config', 'UA-20687227-3');
2795 + </script>
2796 +
2797 +<script src="/static/js/inquire.js"></script>
2798 +<script src="/static/js/leaflet.js" is-building-details="true"></script>
2799 +
2800 +
2801 + </body>
2802 +
2803 + </html>
added tests/fixtures/lafrance_mathieu/0b07b3213618333643e3.html +3432 −0
@@ -0,0 +1,3432 @@
1 +
2 +
3 +
4 +
5 + <!DOCTYPE html>
6 + <html lang="fr" class="">
7 +
8 + <head>
9 +
10 + <meta charset="utf-8">
11 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
12 + <meta name="format-detection" content="telephone=no" />
13 + <link rel="alternate" href="https://lafrance-mathieu.com" hreflang="fr-ca" />
14 + <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css" />
15 + <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
16 + <link rel="stylesheet" href="/static/styling/index.css" />
17 + <script src="https://kit.fontawesome.com/72880f5a8c.js" crossorigin="anonymous"></script>
18 + <link rel="stylesheet" href="/static/styling/vendor/jssocials.css" />
19 + <link rel="stylesheet" href="/static/styling/vendor/jssocials-theme-flat.css" />
20 + <link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin="" />
21 + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css" integrity="sha256-siyOpF/pBWUPgIcQi17TLBkjvNgNQArcmwJB8YvkAgg=" crossorigin="anonymous" />
22 +
23 +<link rel="alternate" hreflang="fr-ca" href="/louer-appartement-quebec/" />
24 +<meta name="title" content="Logement a louer">
25 +<meta name="description" content="Trouvez votre appartement chez Lafrance et Mathieu. Louez un logement.">
26 +<meta name="keywords"
27 + content="appartement a louer,logement a louer, alouer, studio a louer, appartement meublé, appartement, louer, logement vacant, condo à louer,condo locatif, condo a louer lebourgneuf, condo a louer neufchatel, condo a louer charlesbourg, condo locatif Québec, logement, Québec, ville de québec, limoilou, charlesbourg, beauport, location, lafrance, mathieu, 1 et demi, 2 et demi, 3 et demi, 4 et demi, 5 et demi, 6 et demi, 7 et demi">
28 +<meta name="robots" content="index, follow">
29 +<title>Logements à louer - Lafrance & Mathieu</title>
30 +
31 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
32 + <meta name="language" content="French">
33 + <link rel="icon" type="image/ico" href="/static/images/favicon.ico" />
34 +
35 +
36 + <!-- Google Tag Manager -->
37 + <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
38 + new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
39 + j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
40 + 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
41 + })(window,document,'script','dataLayer','GTM-T675TG3');</script>
42 + <!-- End Google Tag Manager -->
43 + </head>
44 +
45 + <body>
46 + <!-- Google Tag Manager (noscript) -->
47 + <noscript><iframe src=https://www.googletagmanager.com/ns.html?id=GTM-T675TG3
48 + height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
49 + <!-- End Google Tag Manager (noscript) -->
50 +
51 + <div class="main-container">
52 + <header id="gilm-header" class>
53 +
54 +
55 +
56 +
57 +<nav class="nav desktop-nav">
58 + <div class="desktop-nav-top">
59 + <a class="desktop-nav-top-link" href="/faire-carriere/">
60 + <p>Carrières</p>
61 + </a>
62 +
63 + <a class="desktop-nav-top-link" href="/blog">
64 + <p>Lafrance et Mathieu: Blogue</p>
65 + </a>
66 +
67 + <a class="desktop-nav-top-link" href="https://espace-client.lafrance-mathieu.com" target="_blank">
68 + <p class="text-primary">Connexion</p>
69 + </a>
70 + </div>
71 + <div class="desktop-nav-bottom ">
72 + <ul class="desktop-nav-bottom-content left">
73 +
74 +
75 +
76 +
77 +
78 +
79 +
80 +<li
81 + class="nav-item dropdown "
82 + href="#"
83 +>
84 + <a
85 + class="nav-link py-0 dropdown-toggle header-main-navigation"
86 + href="#"
87 + id="navbardrop"
88 + data-toggle="dropdown"
89 + >
90 + Services de gestion <br class='nav-item-translation'>immobilière
91 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
92 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
93 +</svg>
94 +
95 + </a>
96 + <ul
97 + class="dropdown-menu dark dropdown-submenu"
98 + >
99 +
100 +
101 + <li class="nav-item">
102 + <a
103 + class="dropdown-item header-main-navigation text-wrap "
104 + href="/services-de-gestion-immobiliere"
105 + >
106 + Présentation de nos services
107 + </a>
108 + </li>
109 +
110 +
111 +
112 + <li class="nav-item">
113 + <a
114 + class="dropdown-item header-main-navigation text-wrap "
115 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
116 + >
117 + Gestion d’immeubles en copropriété
118 + </a>
119 + </li>
120 +
121 +
122 +
123 + <li class="nav-item">
124 + <a
125 + class="dropdown-item header-main-navigation text-wrap "
126 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
127 + >
128 + Gestion immobilière d&#x27;appartements en location
129 + </a>
130 + </li>
131 +
132 +
133 +
134 + <li class="nav-item">
135 + <a
136 + class="dropdown-item header-main-navigation text-wrap "
137 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
138 + >
139 + Gestion immobilière commerciale
140 + </a>
141 + </li>
142 +
143 +
144 +
145 + <li class="nav-item">
146 + <a
147 + class="dropdown-item header-main-navigation text-wrap "
148 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
149 + >
150 + Service de courtage immobilier
151 + </a>
152 + </li>
153 +
154 +
155 +
156 + <li class="nav-item">
157 + <a
158 + class="dropdown-item header-main-navigation text-wrap "
159 + href="/services-de-gestion-immobiliere/gilm-renovation"
160 + >
161 + GILM Rénovation
162 + </a>
163 + </li>
164 +
165 +
166 + </ul>
167 + <hr class="my-1 border-gray-medium d-none">
168 +</li>
169 +
170 +
171 +
172 +
173 +
174 +
175 +
176 +
177 +<li class="nav-item active ">
178 + <a class="nav-link py-0 header-main-navigation"
179 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
180 + <hr class="my-1 border-gray-medium d-none">
181 +</li>
182 +
183 +
184 +
185 +
186 +
187 +
188 +
189 +<li class="nav-item ">
190 + <a class="nav-link py-0 header-main-navigation"
191 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
192 + <hr class="my-1 border-gray-medium d-none">
193 +</li>
194 +
195 +
196 +
197 +
198 + </ul>
199 +
200 + <ul class="desktop-nav-bottom-content">
201 + <li class="desktop-nav-logo">
202 + <a href="/">
203 + <img src="/static/images/logos/sansfond_horizontal_noir.png" alt="L&M Logo" class="desktop-nav-logo-horizontal " />
204 + <img src="/static/images/logos/sansfond_vertical_blanc.png" alt="L&M Logo" class="desktop-nav-logo-vertical d-none" />
205 + </a>
206 + </li>
207 + </ul>
208 +
209 + <ul class="desktop-nav-bottom-content right">
210 +
211 +
212 +
213 +
214 +<li class="nav-item order-5">
215 + <a class="nav-link py-0 header-main-navigation"
216 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
217 + <hr class="my-1 border-gray-medium d-none">
218 +</li>
219 +
220 +
221 +
222 +
223 +
224 +
225 +
226 +
227 +
228 +
229 +<li
230 + class="nav-item dropdown order-6"
231 + href="#"
232 +>
233 + <a
234 + class="nav-link py-0 dropdown-toggle header-main-navigation"
235 + href="#"
236 + id="navbardrop"
237 + data-toggle="dropdown"
238 + >
239 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
240 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
241 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
242 +</svg>
243 +
244 + </a>
245 + <ul
246 + class="dropdown-menu dark dropdown-submenu"
247 + >
248 +
249 +
250 + <li class="nav-item">
251 + <a
252 + class="dropdown-item header-main-navigation text-wrap "
253 + href="/qui-sommes-nous/?tab=1"
254 + >
255 + Qui sommes-nous
256 + </a>
257 + </li>
258 +
259 +
260 +
261 + <li class="nav-item">
262 + <a
263 + class="dropdown-item header-main-navigation text-wrap "
264 + href="/qui-sommes-nous/?tab=2"
265 + >
266 + Mission et valeurs
267 + </a>
268 + </li>
269 +
270 +
271 +
272 + <li class="nav-item">
273 + <a
274 + class="dropdown-item header-main-navigation text-wrap "
275 + href="/qui-sommes-nous/?tab=3"
276 + >
277 + Équipe de direction
278 + </a>
279 + </li>
280 +
281 +
282 + </ul>
283 + <hr class="my-1 border-gray-medium d-none">
284 +</li>
285 +
286 +
287 +
288 +
289 +
290 +
291 +
292 +
293 +<li class="nav-item order-7">
294 + <a class="nav-link py-0 header-main-navigation"
295 + href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
296 + <hr class="my-1 border-gray-medium d-none">
297 +</li>
298 +
299 +
300 +
301 +
302 + </ul>
303 + </div>
304 +</nav>
305 +<nav class="nav mobile-nav">
306 + <div class="nav-bottom nav-d-none order-2" id="navbarSupportedContent">
307 + <ul class="nav-main-links">
308 +
309 +
310 +
311 +
312 +<li class="nav-item ">
313 + <a class="nav-link py-0 header-main-navigation"
314 + href="/">Accueil</a>
315 + <hr class="my-1 border-gray-medium d-none">
316 +</li>
317 +
318 +
319 +
320 +
321 +
322 +
323 +
324 +
325 +
326 +
327 +<li
328 + class="nav-item dropdown "
329 + href="#"
330 +>
331 + <a
332 + class="nav-link py-0 dropdown-toggle header-main-navigation"
333 + href="#"
334 + id="navbardrop"
335 + data-toggle="dropdown"
336 + >
337 + Services de gestion <br class='nav-item-translation'>immobilière
338 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
339 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
340 +</svg>
341 +
342 + </a>
343 + <ul
344 + class="dropdown-menu bg-gray-blue dropdown-submenu"
345 + >
346 +
347 +
348 + <li class="nav-item">
349 + <a
350 + class="dropdown-item header-main-navigation text-wrap "
351 + href="/services-de-gestion-immobiliere"
352 + >
353 + Présentation de nos services
354 + </a>
355 + </li>
356 +
357 +
358 +
359 + <li class="nav-item">
360 + <a
361 + class="dropdown-item header-main-navigation text-wrap "
362 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
363 + >
364 + Gestion d’immeubles en copropriété
365 + </a>
366 + </li>
367 +
368 +
369 +
370 + <li class="nav-item">
371 + <a
372 + class="dropdown-item header-main-navigation text-wrap "
373 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
374 + >
375 + Gestion immobilière d&#x27;appartements en location
376 + </a>
377 + </li>
378 +
379 +
380 +
381 + <li class="nav-item">
382 + <a
383 + class="dropdown-item header-main-navigation text-wrap "
384 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
385 + >
386 + Gestion immobilière commerciale
387 + </a>
388 + </li>
389 +
390 +
391 +
392 + <li class="nav-item">
393 + <a
394 + class="dropdown-item header-main-navigation text-wrap "
395 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
396 + >
397 + Service de courtage immobilier
398 + </a>
399 + </li>
400 +
401 +
402 +
403 + <li class="nav-item">
404 + <a
405 + class="dropdown-item header-main-navigation text-wrap "
406 + href="/services-de-gestion-immobiliere/gilm-renovation"
407 + >
408 + GILM Rénovation
409 + </a>
410 + </li>
411 +
412 +
413 + </ul>
414 + <hr class="my-1 border-gray-medium d-none">
415 +</li>
416 +
417 +
418 +
419 +
420 +
421 +
422 +
423 +
424 +<li class="nav-item active ">
425 + <a class="nav-link py-0 header-main-navigation"
426 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
427 + <hr class="my-1 border-gray-medium d-none">
428 +</li>
429 +
430 +
431 +
432 +
433 +
434 +
435 +
436 +<li class="nav-item ">
437 + <a class="nav-link py-0 header-main-navigation"
438 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
439 + <hr class="my-1 border-gray-medium d-none">
440 +</li>
441 +
442 +
443 +
444 +
445 +
446 +
447 +
448 +<li class="nav-item ">
449 + <a class="nav-link py-0 header-main-navigation"
450 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
451 + <hr class="my-1 border-gray-medium d-none">
452 +</li>
453 +
454 +
455 +
456 +
457 +
458 +
459 +
460 +
461 +
462 +
463 +<li
464 + class="nav-item dropdown "
465 + href="#"
466 +>
467 + <a
468 + class="nav-link py-0 dropdown-toggle header-main-navigation"
469 + href="#"
470 + id="navbardrop"
471 + data-toggle="dropdown"
472 + >
473 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
474 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
475 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
476 +</svg>
477 +
478 + </a>
479 + <ul
480 + class="dropdown-menu bg-gray-blue dropdown-submenu"
481 + >
482 +
483 +
484 + <li class="nav-item">
485 + <a
486 + class="dropdown-item header-main-navigation text-wrap "
487 + href="/qui-sommes-nous/?tab=1"
488 + >
489 + Qui sommes-nous
490 + </a>
491 + </li>
492 +
493 +
494 +
495 + <li class="nav-item">
496 + <a
497 + class="dropdown-item header-main-navigation text-wrap "
498 + href="/qui-sommes-nous/?tab=2"
499 + >
500 + Mission et valeurs
501 + </a>
502 + </li>
503 +
504 +
505 +
506 + <li class="nav-item">
507 + <a
508 + class="dropdown-item header-main-navigation text-wrap "
509 + href="/qui-sommes-nous/?tab=3"
510 + >
511 + Équipe de direction
512 + </a>
513 + </li>
514 +
515 +
516 + </ul>
517 + <hr class="my-1 border-gray-medium d-none">
518 +</li>
519 +
520 +
521 +
522 +
523 +
524 + </ul>
525 + <ul class="nav-quick-links mobile d-flex d-lg-none">
526 +
527 +
528 +<div class="nav-item">
529 + <a class="header-secondary-navigation" href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
530 +</div>
531 +
532 +
533 +
534 +
535 +<div class="nav-item">
536 + <a class="header-secondary-navigation" href="/blog">Blogue</a>
537 +</div>
538 +
539 +
540 +
541 +
542 +<div class="nav-item">
543 + <a class="header-secondary-navigation" href="/faire-carriere/">Carrières</a>
544 +</div>
545 +
546 +
547 +
548 + <li class="nav-item nav-client-space">
549 +
550 +
551 +<a class="btn btn-primary header-button-navigation text-white" href="https://espace-client.lafrance-mathieu.com">Connexion à l’Espace client</a>
552 + </li>
553 + </ul>
554 + <div class="w-100 my-3 d-flex d-lg-none flex-wrap">
555 + <div class="mb-4 p-0 pr-4 d-flex flex-column">
556 + <a href="tel:14186265500" class="mb-2 d-flex align-items-center">
557 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-2" />
558 + <span class="text-gray-light">418 626-5500</span>
559 + </a>
560 + <a href="/cdn-cgi/l/email-protection#d2bbbcb4bd92beb3b4a0b3bcb1b7ffbfb3a6babbb7a7fcb1bdbf" target="_blank" class="mb-3 d-flex align-items-center">
561 + <img src=/static/images/icons/call.svg alt="email icon" class="footer-icon mr-2" />
562 + <span><span class="__cf_email__" data-cfemail="721b1c141d321e131400131c11175f1f13061a1b17075c111d1f">[email&#160;protected]</span></span>
563 + </a>
564 + <p class="footer-text text-uppercase text-white text-bold">Suivez-nous sur les réseaux</p>
565 + <div class="d-flex">
566 + <a href="https://ca.linkedin.com/company/gestion-immobilière-lafrance-et-mathieu-inc">
567 + <img src=/static/images/icons/linkedin.svg alt="linkedin icon"
568 + class="footer-social-icon mr-3" />
569 + </a>
570 + <a href="https://fr-ca.facebook.com/lafrance.mathieu">
571 + <img src=/static/images/icons/facebook.svg alt="facebook icon"
572 + class="footer-social-icon" />
573 + </a>
574 + </div>
575 + </div>
576 + <div class="mb-4 mb-md-0 p-0 pl-sm-4 px-md-4 d-flex flex-column">
577 + <p class="footer-text text-uppercase text-white text-bold">Soutien aux résidents (24/7)</p>
578 + <a href="tel:14186265500" class="mb-2 d-flex align-items-center">
579 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-2" />
580 + <span class="text-gray-light">418 626-5500</span>
581 + </a>
582 + </div>
583 + </div>
584 + </div>
585 + <div class="nav-top order-1">
586 + <ul class="nav-main-links nav-main-links-top">
587 +
588 +
589 +
590 +
591 +<li class="nav-item ">
592 + <a class="nav-link py-0 header-main-navigation"
593 + href="/">Accueil</a>
594 + <hr class="my-1 border-gray-medium d-none">
595 +</li>
596 +
597 +
598 +
599 +
600 +
601 +
602 +
603 +
604 +
605 +
606 +<li
607 + class="nav-item dropdown "
608 + href="#"
609 +>
610 + <a
611 + class="nav-link py-0 dropdown-toggle header-main-navigation"
612 + href="#"
613 + id="navbardrop"
614 + data-toggle="dropdown"
615 + >
616 + Services de gestion <br class='nav-item-translation'>immobilière
617 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
618 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
619 +</svg>
620 +
621 + </a>
622 + <ul
623 + class="dropdown-menu bg-gray-blue dropdown-submenu"
624 + >
625 +
626 +
627 + <li class="nav-item">
628 + <a
629 + class="dropdown-item header-main-navigation text-wrap "
630 + href="/services-de-gestion-immobiliere"
631 + >
632 + Présentation de nos services
633 + </a>
634 + </li>
635 +
636 +
637 +
638 + <li class="nav-item">
639 + <a
640 + class="dropdown-item header-main-navigation text-wrap "
641 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
642 + >
643 + Gestion d’immeubles en copropriété
644 + </a>
645 + </li>
646 +
647 +
648 +
649 + <li class="nav-item">
650 + <a
651 + class="dropdown-item header-main-navigation text-wrap "
652 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
653 + >
654 + Gestion immobilière d&#x27;appartements en location
655 + </a>
656 + </li>
657 +
658 +
659 +
660 + <li class="nav-item">
661 + <a
662 + class="dropdown-item header-main-navigation text-wrap "
663 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
664 + >
665 + Gestion immobilière commerciale
666 + </a>
667 + </li>
668 +
669 +
670 +
671 + <li class="nav-item">
672 + <a
673 + class="dropdown-item header-main-navigation text-wrap "
674 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
675 + >
676 + Service de courtage immobilier
677 + </a>
678 + </li>
679 +
680 +
681 +
682 + <li class="nav-item">
683 + <a
684 + class="dropdown-item header-main-navigation text-wrap "
685 + href="/services-de-gestion-immobiliere/gilm-renovation"
686 + >
687 + GILM Rénovation
688 + </a>
689 + </li>
690 +
691 +
692 + </ul>
693 + <hr class="my-1 border-gray-medium d-none">
694 +</li>
695 +
696 +
697 +
698 +
699 +
700 +
701 +
702 +
703 +<li class="nav-item active ">
704 + <a class="nav-link py-0 header-main-navigation"
705 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
706 + <hr class="my-1 border-gray-medium d-none">
707 +</li>
708 +
709 +
710 +
711 +
712 +
713 +
714 +
715 +<li class="nav-item ">
716 + <a class="nav-link py-0 header-main-navigation"
717 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
718 + <hr class="my-1 border-gray-medium d-none">
719 +</li>
720 +
721 +
722 +
723 +
724 +
725 +
726 +
727 +<li class="nav-item ">
728 + <a class="nav-link py-0 header-main-navigation"
729 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
730 + <hr class="my-1 border-gray-medium d-none">
731 +</li>
732 +
733 +
734 +
735 +
736 +
737 +
738 +
739 +
740 +
741 +
742 +<li
743 + class="nav-item dropdown "
744 + href="#"
745 +>
746 + <a
747 + class="nav-link py-0 dropdown-toggle header-main-navigation"
748 + href="#"
749 + id="navbardrop"
750 + data-toggle="dropdown"
751 + >
752 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
753 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
754 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
755 +</svg>
756 +
757 + </a>
758 + <ul
759 + class="dropdown-menu bg-gray-blue dropdown-submenu"
760 + >
761 +
762 +
763 + <li class="nav-item">
764 + <a
765 + class="dropdown-item header-main-navigation text-wrap "
766 + href="/qui-sommes-nous/?tab=1"
767 + >
768 + Qui sommes-nous
769 + </a>
770 + </li>
771 +
772 +
773 +
774 + <li class="nav-item">
775 + <a
776 + class="dropdown-item header-main-navigation text-wrap "
777 + href="/qui-sommes-nous/?tab=2"
778 + >
779 + Mission et valeurs
780 + </a>
781 + </li>
782 +
783 +
784 +
785 + <li class="nav-item">
786 + <a
787 + class="dropdown-item header-main-navigation text-wrap "
788 + href="/qui-sommes-nous/?tab=3"
789 + >
790 + Équipe de direction
791 + </a>
792 + </li>
793 +
794 +
795 + </ul>
796 + <hr class="my-1 border-gray-medium d-none">
797 +</li>
798 +
799 +
800 +
801 +
802 +
803 + </ul>
804 + <button class="nav-toggle d-block d-lg-none" type="button" onclick="toggleMenu();">
805 + <img class="nav-toggle-icon icon-top d-none" src="/static/images/menu.svg" alt="menu">
806 + <img class="nav-toggle-icon icon-sticky" src="/static/images/menu-dark.svg" alt="menu">
807 + </button>
808 + <ul class="nav-quick-links">
809 +
810 +
811 +<div class="nav-item">
812 + <a class="header-secondary-navigation" href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
813 +</div>
814 +
815 +
816 +
817 +
818 +<div class="nav-item">
819 + <a class="header-secondary-navigation" href="/blog">Blogue</a>
820 +</div>
821 +
822 +
823 +
824 +
825 +<div class="nav-item">
826 + <a class="header-secondary-navigation" href="/faire-carriere/">Carrières</a>
827 +</div>
828 +
829 +
830 +
831 + <li class="nav-item nav-client-space">
832 +
833 +
834 +<a class="btn btn-primary header-button-navigation text-white" href="https://espace-client.lafrance-mathieu.com">Connexion à l’Espace client</a>
835 + </li>
836 + </ul>
837 + <a class="nav-logo-link" href="/">
838 + <img id="logo-white" class="nav-logo-img icon-top d-none" src="/static/images/logos/sansfond_horizontal_blanc.png"
839 + alt="L&M Logo">
840 + <img id="logo-dark" class="nav-logo-img icon-sticky" src="/static/images/logos/sansfond_horizontal_noir.png"
841 + alt="L&M Logo">
842 + </a>
843 + </div>
844 +
845 +
846 +
847 +
848 +
849 +
850 +
851 +
852 +</nav>
853 +
854 +<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
855 + function toggleMenu() {
856 + scrollPosition = window.scrollY;
857 +
858 + const menu = document.getElementById("navbarSupportedContent");
859 + menu.classList.toggle("nav-d-none");
860 +
861 + const mobileTabs = document.getElementsByClassName("mobile-tabs")[0];
862 + if (mobileTabs && mobileTabs.classList) {
863 + mobileTabs.classList.toggle("d-none");
864 + }
865 +
866 + if (!menu.classList.contains("nav-d-none")) {
867 + makeHeaderDark();
868 + } else {
869 + makeHeaderClear();
870 + }
871 + }
872 +
873 + window.addEventListener('touchmove', function (_e) {
874 + onScroll();
875 + });
876 + window.addEventListener('scroll', function (_e) {
877 + onScroll();
878 + });
879 +
880 + function makeHeaderDark() {
881 + const header = document.getElementById("gilm-header");
882 + if (!header.classList.contains("top")) header.classList.add("top");
883 +
884 + const lightIcons = document.getElementsByClassName("icon-top");
885 + const darkIcons = document.getElementsByClassName("icon-sticky");
886 + for (icon of lightIcons) {
887 + icon.classList.contains("d-none") && icon.classList.remove("d-none");
888 + }
889 + for (icon of darkIcons) {
890 + !icon.classList.contains("d-none") && icon.classList.add("d-none");
891 + }
892 + }
893 +
894 + function makeHeaderClear() {
895 + const header = document.getElementById("gilm-header");
896 + if (header.classList.contains("top")) header.classList.remove("top");
897 +
898 + const lightIcons = document.getElementsByClassName("icon-top");
899 + const darkIcons = document.getElementsByClassName("icon-sticky");
900 + for (icon of lightIcons) {
901 + !icon.classList.contains("d-none") && icon.classList.add("d-none");
902 + }
903 + for (icon of darkIcons) {
904 + icon.classList.contains("d-none") && icon.classList.remove("d-none");
905 + }
906 + }
907 +
908 + function onScroll() {
909 +
910 + }
911 +</script>
912 +
913 + </header>
914 + <main class="overflow-y-hidden ">
915 +
916 +
917 +<div class="container">
918 + <div class="row">
919 + <div class="col-12">
920 +
921 + <div class="building-header d-flex flex-column algin-items-center">
922 + <h2 class="text-center">Logements à louer</h2>
923 + <div class="diamond-separator">
924 + <div class="diamond-container">
925 + <div class="diamond"></div>
926 + </div>
927 + </div>
928 + <h1 class="building-header-title text-center">Trouver un logement à louer à Québec</h1>
929 +</div>
930 +
931 +
932 + </div>
933 + </div>
934 +</div>
935 +
936 +<form action="/louer-appartement-quebec/" id="search-form" class="col-12 p-0">
937 +
938 +
939 +
940 +
941 +<div class="search-bar-container">
942 + <div class="container">
943 + <div class="search-bar py-3 m-0 d-flex justify-content-center" id="search-bar">
944 +
945 + <div class="col-12 hero-popup-features d-flex flex-column flex-sm-row p-0">
946 +
947 +
948 +<div class="d-flex justify-content-between justify-content-lg-start flex-wrap flex-lg-nowrap w-100">
949 +
950 +
951 +
952 +
953 +
954 +<div class="search-button-container mb-2 mb-lg-0 position-static big">
955 + <button
956 +
957 + type="button"
958 + class="search-button btn rounded-pill w-100"
959 + data-toggle="toggle"
960 + >
961 + <span id="label-boroughs">Ste-Foy</span>
962 + <img src="/static/images/icons/add-filter.svg" alt="+">
963 + </button>
964 + <div class="search-input w-100 mw-100 d-none">
965 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
966 + Fermer
967 + </button>
968 +
969 + <div class="row search-list">
970 + <ul class="list-unstyled d-flex flex-wrap col-12 m-0">
971 +
972 + <li class="col-12 col-lg-6 px-0">
973 + <label class="checkbox mb-2 ">
974 + <input
975 + id="boroughs-1"
976 + class="filter-value"
977 + name="boroughs"
978 + value="3"
979 + type="checkbox"
980 +
981 + onclick='updateButtonLabel("boroughs", "1", "Beauport", "Quartiers", "");'
982 + />
983 + <span class="checkmark"></span>
984 + Beauport
985 + </label>
986 + </li>
987 +
988 + <li class="col-12 col-lg-6 px-0">
989 + <label class="checkbox mb-2 ">
990 + <input
991 + id="boroughs-2"
992 + class="filter-value"
993 + name="boroughs"
994 + value="8"
995 + type="checkbox"
996 +
997 + onclick='updateButtonLabel("boroughs", "2", "Charlesbourg", "Quartiers", "");'
998 + />
999 + <span class="checkmark"></span>
1000 + Charlesbourg
1001 + </label>
1002 + </li>
1003 +
1004 + <li class="col-12 col-lg-6 px-0">
1005 + <label class="checkbox mb-2 ">
1006 + <input
1007 + id="boroughs-3"
1008 + class="filter-value"
1009 + name="boroughs"
1010 + value="9"
1011 + type="checkbox"
1012 +
1013 + onclick='updateButtonLabel("boroughs", "3", "L&#x27;Ancienne-Lorette", "Quartiers", "");'
1014 + />
1015 + <span class="checkmark"></span>
1016 + L&#x27;Ancienne-Lorette
1017 + </label>
1018 + </li>
1019 +
1020 + <li class="col-12 col-lg-6 px-0">
1021 + <label class="checkbox mb-2 ">
1022 + <input
1023 + id="boroughs-4"
1024 + class="filter-value"
1025 + name="boroughs"
1026 + value="10"
1027 + type="checkbox"
1028 +
1029 + onclick='updateButtonLabel("boroughs", "4", "Lebourgneuf", "Quartiers", "");'
1030 + />
1031 + <span class="checkmark"></span>
1032 + Lebourgneuf
1033 + </label>
1034 + </li>
1035 +
1036 + <li class="col-12 col-lg-6 px-0">
1037 + <label class="checkbox mb-2 ">
1038 + <input
1039 + id="boroughs-5"
1040 + class="filter-value"
1041 + name="boroughs"
1042 + value="4"
1043 + type="checkbox"
1044 +
1045 + onclick='updateButtonLabel("boroughs", "5", "Les Saules", "Quartiers", "");'
1046 + />
1047 + <span class="checkmark"></span>
1048 + Les Saules
1049 + </label>
1050 + </li>
1051 +
1052 + <li class="col-12 col-lg-6 px-0">
1053 + <label class="checkbox mb-2 ">
1054 + <input
1055 + id="boroughs-6"
1056 + class="filter-value"
1057 + name="boroughs"
1058 + value="14"
1059 + type="checkbox"
1060 +
1061 + onclick='updateButtonLabel("boroughs", "6", "Lévis", "Quartiers", "");'
1062 + />
1063 + <span class="checkmark"></span>
1064 + Lévis
1065 + </label>
1066 + </li>
1067 +
1068 + <li class="col-12 col-lg-6 px-0">
1069 + <label class="checkbox mb-2 ">
1070 + <input
1071 + id="boroughs-7"
1072 + class="filter-value"
1073 + name="boroughs"
1074 + value="1"
1075 + type="checkbox"
1076 +
1077 + onclick='updateButtonLabel("boroughs", "7", "Limoilou", "Quartiers", "");'
1078 + />
1079 + <span class="checkmark"></span>
1080 + Limoilou
1081 + </label>
1082 + </li>
1083 +
1084 + <li class="col-12 col-lg-6 px-0">
1085 + <label class="checkbox mb-2 ">
1086 + <input
1087 + id="boroughs-8"
1088 + class="filter-value"
1089 + name="boroughs"
1090 + value="15"
1091 + type="checkbox"
1092 +
1093 + onclick='updateButtonLabel("boroughs", "8", "Loretteville", "Quartiers", "");'
1094 + />
1095 + <span class="checkmark"></span>
1096 + Loretteville
1097 + </label>
1098 + </li>
1099 +
1100 + <li class="col-12 col-lg-6 px-0">
1101 + <label class="checkbox mb-2 ">
1102 + <input
1103 + id="boroughs-9"
1104 + class="filter-value"
1105 + name="boroughs"
1106 + value="6"
1107 + type="checkbox"
1108 +
1109 + onclick='updateButtonLabel("boroughs", "9", "Neufchatel", "Quartiers", "");'
1110 + />
1111 + <span class="checkmark"></span>
1112 + Neufchatel
1113 + </label>
1114 + </li>
1115 +
1116 + <li class="col-12 col-lg-6 px-0">
1117 + <label class="checkbox mb-2 ">
1118 + <input
1119 + id="boroughs-10"
1120 + class="filter-value"
1121 + name="boroughs"
1122 + value="12"
1123 + type="checkbox"
1124 +
1125 + onclick='updateButtonLabel("boroughs", "10", "Québec", "Quartiers", "");'
1126 + />
1127 + <span class="checkmark"></span>
1128 + Québec
1129 + </label>
1130 + </li>
1131 +
1132 + <li class="col-12 col-lg-6 px-0">
1133 + <label class="checkbox mb-2 ">
1134 + <input
1135 + id="boroughs-11"
1136 + class="filter-value"
1137 + name="boroughs"
1138 + value="16"
1139 + type="checkbox"
1140 +
1141 + onclick='updateButtonLabel("boroughs", "11", "Saint-Augustin-de-Desmaures", "Quartiers", "");'
1142 + />
1143 + <span class="checkmark"></span>
1144 + Saint-Augustin-de-Desmaures
1145 + </label>
1146 + </li>
1147 +
1148 + <li class="col-12 col-lg-6 px-0">
1149 + <label class="checkbox mb-2 ">
1150 + <input
1151 + id="boroughs-12"
1152 + class="filter-value"
1153 + name="boroughs"
1154 + value="13"
1155 + type="checkbox"
1156 +
1157 + onclick='updateButtonLabel("boroughs", "12", "St-Roch", "Quartiers", "");'
1158 + />
1159 + <span class="checkmark"></span>
1160 + St-Roch
1161 + </label>
1162 + </li>
1163 +
1164 + <li class="col-12 col-lg-6 px-0">
1165 + <label class="checkbox mb-2 ">
1166 + <input
1167 + id="boroughs-13"
1168 + class="filter-value"
1169 + name="boroughs"
1170 + value="5"
1171 + type="checkbox"
1172 + checked
1173 + onclick='updateButtonLabel("boroughs", "13", "Ste-Foy", "Quartiers", "");'
1174 + />
1175 + <span class="checkmark"></span>
1176 + Ste-Foy
1177 + </label>
1178 + </li>
1179 +
1180 + <li class="col-12 col-lg-6 px-0">
1181 + <label class="checkbox mb-2 ">
1182 + <input
1183 + id="boroughs-14"
1184 + class="filter-value"
1185 + name="boroughs"
1186 + value="17"
1187 + type="checkbox"
1188 +
1189 + onclick='updateButtonLabel("boroughs", "14", "Val-Bélair", "Quartiers", "");'
1190 + />
1191 + <span class="checkmark"></span>
1192 + Val-Bélair
1193 + </label>
1194 + </li>
1195 +
1196 + </ul>
1197 + </div>
1198 +
1199 + </div>
1200 +</div>
1201 +
1202 +<script>
1203 + function updateButtonLabel(name, counter, value, defaultValue, isRadioButton) {
1204 + const label = document.getElementById(`label-${ name }`);
1205 + if (label.innerHTML === defaultValue) label.innerHTML = "";
1206 +
1207 + const input = document.getElementById(`${ name }-${counter}`);
1208 +
1209 + if (input.checked) {
1210 + if (label.innerHTML && !isRadioButton) label.innerHTML = `${label.innerHTML}, ${value}`;
1211 + else label.innerHTML = value;
1212 + } else {
1213 + if (label.innerHTML.includes(`${value}, `)) label.innerHTML = label.innerHTML.replace(`${value}, `, "");
1214 + else label.innerHTML = label.innerHTML.replace(value, "");
1215 + }
1216 +
1217 + if (!label.innerHTML.trim()) label.innerHTML = defaultValue;
1218 + }
1219 +
1220 +
1221 +</script>
1222 +
1223 +
1224 +
1225 +
1226 +
1227 +<div class="search-button-container mb-2 mb-lg-0 big ">
1228 + <div class="btn-group room-sizes-control" role="group" aria-label="Room size">
1229 + <div class="room-sizes-container">
1230 + <div id="room-size-group" class="room-size-group">
1231 +
1232 + <button
1233 + id="button-2"
1234 + type="button"
1235 + class="btn room-size-btn "
1236 + onclick="toggleRoomSizeButton(2); toggleRoomSizeCheckBox(2);"
1237 + >
1238 +
1239 + </button>
1240 +
1241 + <button
1242 + id="button-3"
1243 + type="button"
1244 + class="btn room-size-btn "
1245 + onclick="toggleRoomSizeButton(3); toggleRoomSizeCheckBox(3);"
1246 + >
1247 +
1248 + </button>
1249 +
1250 + <button
1251 + id="button-4"
1252 + type="button"
1253 + class="btn room-size-btn "
1254 + onclick="toggleRoomSizeButton(4); toggleRoomSizeCheckBox(4);"
1255 + >
1256 +
1257 + </button>
1258 +
1259 + <button
1260 + id="button-5"
1261 + type="button"
1262 + class="btn room-size-btn "
1263 + onclick="toggleRoomSizeButton(5); toggleRoomSizeCheckBox(5);"
1264 + >
1265 +
1266 + </button>
1267 +
1268 + <button
1269 + id="button-6"
1270 + type="button"
1271 + class="btn room-size-btn "
1272 + onclick="toggleRoomSizeButton(6); toggleRoomSizeCheckBox(6);"
1273 + >
1274 +
1275 + </button>
1276 +
1277 + </div>
1278 + <button id="see-more-rooms" type="button" class="search-button btn inner-button d-none text-primary border-0" data-toggle="toggle">...</button>
1279 + <div class="search-input w-100 mw-100 d-none">
1280 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
1281 + Fermer
1282 + </button>
1283 + <div class="row search-list">
1284 + <ul class="list-unstyled d-flex flex-wrap col-12 m-0">
1285 +
1286 + <li class="col-12 col-lg-6 px-0">
1287 + <label class="checkbox mb-2">
1288 + <input
1289 + type="checkbox"
1290 + id="checkbox-2"
1291 +
1292 + name="room-size"
1293 + value="2"
1294 + onclick="toggleRoomSizeButton(2);"
1295 + />
1296 + <span class="checkmark"></span>
1297 +
1298 + </label>
1299 + </li>
1300 +
1301 + <li class="col-12 col-lg-6 px-0">
1302 + <label class="checkbox mb-2">
1303 + <input
1304 + type="checkbox"
1305 + id="checkbox-3"
1306 +
1307 + name="room-size"
1308 + value="3"
1309 + onclick="toggleRoomSizeButton(3);"
1310 + />
1311 + <span class="checkmark"></span>
1312 +
1313 + </label>
1314 + </li>
1315 +
1316 + <li class="col-12 col-lg-6 px-0">
1317 + <label class="checkbox mb-2">
1318 + <input
1319 + type="checkbox"
1320 + id="checkbox-4"
1321 +
1322 + name="room-size"
1323 + value="4"
1324 + onclick="toggleRoomSizeButton(4);"
1325 + />
1326 + <span class="checkmark"></span>
1327 +
1328 + </label>
1329 + </li>
1330 +
1331 + <li class="col-12 col-lg-6 px-0">
1332 + <label class="checkbox mb-2">
1333 + <input
1334 + type="checkbox"
1335 + id="checkbox-5"
1336 +
1337 + name="room-size"
1338 + value="5"
1339 + onclick="toggleRoomSizeButton(5);"
1340 + />
1341 + <span class="checkmark"></span>
1342 +
1343 + </label>
1344 + </li>
1345 +
1346 + <li class="col-12 col-lg-6 px-0">
1347 + <label class="checkbox mb-2">
1348 + <input
1349 + type="checkbox"
1350 + id="checkbox-6"
1351 +
1352 + name="room-size"
1353 + value="6"
1354 + onclick="toggleRoomSizeButton(6);"
1355 + />
1356 + <span class="checkmark"></span>
1357 +
1358 + </label>
1359 + </li>
1360 +
1361 + </ul>
1362 + </div>
1363 + </div>
1364 + </div>
1365 + </div>
1366 +</div>
1367 +
1368 +<script>
1369 + function toggleRoomSizeCheckBox(roomSizeId) {
1370 + const roomSizeCheckBox = document.getElementById(`checkbox-${roomSizeId}`);
1371 + if (roomSizeCheckBox) roomSizeCheckBox.checked = !roomSizeCheckBox.checked;
1372 + }
1373 +
1374 + function toggleRoomSizeButton(roomSizeId) {
1375 + const roomSizeButton = document.getElementById(`button-${roomSizeId}`);
1376 + if (roomSizeButton) roomSizeButton.classList.toggle("active");
1377 + }
1378 +
1379 + function isOverflown(element) {
1380 + return element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;
1381 + }
1382 +
1383 + function displaySeeMoreButtonIfOverflow() {
1384 + const seeMoreButton = document.getElementById("see-more-rooms");
1385 + const roomSizeGroup = document.getElementById("room-size-group");
1386 +
1387 + seeMoreButton.classList.add("d-none");
1388 + const overflown = isOverflown(roomSizeGroup);
1389 + if (overflown) seeMoreButton.classList.remove("d-none");
1390 +
1391 + }
1392 +
1393 + window.addEventListener("resize", displaySeeMoreButtonIfOverflow);
1394 + window.addEventListener("DOMContentLoaded", displaySeeMoreButtonIfOverflow);
1395 +</script>
1396 +
1397 +
1398 +
1399 +
1400 +
1401 +<div class="search-button-container position-static">
1402 + <button
1403 + id="price-range-button"
1404 + type="button"
1405 + class="search-button btn rounded-pill w-100"
1406 + data-toggle="toggle"
1407 + >
1408 + <span id="label-price">Prix</span>
1409 + <img src="/static/images/icons/add-filter.svg" alt="+">
1410 + </button>
1411 + <div class="search-input w-100 mw-100 d-none">
1412 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
1413 + Fermer
1414 + </button>
1415 +
1416 +
1417 +
1418 +
1419 +<script id="search-script" type="application/json">{"rent__min": "785.00", "rent__max": "2690.00"}</script>
1420 +
1421 +<div class="row">
1422 + <div class="mr-4" style="right: 0;">
1423 + <p class="text-primary" id="count_of_units"></p>
1424 + </div>
1425 + <div class="col-12">
1426 + <svg viewBox="0 0 500 100" class="chart">
1427 + <polyline
1428 + fill="#F0EDE4"
1429 + stroke="#ad986e"
1430 + stroke-width="2"
1431 + points="
1432 + 0, 100
1433 +
1434 + 0, 95
1435 +
1436 + 11, 98
1437 +
1438 + 22, 100
1439 +
1440 + 34, 100
1441 +
1442 + 45, 100
1443 +
1444 + 57, 100
1445 +
1446 + 68, 98
1447 +
1448 + 79, 96
1449 +
1450 + 91, 96
1451 +
1452 + 102, 95
1453 +
1454 + 114, 91
1455 +
1456 + 125, 98
1457 +
1458 + 136, 95
1459 +
1460 + 148, 100
1461 +
1462 + 159, 95
1463 +
1464 + 171, 91
1465 +
1466 + 182, 91
1467 +
1468 + 193, 93
1469 +
1470 + 205, 90
1471 +
1472 + 216, 90
1473 +
1474 + 228, 95
1475 +
1476 + 239, 96
1477 +
1478 + 250, 96
1479 +
1480 + 262, 96
1481 +
1482 + 273, 96
1483 +
1484 + 285, 98
1485 +
1486 + 296, 96
1487 +
1488 + 307, 95
1489 +
1490 + 319, 98
1491 +
1492 + 330, 98
1493 +
1494 + 342, 100
1495 +
1496 + 353, 100
1497 +
1498 + 365, 100
1499 +
1500 + 376, 100
1501 +
1502 + 387, 100
1503 +
1504 + 399, 100
1505 +
1506 + 410, 100
1507 +
1508 + 422, 100
1509 +
1510 + 433, 98
1511 +
1512 + 500, 100
1513 + "
1514 + />
1515 + </svg>
1516 + <div id="slider-range"></div>
1517 + </div>
1518 +</div>
1519 +<div class="row mt-4">
1520 + <div class="col-6 pr-0">
1521 + <input
1522 + class="search-slider-input rounded-left"
1523 + type="text"
1524 + id="slider-min-amount"
1525 + name="min-amount"
1526 + placeholder="Prix min."
1527 + value="">
1528 + </div>
1529 + <div class="col-6 pl-0">
1530 + <input
1531 + class="search-slider-input rounded-right"
1532 + type="text"
1533 + id="slider-max-amount"
1534 + name="max-amount"
1535 + placeholder="Prix max."
1536 + value="">
1537 + </div>
1538 +</div>
1539 +
1540 +
1541 + </div>
1542 +</div>
1543 +
1544 +<script>
1545 + function updateButtonLabel(name, counter, value, defaultValue, isRadioButton) {
1546 + const label = document.getElementById(`label-${ name }`);
1547 + if (label.innerHTML === defaultValue) label.innerHTML = "";
1548 +
1549 + const input = document.getElementById(`${ name }-${counter}`);
1550 +
1551 + if (input.checked) {
1552 + if (label.innerHTML && !isRadioButton) label.innerHTML = `${label.innerHTML}, ${value}`;
1553 + else label.innerHTML = value;
1554 + } else {
1555 + if (label.innerHTML.includes(`${value}, `)) label.innerHTML = label.innerHTML.replace(`${value}, `, "");
1556 + else label.innerHTML = label.innerHTML.replace(value, "");
1557 + }
1558 +
1559 + if (!label.innerHTML.trim()) label.innerHTML = defaultValue;
1560 + }
1561 +
1562 +
1563 +</script>
1564 +
1565 +
1566 +
1567 +
1568 +
1569 +<div class="search-button-container position-static">
1570 + <button
1571 +
1572 + type="button"
1573 + class="search-button btn rounded-pill w-100"
1574 + data-toggle="toggle"
1575 + >
1576 + <span id="label-availability">Disponibilités</span>
1577 + <img src="/static/images/icons/add-filter.svg" alt="+">
1578 + </button>
1579 + <div class="search-input w-100 mw-100 d-none">
1580 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
1581 + Fermer
1582 + </button>
1583 +
1584 + <div class="row search-list">
1585 + <ul class="list-unstyled d-flex flex-wrap col-12 m-0">
1586 +
1587 + <li class="col-12 col-lg-6 px-0">
1588 + <label class="checkbox mb-2 radio">
1589 + <input
1590 + id="availability-1"
1591 + class="filter-value"
1592 + name="availability"
1593 + value="1786147200"
1594 + type="radio"
1595 +
1596 + onclick='updateButtonLabel("availability", "1", "Libre immédiatement", "Disponibilités", "True");'
1597 + />
1598 + <span class="checkmark"></span>
1599 + Libre immédiatement
1600 + </label>
1601 + </li>
1602 +
1603 + <li class="col-12 col-lg-6 px-0">
1604 + <label class="checkbox mb-2 radio">
1605 + <input
1606 + id="availability-2"
1607 + class="filter-value"
1608 + name="availability"
1609 + value="1788220800"
1610 + type="radio"
1611 +
1612 + onclick='updateButtonLabel("availability", "2", "septembre 2026", "Disponibilités", "True");'
1613 + />
1614 + <span class="checkmark"></span>
1615 + septembre 2026
1616 + </label>
1617 + </li>
1618 +
1619 + <li class="col-12 col-lg-6 px-0">
1620 + <label class="checkbox mb-2 radio">
1621 + <input
1622 + id="availability-3"
1623 + class="filter-value"
1624 + name="availability"
1625 + value="1790812800"
1626 + type="radio"
1627 +
1628 + onclick='updateButtonLabel("availability", "3", "octobre 2026", "Disponibilités", "True");'
1629 + />
1630 + <span class="checkmark"></span>
1631 + octobre 2026
1632 + </label>
1633 + </li>
1634 +
1635 + <li class="col-12 col-lg-6 px-0">
1636 + <label class="checkbox mb-2 radio">
1637 + <input
1638 + id="availability-4"
1639 + class="filter-value"
1640 + name="availability"
1641 + value="1793491200"
1642 + type="radio"
1643 +
1644 + onclick='updateButtonLabel("availability", "4", "novembre 2026", "Disponibilités", "True");'
1645 + />
1646 + <span class="checkmark"></span>
1647 + novembre 2026
1648 + </label>
1649 + </li>
1650 +
1651 + <li class="col-12 col-lg-6 px-0">
1652 + <label class="checkbox mb-2 radio">
1653 + <input
1654 + id="availability-5"
1655 + class="filter-value"
1656 + name="availability"
1657 + value="1796083200"
1658 + type="radio"
1659 +
1660 + onclick='updateButtonLabel("availability", "5", "décembre 2026", "Disponibilités", "True");'
1661 + />
1662 + <span class="checkmark"></span>
1663 + décembre 2026
1664 + </label>
1665 + </li>
1666 +
1667 + <li class="col-12 col-lg-6 px-0">
1668 + <label class="checkbox mb-2 radio">
1669 + <input
1670 + id="availability-6"
1671 + class="filter-value"
1672 + name="availability"
1673 + value="1798761600"
1674 + type="radio"
1675 +
1676 + onclick='updateButtonLabel("availability", "6", "janvier 2027", "Disponibilités", "True");'
1677 + />
1678 + <span class="checkmark"></span>
1679 + janvier 2027
1680 + </label>
1681 + </li>
1682 +
1683 + <li class="col-12 col-lg-6 px-0">
1684 + <label class="checkbox mb-2 radio">
1685 + <input
1686 + id="availability-7"
1687 + class="filter-value"
1688 + name="availability"
1689 + value="1801440000"
1690 + type="radio"
1691 +
1692 + onclick='updateButtonLabel("availability", "7", "février 2027", "Disponibilités", "True");'
1693 + />
1694 + <span class="checkmark"></span>
1695 + février 2027
1696 + </label>
1697 + </li>
1698 +
1699 + <li class="col-12 col-lg-6 px-0">
1700 + <label class="checkbox mb-2 radio">
1701 + <input
1702 + id="availability-8"
1703 + class="filter-value"
1704 + name="availability"
1705 + value="1803859200"
1706 + type="radio"
1707 +
1708 + onclick='updateButtonLabel("availability", "8", "mars 2027", "Disponibilités", "True");'
1709 + />
1710 + <span class="checkmark"></span>
1711 + mars 2027
1712 + </label>
1713 + </li>
1714 +
1715 + </ul>
1716 + </div>
1717 +
1718 + </div>
1719 +</div>
1720 +
1721 +<script>
1722 + function updateButtonLabel(name, counter, value, defaultValue, isRadioButton) {
1723 + const label = document.getElementById(`label-${ name }`);
1724 + if (label.innerHTML === defaultValue) label.innerHTML = "";
1725 +
1726 + const input = document.getElementById(`${ name }-${counter}`);
1727 +
1728 + if (input.checked) {
1729 + if (label.innerHTML && !isRadioButton) label.innerHTML = `${label.innerHTML}, ${value}`;
1730 + else label.innerHTML = value;
1731 + } else {
1732 + if (label.innerHTML.includes(`${value}, `)) label.innerHTML = label.innerHTML.replace(`${value}, `, "");
1733 + else label.innerHTML = label.innerHTML.replace(value, "");
1734 + }
1735 +
1736 + if (!label.innerHTML.trim()) label.innerHTML = defaultValue;
1737 + }
1738 +
1739 +
1740 +</script>
1741 +
1742 +
1743 +
1744 +
1745 +
1746 +
1747 +<div class="search-button-container position-static">
1748 + <button
1749 +
1750 + type="button"
1751 + class="search-button btn rounded-pill w-100"
1752 + data-toggle="toggle"
1753 + >
1754 + <span id="label-conveniences">Commodités</span>
1755 + <img src="/static/images/icons/add-filter.svg" alt="+">
1756 + </button>
1757 + <div class="search-input w-100 mw-100 d-none">
1758 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
1759 + Fermer
1760 + </button>
1761 +
1762 + <div class="row search-list">
1763 + <ul class="list-unstyled d-flex flex-wrap col-12 m-0">
1764 +
1765 + <li class="col-12 col-lg-6 px-0">
1766 + <label class="checkbox mb-2 ">
1767 + <input
1768 + id="conveniences-1"
1769 + class="filter-value"
1770 + name="conveniences"
1771 + value="27"
1772 + type="checkbox"
1773 +
1774 + onclick='updateButtonLabel("conveniences", "1", "Accessible aux personnes handicapées", "Commodités", "");'
1775 + />
1776 + <span class="checkmark"></span>
1777 + Accessible aux personnes handicapées
1778 + </label>
1779 + </li>
1780 +
1781 + <li class="col-12 col-lg-6 px-0">
1782 + <label class="checkbox mb-2 ">
1783 + <input
1784 + id="conveniences-2"
1785 + class="filter-value"
1786 + name="conveniences"
1787 + value="5"
1788 + type="checkbox"
1789 +
1790 + onclick='updateButtonLabel("conveniences", "2", "Chauffage", "Commodités", "");'
1791 + />
1792 + <span class="checkmark"></span>
1793 + Chauffage
1794 + </label>
1795 + </li>
1796 +
1797 + <li class="col-12 col-lg-6 px-0">
1798 + <label class="checkbox mb-2 ">
1799 + <input
1800 + id="conveniences-3"
1801 + class="filter-value"
1802 + name="conveniences"
1803 + value="24"
1804 + type="checkbox"
1805 +
1806 + onclick='updateButtonLabel("conveniences", "3", "Climatiseur", "Commodités", "");'
1807 + />
1808 + <span class="checkmark"></span>
1809 + Climatiseur
1810 + </label>
1811 + </li>
1812 +
1813 + <li class="col-12 col-lg-6 px-0">
1814 + <label class="checkbox mb-2 ">
1815 + <input
1816 + id="conveniences-4"
1817 + class="filter-value"
1818 + name="conveniences"
1819 + value="3"
1820 + type="checkbox"
1821 +
1822 + onclick='updateButtonLabel("conveniences", "4", "Eau Chaude", "Commodités", "");'
1823 + />
1824 + <span class="checkmark"></span>
1825 + Eau Chaude
1826 + </label>
1827 + </li>
1828 +
1829 + <li class="col-12 col-lg-6 px-0">
1830 + <label class="checkbox mb-2 ">
1831 + <input
1832 + id="conveniences-5"
1833 + class="filter-value"
1834 + name="conveniences"
1835 + value="2"
1836 + type="checkbox"
1837 +
1838 + onclick='updateButtonLabel("conveniences", "5", "Électricité", "Commodités", "");'
1839 + />
1840 + <span class="checkmark"></span>
1841 + Électricité
1842 + </label>
1843 + </li>
1844 +
1845 + <li class="col-12 col-lg-6 px-0">
1846 + <label class="checkbox mb-2 ">
1847 + <input
1848 + id="conveniences-6"
1849 + class="filter-value"
1850 + name="conveniences"
1851 + value="11"
1852 + type="checkbox"
1853 +
1854 + onclick='updateButtonLabel("conveniences", "6", "Équipe de maintenance 24h", "Commodités", "");'
1855 + />
1856 + <span class="checkmark"></span>
1857 + Équipe de maintenance 24h
1858 + </label>
1859 + </li>
1860 +
1861 + <li class="col-12 col-lg-6 px-0">
1862 + <label class="checkbox mb-2 ">
1863 + <input
1864 + id="conveniences-7"
1865 + class="filter-value"
1866 + name="conveniences"
1867 + value="30"
1868 + type="checkbox"
1869 +
1870 + onclick='updateButtonLabel("conveniences", "7", "Lave-vaisselle", "Commodités", "");'
1871 + />
1872 + <span class="checkmark"></span>
1873 + Lave-vaisselle
1874 + </label>
1875 + </li>
1876 +
1877 + <li class="col-12 col-lg-6 px-0">
1878 + <label class="checkbox mb-2 ">
1879 + <input
1880 + id="conveniences-8"
1881 + class="filter-value"
1882 + name="conveniences"
1883 + value="26"
1884 + type="checkbox"
1885 +
1886 + onclick='updateButtonLabel("conveniences", "8", "Semi-meublé", "Commodités", "");'
1887 + />
1888 + <span class="checkmark"></span>
1889 + Semi-meublé
1890 + </label>
1891 + </li>
1892 +
1893 + <li class="col-12 col-lg-6 px-0">
1894 + <label class="checkbox mb-2 ">
1895 + <input
1896 + id="conveniences-9"
1897 + class="filter-value"
1898 + name="conveniences"
1899 + value="28"
1900 + type="checkbox"
1901 +
1902 + onclick='updateButtonLabel("conveniences", "9", "Stationnement extérieur", "Commodités", "");'
1903 + />
1904 + <span class="checkmark"></span>
1905 + Stationnement extérieur
1906 + </label>
1907 + </li>
1908 +
1909 + <li class="col-12 col-lg-6 px-0">
1910 + <label class="checkbox mb-2 ">
1911 + <input
1912 + id="conveniences-10"
1913 + class="filter-value"
1914 + name="conveniences"
1915 + value="29"
1916 + type="checkbox"
1917 +
1918 + onclick='updateButtonLabel("conveniences", "10", "Stationnement intérieur", "Commodités", "");'
1919 + />
1920 + <span class="checkmark"></span>
1921 + Stationnement intérieur
1922 + </label>
1923 + </li>
1924 +
1925 + </ul>
1926 + </div>
1927 +
1928 + </div>
1929 +</div>
1930 +
1931 +<script>
1932 + function updateButtonLabel(name, counter, value, defaultValue, isRadioButton) {
1933 + const label = document.getElementById(`label-${ name }`);
1934 + if (label.innerHTML === defaultValue) label.innerHTML = "";
1935 +
1936 + const input = document.getElementById(`${ name }-${counter}`);
1937 +
1938 + if (input.checked) {
1939 + if (label.innerHTML && !isRadioButton) label.innerHTML = `${label.innerHTML}, ${value}`;
1940 + else label.innerHTML = value;
1941 + } else {
1942 + if (label.innerHTML.includes(`${value}, `)) label.innerHTML = label.innerHTML.replace(`${value}, `, "");
1943 + else label.innerHTML = label.innerHTML.replace(value, "");
1944 + }
1945 +
1946 + if (!label.innerHTML.trim()) label.innerHTML = defaultValue;
1947 + }
1948 +
1949 +
1950 +</script>
1951 +
1952 +
1953 + <button type="submit" class="btn btn-primary search-bar-btn" id="btn-search">
1954 + <span>Rechercher</span>
1955 + </button>
1956 +</div>
1957 +
1958 + </div>
1959 +
1960 + </div>
1961 + </div>
1962 +</div>
1963 +
1964 + <div class="container">
1965 + <div class="row pt-4">
1966 + <div class="order-1 order-md-0 col-md-6 d-flex flex-wrap-reverse justify-content-between align-items-end">
1967 + <h2 class="mb-0">
1968 +
1969 + 14 logements à louer
1970 +
1971 + </h2>
1972 +
1973 +
1974 + <div class="sort-indicator d-flex flex-column mb-2 mb-sm-0">
1975 + <span class="sort-indicator-title text-gray-light">Trier par : </span>
1976 + <a class="sort-indicator-value text-primary" href="/louer-appartement-quebec/?boroughs=5&amp;sort=asc">
1977 + <span class="mr-1">Prix&nbsp;
1978 +
1979 + <img src="/static/images/icons/sort.svg" alt="sort" />
1980 +
1981 + </span>
1982 + </a>
1983 + </div>
1984 +
1985 +
1986 + </div>
1987 + <div class="col-md-6 d-flex justify-content-between justify-content-md-end align-items-end mb-4 mb-md-0">
1988 + <label class="checkbox">
1989 + <input type="checkbox" id="featured" name="featured" >
1990 + <span class="checkmark"></span>
1991 + En vedette
1992 + </label>
1993 +
1994 +
1995 +
1996 +<a class="ml-md-5 nav-search-reset-all reset-button d-flex align-items-center" href="/louer-appartement-quebec/">
1997 + <i class="fas fa-sync-alt text-primary" aria-hidden="true"></i>
1998 + Réinitialiser les filtres
1999 +</a>
2000 +
2001 + </div>
2002 + </div>
2003 + </div>
2004 +</form>
2005 +
2006 +<div class="container pb-5">
2007 + <div class="row">
2008 + <div class="col-12 mt-2 mt-2">
2009 + <div class="row">
2010 + <div class="col-md-6 pt-4">
2011 +
2012 +
2013 +
2014 +
2015 +<div class="row">
2016 +
2017 + <script type="application/ld+json">
2018 + {
2019 + "@context": "http://schema.org",
2020 + "@type": "ApartmentComplex",
2021 + "description": "Appartements à louer",
2022 + "address": "1005 chemin Ste-Foy Québec Québec G1S0E2",
2023 + "latitude": "None",
2024 + "longitude": "None",
2025 + "mainEntityOfPage": {
2026 + "@type": "WebPage",
2027 + "@id": "lafrance-mathieu.com/louer-appartement-quebec/309"
2028 + },
2029 + "photo": {
2030 + "@type": "ImageObject",
2031 + "url": "lafrance-mathieu.comhttps://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD_3_3ae46e66-144d-11ef-a75f-0ef24e757581.jpg"
2032 + }
2033 + }
2034 + </script>
2035 + <a
2036 + href="/logement/309"
2037 + class="appartments card border-white col-sm-6 mb-4"
2038 + data-type="3"
2039 + data-borough="5"
2040 + >
2041 +
2042 +
2043 +
2044 +
2045 +<script>
2046 + function displayNowAvailableBubble(buildingId) {
2047 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2048 + nowAvailableBubble.classList.remove("d-none");
2049 + }
2050 +</script>
2051 +
2052 +<div class="row">
2053 +
2054 +
2055 +
2056 + <img src alt="" onerror="displayNowAvailableBubble(309);"></img>
2057 +
2058 +
2059 +
2060 +
2061 +
2062 + <img src alt="" onerror="displayNowAvailableBubble(309);"></img>
2063 +
2064 +
2065 +
2066 +
2067 + <div class="now-available-bubble d-none" id="now-available-bubble-309">
2068 + <p class="text-white m-0">Disponible</p>
2069 + </div>
2070 +
2071 +
2072 + <div class="col-6 apartment-col">
2073 + <div class="row">
2074 + <div class="col-12 pr-0">
2075 +
2076 + <img
2077 + class="rounded-left apartment-image"
2078 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD_18_bc1529f2-144e-11ef-a0e5-0ef24e757581.jpg"
2079 + alt="unit image"
2080 + width=100%
2081 + height=232px
2082 + />
2083 +
2084 + </div>
2085 + </div>
2086 + </div>
2087 +
2088 +
2089 + <div class="col-6 apartment-col">
2090 + <div class="row">
2091 + <div class="col-12 pl-0">
2092 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD_17_bcc9a030-144e-11ef-a0e5-0ef24e757581.jpg"
2093 + alt="unit image" width="100%" height="116px">
2094 + </div>
2095 + </div>
2096 +
2097 + <div class="row">
2098 + <div class="col-12 pl-0">
2099 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD_16_bd817372-144e-11ef-a0e5-0ef24e757581.jpg"
2100 + alt="unit image" width=100% height=116px>
2101 + </div>
2102 + </div>
2103 +
2104 + </div>
2105 +
2106 +
2107 +
2108 +</div>
2109 +
2110 +
2111 +
2112 +
2113 +
2114 +<div class="row mt-4">
2115 + <div class="col-12">
2116 + <div class="card-body p-0 text-left">
2117 + <h5 class="apartment-borough">Appartements &middot; Ste-Foy</h5>
2118 + <p class="apartment-address mb-1">1005 chemin Ste-Foy</p>
2119 +
2120 +
2121 + <div class="row">
2122 + <div class="col-7">
2123 + <p class="apartment-infos mb-0">
2124 +
2125 + 3½ à partir de 1715$
2126 +
2127 + </p>
2128 + <p class="apartment-availability footnotes">
2129 + Libre immédiatement
2130 + </p>
2131 + </div>
2132 + <div class="col-5 text-right">
2133 +
2134 +
2135 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2136 +
2137 +
2138 +
2139 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2140 +
2141 +
2142 +
2143 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_ac.png" alt="Climatiseur" height=18px width=18px>
2144 +
2145 +
2146 +
2147 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_appliances.png" alt="Semi-meublé" height=18px width=18px>
2148 +
2149 +
2150 +
2151 +
2152 +
2153 + <p class="footnotes d-inline"> +1</p>
2154 +
2155 + </div>
2156 + </div>
2157 +
2158 +
2159 +
2160 + <div class="row">
2161 + <div class="col-7">
2162 + <p class="apartment-infos mb-0">
2163 +
2164 + 4½ à partir de 1900$
2165 +
2166 + </p>
2167 + <p class="apartment-availability footnotes">
2168 + Libre immédiatement
2169 + </p>
2170 + </div>
2171 + <div class="col-5 text-right">
2172 +
2173 +
2174 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2175 +
2176 +
2177 +
2178 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2179 +
2180 +
2181 +
2182 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_ac.png" alt="Climatiseur" height=18px width=18px>
2183 +
2184 +
2185 +
2186 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_appliances.png" alt="Semi-meublé" height=18px width=18px>
2187 +
2188 +
2189 +
2190 +
2191 +
2192 + <p class="footnotes d-inline"> +1</p>
2193 +
2194 + </div>
2195 + </div>
2196 +
2197 +
2198 +
2199 + </div>
2200 + </div>
2201 +</div>
2202 +
2203 + </a>
2204 +
2205 + <script type="application/ld+json">
2206 + {
2207 + "@context": "http://schema.org",
2208 + "@type": "ApartmentComplex",
2209 + "description": "Appartements à louer",
2210 + "address": "750, rue Gingras Québec Québec G1X4C3",
2211 + "latitude": "None",
2212 + "longitude": "None",
2213 + "mainEntityOfPage": {
2214 + "@type": "WebPage",
2215 + "@id": "lafrance-mathieu.com/louer-appartement-quebec/301"
2216 + },
2217 + "photo": {
2218 + "@type": "ImageObject",
2219 + "url": "lafrance-mathieu.comhttps://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/ext1_00515aac-e50f-11ed-8340-0ee34002bf15.jpg"
2220 + }
2221 + }
2222 + </script>
2223 + <a
2224 + href="/logement/301"
2225 + class="appartments card border-white col-sm-6 mb-4"
2226 + data-type="3"
2227 + data-borough="5"
2228 + >
2229 +
2230 +
2231 +
2232 +
2233 +<script>
2234 + function displayNowAvailableBubble(buildingId) {
2235 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2236 + nowAvailableBubble.classList.remove("d-none");
2237 + }
2238 +</script>
2239 +
2240 +<div class="row">
2241 +
2242 +
2243 +
2244 + <img src alt="" onerror="displayNowAvailableBubble(301);"></img>
2245 +
2246 +
2247 +
2248 +
2249 + <div class="now-available-bubble d-none" id="now-available-bubble-301">
2250 + <p class="text-white m-0">Disponible</p>
2251 + </div>
2252 +
2253 +
2254 + <div class="col-6 apartment-col">
2255 + <div class="row">
2256 + <div class="col-12 pr-0">
2257 +
2258 + <img
2259 + class="rounded-left apartment-image"
2260 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/1_bdfe446a-f08e-11f0-ae60-02cdb0c1febd.jpg"
2261 + alt="unit image"
2262 + width=100%
2263 + height=232px
2264 + />
2265 +
2266 + </div>
2267 + </div>
2268 + </div>
2269 +
2270 +
2271 + <div class="col-6 apartment-col">
2272 + <div class="row">
2273 + <div class="col-12 pl-0">
2274 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/2_bfce767a-f08e-11f0-ae60-02cdb0c1febd.jpg"
2275 + alt="unit image" width="100%" height="116px">
2276 + </div>
2277 + </div>
2278 +
2279 + <div class="row">
2280 + <div class="col-12 pl-0">
2281 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/3_c1aafb58-f08e-11f0-ae60-02cdb0c1febd.jpg"
2282 + alt="unit image" width=100% height=116px>
2283 + </div>
2284 + </div>
2285 +
2286 + </div>
2287 +
2288 +
2289 +
2290 +</div>
2291 +
2292 +
2293 +
2294 +
2295 +
2296 +<div class="row mt-4">
2297 + <div class="col-12">
2298 + <div class="card-body p-0 text-left">
2299 + <h5 class="apartment-borough">Appartements &middot; Ste-Foy</h5>
2300 + <p class="apartment-address mb-1">750, rue Gingras</p>
2301 +
2302 +
2303 + <div class="row">
2304 + <div class="col-7">
2305 + <p class="apartment-infos mb-0">
2306 +
2307 + 4½ à partir de 1495$
2308 +
2309 + </p>
2310 + <p class="apartment-availability footnotes">
2311 + Libre immédiatement
2312 + </p>
2313 + </div>
2314 + <div class="col-5 text-right">
2315 +
2316 +
2317 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_light.png" alt="Électricité" height=18px width=18px>
2318 +
2319 +
2320 +
2321 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2322 +
2323 +
2324 +
2325 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_heat.png" alt="Chauffage" height=18px width=18px>
2326 +
2327 +
2328 +
2329 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2330 +
2331 +
2332 +
2333 +
2334 +
2335 + <p class="footnotes d-inline"> +1</p>
2336 +
2337 + </div>
2338 + </div>
2339 +
2340 +
2341 +
2342 + </div>
2343 + </div>
2344 +</div>
2345 +
2346 + </a>
2347 +
2348 + <script type="application/ld+json">
2349 + {
2350 + "@context": "http://schema.org",
2351 + "@type": "ApartmentComplex",
2352 + "description": "Appartements à louer",
2353 + "address": "350, rue Gingras Québec Québec G1X4C4",
2354 + "latitude": "None",
2355 + "longitude": "None",
2356 + "mainEntityOfPage": {
2357 + "@type": "WebPage",
2358 + "@id": "lafrance-mathieu.com/louer-appartement-quebec/300"
2359 + },
2360 + "photo": {
2361 + "@type": "ImageObject",
2362 + "url": "lafrance-mathieu.comhttps://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/ext1_9cb8394e-e5c6-11ed-bb2e-0ee34002bf15.jpg"
2363 + }
2364 + }
2365 + </script>
2366 + <a
2367 + href="/logement/300"
2368 + class="appartments card border-white col-sm-6 mb-4"
2369 + data-type="3"
2370 + data-borough="5"
2371 + >
2372 +
2373 +
2374 +
2375 +
2376 +<script>
2377 + function displayNowAvailableBubble(buildingId) {
2378 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2379 + nowAvailableBubble.classList.remove("d-none");
2380 + }
2381 +</script>
2382 +
2383 +<div class="row">
2384 +
2385 +
2386 +
2387 +
2388 + <div class="now-available-bubble d-none" id="now-available-bubble-300">
2389 + <p class="text-white m-0">Disponible</p>
2390 + </div>
2391 +
2392 +
2393 + <div class="col-6 apartment-col">
2394 + <div class="row">
2395 + <div class="col-12 pr-0">
2396 +
2397 + <img
2398 + class="rounded-left apartment-image"
2399 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/2_9d950fb4-f08a-11f0-8406-02cdb0c1febd.jpg"
2400 + alt="unit image"
2401 + width=100%
2402 + height=232px
2403 + />
2404 +
2405 + </div>
2406 + </div>
2407 + </div>
2408 +
2409 +
2410 + <div class="col-6 apartment-col">
2411 + <div class="row">
2412 + <div class="col-12 pl-0">
2413 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/1_9f532e62-f08a-11f0-8406-02cdb0c1febd.jpg"
2414 + alt="unit image" width="100%" height="116px">
2415 + </div>
2416 + </div>
2417 +
2418 + <div class="row">
2419 + <div class="col-12 pl-0">
2420 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/3_a119c38c-f08a-11f0-8406-02cdb0c1febd.jpg"
2421 + alt="unit image" width=100% height=116px>
2422 + </div>
2423 + </div>
2424 +
2425 + </div>
2426 +
2427 +
2428 +
2429 +</div>
2430 +
2431 +
2432 +
2433 +
2434 +
2435 +<div class="row mt-4">
2436 + <div class="col-12">
2437 + <div class="card-body p-0 text-left">
2438 + <h5 class="apartment-borough">Appartements &middot; Ste-Foy</h5>
2439 + <p class="apartment-address mb-1">350, rue Gingras</p>
2440 +
2441 +
2442 + <div class="row">
2443 + <div class="col-7">
2444 + <p class="apartment-infos mb-0">
2445 +
2446 + 4½ à partir de 1610$
2447 +
2448 + </p>
2449 + <p class="apartment-availability footnotes">
2450 + janvier 2027
2451 + </p>
2452 + </div>
2453 + <div class="col-5 text-right">
2454 +
2455 +
2456 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2457 +
2458 +
2459 +
2460 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_heat.png" alt="Chauffage" height=18px width=18px>
2461 +
2462 +
2463 +
2464 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2465 +
2466 +
2467 +
2468 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2469 +
2470 +
2471 +
2472 + </div>
2473 + </div>
2474 +
2475 +
2476 +
2477 + </div>
2478 + </div>
2479 +</div>
2480 +
2481 + </a>
2482 +
2483 +</div>
2484 +
2485 +
2486 +
2487 +
2488 +
2489 +
2490 +
2491 +
2492 +
2493 +<div class="row my-5 ">
2494 + <h1 class="col-12 text-center mb-3 new-title">
2495 + Explorer les logements à louer par secteurs
2496 + </h1>
2497 + <div class="w-100 mb-4"><div class="diamond-separator"><div class="diamond-container"><div class="diamond"></div></div></div></div>
2498 +
2499 + <div class="col-md-12 left-align-slick">
2500 + <div class="centered--left multiple-items-slick-arrow--left"></div>
2501 + <div class="slick-carousel" data-items="4">
2502 +
2503 + <a
2504 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2505 + data-borough="3"
2506 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/799px-Beauport_QC.jpeg');"
2507 + href="/louer-appartement-quebec/?boroughs=3"
2508 + >
2509 + <div class="bottom--middle d-flex flex-column pb-3">
2510 + <p class="thumbnail-title text-white mb-1">Beauport</p>
2511 + <span class="text-white very-small-paragraph">
2512 + 9
2513 + Logements
2514 + </span>
2515 + </div>
2516 + <div class="tile-gradient rounded"></div>
2517 + </a>
2518 +
2519 + <a
2520 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2521 + data-borough="8"
2522 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Quebec-Parc_des_Moulins.jpeg');"
2523 + href="/louer-appartement-quebec/?boroughs=8"
2524 + >
2525 + <div class="bottom--middle d-flex flex-column pb-3">
2526 + <p class="thumbnail-title text-white mb-1">Charlesbourg</p>
2527 + <span class="text-white very-small-paragraph">
2528 + 6
2529 + Logements
2530 + </span>
2531 + </div>
2532 + <div class="tile-gradient rounded"></div>
2533 + </a>
2534 +
2535 + <a
2536 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2537 + data-borough="9"
2538 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Ancienne_Lorette_church_1.jpg');"
2539 + href="/louer-appartement-quebec/?boroughs=9"
2540 + >
2541 + <div class="bottom--middle d-flex flex-column pb-3">
2542 + <p class="thumbnail-title text-white mb-1">L&#x27;Ancienne-Lorette</p>
2543 + <span class="text-white very-small-paragraph">
2544 + 1
2545 + Logement
2546 + </span>
2547 + </div>
2548 + <div class="tile-gradient rounded"></div>
2549 + </a>
2550 +
2551 + <a
2552 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2553 + data-borough="10"
2554 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/825-Lebourgneuf-3.jpg');"
2555 + href="/louer-appartement-quebec/?boroughs=10"
2556 + >
2557 + <div class="bottom--middle d-flex flex-column pb-3">
2558 + <p class="thumbnail-title text-white mb-1">Lebourgneuf</p>
2559 + <span class="text-white very-small-paragraph">
2560 + 3
2561 + Logements
2562 + </span>
2563 + </div>
2564 + <div class="tile-gradient rounded"></div>
2565 + </a>
2566 +
2567 + <a
2568 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2569 + data-borough="4"
2570 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Rue_de_Duberger.JPG');"
2571 + href="/louer-appartement-quebec/?boroughs=4"
2572 + >
2573 + <div class="bottom--middle d-flex flex-column pb-3">
2574 + <p class="thumbnail-title text-white mb-1">Les Saules</p>
2575 + <span class="text-white very-small-paragraph">
2576 + 9
2577 + Logements
2578 + </span>
2579 + </div>
2580 + <div class="tile-gradient rounded"></div>
2581 + </a>
2582 +
2583 + <a
2584 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2585 + data-borough="14"
2586 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/');"
2587 + href="/louer-appartement-quebec/?boroughs=14"
2588 + >
2589 + <div class="bottom--middle d-flex flex-column pb-3">
2590 + <p class="thumbnail-title text-white mb-1">Lévis</p>
2591 + <span class="text-white very-small-paragraph">
2592 + 4
2593 + Logements
2594 + </span>
2595 + </div>
2596 + <div class="tile-gradient rounded"></div>
2597 + </a>
2598 +
2599 + <a
2600 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2601 + data-borough="1"
2602 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/photo1web.jpg');"
2603 + href="/louer-appartement-quebec/?boroughs=1"
2604 + >
2605 + <div class="bottom--middle d-flex flex-column pb-3">
2606 + <p class="thumbnail-title text-white mb-1">Limoilou</p>
2607 + <span class="text-white very-small-paragraph">
2608 + 3
2609 + Logements
2610 + </span>
2611 + </div>
2612 + <div class="tile-gradient rounded"></div>
2613 + </a>
2614 +
2615 + <a
2616 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2617 + data-borough="15"
2618 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Capture_Loretteville_62833718-00b7-11ee-b4cd-0aa8d57fe613.JPG');"
2619 + href="/louer-appartement-quebec/?boroughs=15"
2620 + >
2621 + <div class="bottom--middle d-flex flex-column pb-3">
2622 + <p class="thumbnail-title text-white mb-1">Loretteville</p>
2623 + <span class="text-white very-small-paragraph">
2624 + 1
2625 + Logement
2626 + </span>
2627 + </div>
2628 + <div class="tile-gradient rounded"></div>
2629 + </a>
2630 +
2631 + <a
2632 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2633 + data-borough="6"
2634 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/McDo-Neufchatel-LOrmiere-100319.jpg');"
2635 + href="/louer-appartement-quebec/?boroughs=6"
2636 + >
2637 + <div class="bottom--middle d-flex flex-column pb-3">
2638 + <p class="thumbnail-title text-white mb-1">Neufchatel</p>
2639 + <span class="text-white very-small-paragraph">
2640 + 6
2641 + Logements
2642 + </span>
2643 + </div>
2644 + <div class="tile-gradient rounded"></div>
2645 + </a>
2646 +
2647 + <a
2648 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2649 + data-borough="12"
2650 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/49d7b304030f13d829218118b51cfaa6.jpg_1200x630.jpg');"
2651 + href="/louer-appartement-quebec/?boroughs=12"
2652 + >
2653 + <div class="bottom--middle d-flex flex-column pb-3">
2654 + <p class="thumbnail-title text-white mb-1">Québec</p>
2655 + <span class="text-white very-small-paragraph">
2656 + 2
2657 + Logements
2658 + </span>
2659 + </div>
2660 + <div class="tile-gradient rounded"></div>
2661 + </a>
2662 +
2663 + <a
2664 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2665 + data-borough="16"
2666 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/00000000667_9c1dd4e2-00b7-11ee-b4cd-0aa8d57fe613.jpg');"
2667 + href="/louer-appartement-quebec/?boroughs=16"
2668 + >
2669 + <div class="bottom--middle d-flex flex-column pb-3">
2670 + <p class="thumbnail-title text-white mb-1">Saint-Augustin-de-Desmaures</p>
2671 + <span class="text-white very-small-paragraph">
2672 + 10
2673 + Logements
2674 + </span>
2675 + </div>
2676 + <div class="tile-gradient rounded"></div>
2677 + </a>
2678 +
2679 + <a
2680 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2681 + data-borough="13"
2682 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/');"
2683 + href="/louer-appartement-quebec/?boroughs=13"
2684 + >
2685 + <div class="bottom--middle d-flex flex-column pb-3">
2686 + <p class="thumbnail-title text-white mb-1">St-Roch</p>
2687 + <span class="text-white very-small-paragraph">
2688 + 1
2689 + Logement
2690 + </span>
2691 + </div>
2692 + <div class="tile-gradient rounded"></div>
2693 + </a>
2694 +
2695 + <a
2696 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2697 + data-borough="5"
2698 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/photo-Place-ste-foy-01_3c5c9397-5056-a36a-072cdccbffa30859.jpg');"
2699 + href="/louer-appartement-quebec/?boroughs=5"
2700 + >
2701 + <div class="bottom--middle d-flex flex-column pb-3">
2702 + <p class="thumbnail-title text-white mb-1">Ste-Foy</p>
2703 + <span class="text-white very-small-paragraph">
2704 + 14
2705 + Logements
2706 + </span>
2707 + </div>
2708 + <div class="tile-gradient rounded"></div>
2709 + </a>
2710 +
2711 + <a
2712 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2713 + data-borough="17"
2714 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/');"
2715 + href="/louer-appartement-quebec/?boroughs=17"
2716 + >
2717 + <div class="bottom--middle d-flex flex-column pb-3">
2718 + <p class="thumbnail-title text-white mb-1">Val-Bélair</p>
2719 + <span class="text-white very-small-paragraph">
2720 + 2
2721 + Logements
2722 + </span>
2723 + </div>
2724 + <div class="tile-gradient rounded"></div>
2725 + </a>
2726 +
2727 + </div>
2728 + <div class="centered--right multiple-items-slick-arrow--right"></div>
2729 + </div>
2730 +</div>
2731 +
2732 +
2733 +
2734 +
2735 +
2736 +
2737 +
2738 + <div class="row mt-5 ">
2739 + <h2 class="col-12 text-center mb-4 text-primary">Nos logements en vedette</h2>
2740 + <div class="col-12 mb-3">
2741 +
2742 +
2743 +
2744 +<div class="row">
2745 +
2746 + <a
2747 + href="/logement/18"
2748 + class="appartments card border-white col-sm-6 mb-4 col-md-6 "
2749 + data-type="3"
2750 + data-borough="3"
2751 + >
2752 +
2753 +
2754 +
2755 +
2756 +<script>
2757 + function displayNowAvailableBubble(buildingId) {
2758 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2759 + nowAvailableBubble.classList.remove("d-none");
2760 + }
2761 +</script>
2762 +
2763 +<div class="row">
2764 +
2765 +
2766 +
2767 + <img src alt="" onerror="displayNowAvailableBubble(18 + '-recommendation');"></img>
2768 +
2769 +
2770 +
2771 +
2772 + <div class="now-available-bubble d-none" id="now-available-bubble-18-recommendation">
2773 + <p class="text-white m-0">En vedette</p>
2774 + </div>
2775 +
2776 +
2777 + <div class="col-6 apartment-col">
2778 + <div class="row">
2779 + <div class="col-12 pr-0">
2780 +
2781 + <img
2782 + class="rounded-left apartment-image"
2783 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_3_bf11e94e-3f15-11f1-9a87-12e0191876fd.jpg"
2784 + alt="unit image"
2785 + width=100%
2786 + height=232px
2787 + />
2788 +
2789 + </div>
2790 + </div>
2791 + </div>
2792 +
2793 +
2794 + <div class="col-6 apartment-col">
2795 + <div class="row">
2796 + <div class="col-12 pl-0">
2797 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_2_bfb756f4-3f15-11f1-9a87-12e0191876fd.jpg"
2798 + alt="unit image" width="100%" height="116px">
2799 + </div>
2800 + </div>
2801 +
2802 + <div class="row">
2803 + <div class="col-12 pl-0">
2804 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_5_mod_c088e282-3f15-11f1-9a87-12e0191876fd.jpg"
2805 + alt="unit image" width=100% height=116px>
2806 + </div>
2807 + </div>
2808 +
2809 + </div>
2810 +
2811 +
2812 +
2813 +</div>
2814 +
2815 +
2816 +
2817 +
2818 +
2819 +<div class="row mt-4">
2820 + <div class="col-12">
2821 + <div class="card-body p-0 text-left">
2822 + <h5 class="apartment-borough">Appartements &middot; Beauport</h5>
2823 + <p class="apartment-address mb-1">555, avenue du Fleuve</p>
2824 +
2825 +
2826 + <div class="row">
2827 + <div class="col-7">
2828 + <p class="apartment-infos mb-0">
2829 +
2830 + 1½ à partir de 799$
2831 +
2832 + </p>
2833 + <p class="apartment-availability footnotes">
2834 + Libre immédiatement
2835 + </p>
2836 + </div>
2837 + <div class="col-5 text-right">
2838 +
2839 +
2840 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_light.png" alt="Électricité" height=18px width=18px>
2841 +
2842 +
2843 +
2844 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2845 +
2846 +
2847 +
2848 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_heat.png" alt="Chauffage" height=18px width=18px>
2849 +
2850 +
2851 +
2852 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2853 +
2854 +
2855 +
2856 +
2857 +
2858 +
2859 +
2860 + <p class="footnotes d-inline"> +2</p>
2861 +
2862 + </div>
2863 + </div>
2864 +
2865 +
2866 +
2867 + </div>
2868 + </div>
2869 +</div>
2870 +
2871 + </a>
2872 +
2873 + <a
2874 + href="/logement/312"
2875 + class="appartments card border-white col-sm-6 mb-4 col-md-6 "
2876 + data-type="3"
2877 + data-borough="10"
2878 + >
2879 +
2880 +
2881 +
2882 +
2883 +<script>
2884 + function displayNowAvailableBubble(buildingId) {
2885 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2886 + nowAvailableBubble.classList.remove("d-none");
2887 + }
2888 +</script>
2889 +
2890 +<div class="row">
2891 +
2892 +
2893 +
2894 + <img src alt="" onerror="displayNowAvailableBubble(312 + '-recommendation');"></img>
2895 +
2896 +
2897 +
2898 +
2899 + <div class="now-available-bubble d-none" id="now-available-bubble-312-recommendation">
2900 + <p class="text-white m-0">En vedette</p>
2901 + </div>
2902 +
2903 +
2904 + <div class="col-6 apartment-col">
2905 + <div class="row">
2906 + <div class="col-12 pr-0">
2907 +
2908 + <img
2909 + class="rounded-left apartment-image"
2910 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/CUISINE_2_a8e2db9c-5811-11f0-8a5b-0e9b4be91035.jpg"
2911 + alt="unit image"
2912 + width=100%
2913 + height=232px
2914 + />
2915 +
2916 + </div>
2917 + </div>
2918 + </div>
2919 +
2920 +
2921 + <div class="col-6 apartment-col">
2922 + <div class="row">
2923 + <div class="col-12 pl-0">
2924 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/CUISINE_a99b01fe-5811-11f0-8a5b-0e9b4be91035.jpg"
2925 + alt="unit image" width="100%" height="116px">
2926 + </div>
2927 + </div>
2928 +
2929 + <div class="row">
2930 + <div class="col-12 pl-0">
2931 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/SALON_aa37903c-5811-11f0-8a5b-0e9b4be91035.jpg"
2932 + alt="unit image" width=100% height=116px>
2933 + </div>
2934 + </div>
2935 +
2936 + </div>
2937 +
2938 +
2939 +
2940 +</div>
2941 +
2942 +
2943 +
2944 +
2945 +
2946 +<div class="row mt-4">
2947 + <div class="col-12">
2948 + <div class="card-body p-0 text-left">
2949 + <h5 class="apartment-borough">Appartements &middot; Lebourgneuf</h5>
2950 + <p class="apartment-address mb-1">5900 boul. St-Jacques</p>
2951 +
2952 +
2953 + <div class="row">
2954 + <div class="col-7">
2955 + <p class="apartment-infos mb-0">
2956 +
2957 + 4½ à partir de 1595$
2958 +
2959 + </p>
2960 + <p class="apartment-availability footnotes">
2961 + octobre 2026
2962 + </p>
2963 + </div>
2964 + <div class="col-5 text-right">
2965 +
2966 +
2967 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2968 +
2969 +
2970 +
2971 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_ac.png" alt="Climatiseur" height=18px width=18px>
2972 +
2973 +
2974 +
2975 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2976 +
2977 +
2978 +
2979 + </div>
2980 + </div>
2981 +
2982 +
2983 +
2984 + </div>
2985 + </div>
2986 +</div>
2987 +
2988 + </a>
2989 +
2990 + <a
2991 + href="/logement/160"
2992 + class="appartments card border-white col-sm-6 mb-4 col-md-6 "
2993 + data-type="3"
2994 + data-borough="6"
2995 + >
2996 +
2997 +
2998 +
2999 +
3000 +<script>
3001 + function displayNowAvailableBubble(buildingId) {
3002 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
3003 + nowAvailableBubble.classList.remove("d-none");
3004 + }
3005 +</script>
3006 +
3007 +<div class="row">
3008 +
3009 +
3010 +
3011 + <img src alt="" onerror="displayNowAvailableBubble(160 + '-recommendation');"></img>
3012 +
3013 +
3014 +
3015 +
3016 + <div class="now-available-bubble d-none" id="now-available-bubble-160-recommendation">
3017 + <p class="text-white m-0">En vedette</p>
3018 + </div>
3019 +
3020 +
3021 + <div class="col-6 apartment-col">
3022 + <div class="row">
3023 + <div class="col-12 pr-0">
3024 +
3025 + <img
3026 + class="rounded-left apartment-image"
3027 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD1_54749d22-bfa3-11ea-9b14-0e226705be53.jpg"
3028 + alt="unit image"
3029 + width=100%
3030 + height=232px
3031 + />
3032 +
3033 + </div>
3034 + </div>
3035 + </div>
3036 +
3037 +
3038 + <div class="col-6 apartment-col">
3039 + <div class="row">
3040 + <div class="col-12 pl-0">
3041 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD2_5554869e-bfa3-11ea-9b14-0e226705be53.jpg"
3042 + alt="unit image" width="100%" height="116px">
3043 + </div>
3044 + </div>
3045 +
3046 + <div class="row">
3047 + <div class="col-12 pl-0">
3048 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD3_562eca5c-bfa3-11ea-9b14-0e226705be53.jpg"
3049 + alt="unit image" width=100% height=116px>
3050 + </div>
3051 + </div>
3052 +
3053 + </div>
3054 +
3055 +
3056 +
3057 +</div>
3058 +
3059 +
3060 +
3061 +
3062 +
3063 +<div class="row mt-4">
3064 + <div class="col-12">
3065 + <div class="card-body p-0 text-left">
3066 + <h5 class="apartment-borough">Appartements &middot; Neufchatel</h5>
3067 + <p class="apartment-address mb-1">1573, rue Pierre-Corneille</p>
3068 +
3069 +
3070 + <div class="row">
3071 + <div class="col-7">
3072 + <p class="apartment-infos mb-0">
3073 +
3074 + 4½ à partir de 1250$
3075 +
3076 + </p>
3077 + <p class="apartment-availability footnotes">
3078 + Libre immédiatement
3079 + </p>
3080 + </div>
3081 + <div class="col-5 text-right">
3082 +
3083 +
3084 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
3085 +
3086 +
3087 +
3088 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
3089 +
3090 +
3091 +
3092 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
3093 +
3094 +
3095 +
3096 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_appliances_alt.png" alt="Lave-vaisselle" height=18px width=18px>
3097 +
3098 +
3099 +
3100 + </div>
3101 + </div>
3102 +
3103 +
3104 +
3105 + </div>
3106 + </div>
3107 +</div>
3108 +
3109 + </a>
3110 +
3111 +</div>
3112 +
3113 + </div>
3114 +
3115 + </div>
3116 +
3117 +
3118 +
3119 + </div>
3120 +
3121 + <div class="col-md-6 pt-4">
3122 +
3123 +
3124 +<script id="building-coordinates" type="application/json">[]</script>
3125 +
3126 +<div id="map-container" class=" mb-2 mt-1">
3127 + <div id="interactive-map" style="height: 100%;" class="rounded">
3128 + </div>
3129 +</div>
3130 +
3131 + </div>
3132 +
3133 + </div>
3134 + </div>
3135 + </div>
3136 +</div>
3137 +
3138 + </main>
3139 + <footer>
3140 +
3141 +
3142 +
3143 +<div class="footer row m-0 p-5 justify-content-center bg-black">
3144 + <div class="container m-0">
3145 + <div class="row mb-3">
3146 + <img src="/static/images/logos/sansfond_horizontal_blanc.png" alt="L&M Logo" width="auto"
3147 + height="80px" class="footer-logo">
3148 + </div>
3149 + <div class="row">
3150 + <div class="col-12 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pr-sm-4 d-flex flex-column">
3151 + <p class="footer-title mb-2">Contactez-nous</p>
3152 + <p class="footer-text mb-3">Pour toute question concercant nos services de gestion immobilière, nos logements à louer ou pour en savoir plus sur nos offres et services.</p>
3153 + <a href="tel:14186265500" class="mb-3 d-flex align-items-center">
3154 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-3" />
3155 + <span class="footer-phone">418 626-5500</span>
3156 + </a>
3157 + <a href="/cdn-cgi/l/email-protection#83eaede5ecc3efe2e5f1e2ede0e6aeeee2f7ebeae6f6ade0ecee" target="_blank" class="mb-3 d-flex align-items-center">
3158 + <img src=/static/images/icons/email.svg alt="email icon" class="footer-icon mr-3" />
3159 + <span><span class="__cf_email__" data-cfemail="1d74737b725d717c7b6f7c737e7830707c6975747868337e7270">[email&#160;protected]</span></span>
3160 + </a>
3161 + <a href="https://g.page/Lafrance-Mathieu?share" target="_blank" class="mb-4 d-flex align-items-center">
3162 + 1220 Boulevard Lebourgneuf<br>Québec, QC G2K 2G4
3163 + </a>
3164 + <p class="footer-title mb-2">Suivez-nous sur les réseaux</p>
3165 + <div class="d-flex">
3166 + <a href="https://ca.linkedin.com/company/gestion-immobilière-lafrance-et-mathieu-inc">
3167 + <img src=/static/images/icons/linkedin.svg alt="linkedin icon"
3168 + class="footer-social-icon mr-3" />
3169 + </a>
3170 + <a href="https://fr-ca.facebook.com/lafrance.mathieu">
3171 + <img src=/static/images/icons/facebook.svg alt="facebook icon"
3172 + class="footer-social-icon" />
3173 + </a>
3174 + </div>
3175 + </div>
3176 + <div class="col-10 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pl-sm-4 px-md-4 d-flex flex-column">
3177 + <p class="footer-title mb-2">Soutien aux résidents (24/7)</p>
3178 + <p class="footer-text mb-3">Pour toute urgence n’hésitez pas à nous contacter ou connectez vous à l’Espace client pour toute question ou demande moins urgente.</p>
3179 + <a href="tel:14186265500" class="mb-3 d-flex align-items-center">
3180 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-3" />
3181 + <span class="footer-phone">418-626-5500</span>
3182 + </a>
3183 + <a href="https://espace-client.lafrance-mathieu.com" target="_blank" class="d-flex align-items-center mb-3">
3184 + <img src=/static/images/icons/ticket.svg alt="client space icon" class="footer-icon mr-3" />
3185 + <span>Se connecter à l’Espace client</span>
3186 + </a>
3187 + <a href="https://doma.lafrance-mathieu.com:444/DocRoom/Auth/Login.aspx" target="_blank" class="d-flex align-items-center">
3188 + <img src=/static/images/icons/ticket.svg alt="intranet icon" class="footer-icon mr-3" />
3189 + <span>Se connecter à Sensaas</span>
3190 + </a>
3191 + </div>
3192 + <div class="col-10 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pr-sm-4 px-md-4">
3193 + <ul class="navbar-nav">
3194 +
3195 +
3196 +
3197 +<li class="nav-item ">
3198 + <a class="nav-link py-0 footer-main-navigation mb-3"
3199 + href="/">Accueil</a>
3200 + <hr class="my-1 border-gray-medium d-none">
3201 +</li>
3202 +
3203 +
3204 +
3205 +
3206 +
3207 +<li class="nav-item ">
3208 + <a class="nav-link py-0 footer-main-navigation mb-3"
3209 + href="/services-de-gestion-immobiliere">Services de gestion <br class='nav-item-translation'>immobilière</a>
3210 + <hr class="my-1 border-gray-medium d-none">
3211 +</li>
3212 +
3213 +
3214 +
3215 +
3216 +
3217 +<li class="nav-item active ">
3218 + <a class="nav-link py-0 footer-main-navigation mb-3"
3219 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
3220 + <hr class="my-1 border-gray-medium d-none">
3221 +</li>
3222 +
3223 +
3224 +
3225 +
3226 +
3227 +<li class="nav-item ">
3228 + <a class="nav-link py-0 footer-main-navigation mb-3"
3229 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
3230 + <hr class="my-1 border-gray-medium d-none">
3231 +</li>
3232 +
3233 +
3234 +
3235 +
3236 +
3237 +<li class="nav-item ">
3238 + <a class="nav-link py-0 footer-main-navigation mb-3"
3239 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
3240 + <hr class="my-1 border-gray-medium d-none">
3241 +</li>
3242 +
3243 +
3244 +
3245 +
3246 +
3247 +<li class="nav-item ">
3248 + <a class="nav-link py-0 footer-main-navigation mb-3"
3249 + href="/qui-sommes-nous/">À propos de <br class='nav-item-translation'>Lafrance & Mathieu</a>
3250 + <hr class="my-1 border-gray-medium d-none">
3251 +</li>
3252 +
3253 +
3254 +
3255 + </ul>
3256 + </div>
3257 + <div class="col-10 col-sm-6 col-md-3 p-0 pl-sm-4">
3258 + <ul class="navbar-nav">
3259 +
3260 +
3261 +
3262 +<li class="nav-item ">
3263 + <a class="nav-link py-0 footer-main-navigation mb-3"
3264 + href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
3265 + <hr class="my-1 border-gray-medium d-none">
3266 +</li>
3267 +
3268 +
3269 +
3270 +
3271 +
3272 +<li class="nav-item ">
3273 + <a class="nav-link py-0 footer-main-navigation mb-3"
3274 + href="/blog">Blogue</a>
3275 + <hr class="my-1 border-gray-medium d-none">
3276 +</li>
3277 +
3278 +
3279 +
3280 +
3281 +
3282 +<li class="nav-item ">
3283 + <a class="nav-link py-0 footer-main-navigation mb-3"
3284 + href="/faire-carriere/">Carrières</a>
3285 + <hr class="my-1 border-gray-medium d-none">
3286 +</li>
3287 +
3288 +
3289 +
3290 + </ul>
3291 + </div>
3292 + </div>
3293 + </div>
3294 +</div>
3295 +
3296 +
3297 +
3298 +
3299 +<div class="footer-notices d-flex flex-column w-100 m-0 px-5 py-4 align-items-start align-items-sm-center bg-darker">
3300 + <div class="d-flex justify-content-center">
3301 + <ul class="list-inline mb-1">
3302 +
3303 + <li class="list-inline-item">
3304 + <a href=/conditions-utilisation>
3305 + Conditions d'utilisation
3306 + </a>
3307 + </li>
3308 +
3309 +
3310 + <li class="list-inline-item">
3311 + <a href=/politique-confidentialite>
3312 + Politique de confidentialité
3313 + </a>
3314 + </li>
3315 +
3316 +
3317 + <li class="list-inline-item">
3318 + <a href=/protection-renseignements-personnels>
3319 + Protection des renseignements personnels
3320 + </a>
3321 + </li>
3322 +
3323 +
3324 + <li class="list-inline-item">
3325 + <a href=/temoins-navigation>
3326 + Gérer vos témoins de navigation
3327 + </a>
3328 + </li>
3329 +
3330 + </ul>
3331 + </div>
3332 + <div class="d-flex justify-content-center">
3333 + <p class="">© Gestion immobilière Lafrance & Mathieu</p>
3334 + </div>
3335 +</div>
3336 +
3337 + </footer>
3338 +
3339 +
3340 +<!-- Cookie Banner -->
3341 +<div id="gilm-cookie-banner" class="alert alert-dark hidden" role="alert">
3342 + <div class="gilm-cookie-banner-container">
3343 + <div class="gilm-cookie-banner-text">
3344 + <p>
3345 + Nous utilisons les témoins de navigation (cookies) afin de mesurer et d’améliorer l’efficacité de nos
3346 + sites
3347 + Web
3348 + ou de rehausser l’expérience client. En utilisant notre site Web, vous consentez à l’utilisation de
3349 + témoins,
3350 + comme l’explique notre <a href=/protection-renseignements-personnels> protection des
3351 + renseignements personnels</a>. Si vous n'êtes pas à l'aise avec
3352 + l'utilisation
3353 + de ces informations, veuillez revoir vos paramètres avant de poursuivre votre visite.
3354 + </p>
3355 + <p class="d-sm-none">
3356 + <a href=/temoins-navigation>
3357 + Gérer vos témoins de navigation
3358 + </a>
3359 + <br/>
3360 + <a href=/politique-confidentialite>
3361 + Politique de confidentialité
3362 + </a>
3363 + <br/>
3364 + <a href=/conditions-utilisation>
3365 + Conditions d'utilisation
3366 + </a>
3367 + </p>
3368 + <p class="d-none d-sm-block">
3369 + <a href=/temoins-navigation>
3370 + Gérer vos témoins de navigation
3371 + </a>
3372 + -
3373 + <a href=/politique-confidentialite>
3374 + Politique de confidentialité
3375 + </a>
3376 + -
3377 + <a href=/conditions-utilisation>
3378 + Conditions d'utilisation
3379 + </a>
3380 + </p>
3381 + </div>
3382 + <button type="button" class="gilm-cookie-banner-button btn btn-primary btn-sm ms-3"
3383 + onclick="window.gilm_hideCookieBanner()">
3384 + <img src=/static/images/icons/close.svg alt="closing icon" class="close-icon"/>
3385 + </button>
3386 + </div>
3387 +</div>
3388 +<!-- End of Cookie Banner -->
3389 + </div>
3390 + <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous">
3391 + </script>
3392 + <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js" integrity="sha256-eGE6blurk5sHj+rmkfsGYeKyZx3M4bG+ZlFyA7Kns7E=" crossorigin="anonymous">
3393 + </script>
3394 + <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js" crossorigin="anonymous"></script>
3395 + <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous">
3396 + </script>
3397 + <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous">
3398 + </script>
3399 + <script type="text/javascript" src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js">
3400 + </script>
3401 + <script type="text/javascript" src="/static/js/carousel.js">
3402 + </script>
3403 + <script type="text/javascript" src="/static/js/cookie_banner.js">
3404 + </script>
3405 + <script id="search-script" type="text/javascript" src="/static/js/search.js">
3406 + </script>
3407 + <script type="text/javascript" src="/static/js/jssocials.min.js">
3408 + </script>
3409 + <script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin="">
3410 + </script>
3411 + <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js" integrity="sha256-bqVeqGdJ7h/lYPq6xrPv/YGzMEb6dNxlfiTUHSgRCp8=" crossorigin="anonymous">
3412 + </script>
3413 + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/locales/bootstrap-datepicker.fr.min.js" charset="UTF-8">
3414 + </script>
3415 + <script async src="https://www.googletagmanager.com/gtag/js?id=UA-20687227-3"></script>
3416 + <script>
3417 + window.dataLayer = window.dataLayer || [];
3418 +
3419 + function gtag() {
3420 + dataLayer.push(arguments);
3421 + }
3422 + gtag('js', new Date());
3423 + gtag('config', 'UA-20687227-3');
3424 + </script>
3425 +
3426 +<script type="text/javascript" src="/static/js/leaflet.js">
3427 +</script>
3428 +
3429 +
3430 + </body>
3431 +
3432 + </html>
added tests/fixtures/lafrance_mathieu/0c93284acfd0da7b6a60.html +3764 −0
@@ -0,0 +1,3764 @@
1 +
2 +
3 +
4 +
5 + <!DOCTYPE html>
6 + <html lang="fr" class="">
7 +
8 + <head>
9 +
10 + <meta charset="utf-8">
11 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
12 + <meta name="format-detection" content="telephone=no" />
13 + <link rel="alternate" href="https://lafrance-mathieu.com" hreflang="fr-ca" />
14 + <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css" />
15 + <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
16 + <link rel="stylesheet" href="/static/styling/index.css" />
17 + <script src="https://kit.fontawesome.com/72880f5a8c.js" crossorigin="anonymous"></script>
18 + <link rel="stylesheet" href="/static/styling/vendor/jssocials.css" />
19 + <link rel="stylesheet" href="/static/styling/vendor/jssocials-theme-flat.css" />
20 + <link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin="" />
21 + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css" integrity="sha256-siyOpF/pBWUPgIcQi17TLBkjvNgNQArcmwJB8YvkAgg=" crossorigin="anonymous" />
22 +
23 +<link rel="alternate" hreflang="fr-ca" href="/louer-appartement-quebec/" />
24 +<meta name="title" content="Logement a louer">
25 +<meta name="description" content="Trouvez votre appartement chez Lafrance et Mathieu. Louez un logement.">
26 +<meta name="keywords"
27 + content="appartement a louer,logement a louer, alouer, studio a louer, appartement meublé, appartement, louer, logement vacant, condo à louer,condo locatif, condo a louer lebourgneuf, condo a louer neufchatel, condo a louer charlesbourg, condo locatif Québec, logement, Québec, ville de québec, limoilou, charlesbourg, beauport, location, lafrance, mathieu, 1 et demi, 2 et demi, 3 et demi, 4 et demi, 5 et demi, 6 et demi, 7 et demi">
28 +<meta name="robots" content="index, follow">
29 +<title>Logements à louer - Lafrance & Mathieu</title>
30 +
31 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
32 + <meta name="language" content="French">
33 + <link rel="icon" type="image/ico" href="/static/images/favicon.ico" />
34 +
35 +
36 + <!-- Google Tag Manager -->
37 + <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
38 + new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
39 + j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
40 + 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
41 + })(window,document,'script','dataLayer','GTM-T675TG3');</script>
42 + <!-- End Google Tag Manager -->
43 + </head>
44 +
45 + <body>
46 + <!-- Google Tag Manager (noscript) -->
47 + <noscript><iframe src=https://www.googletagmanager.com/ns.html?id=GTM-T675TG3
48 + height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
49 + <!-- End Google Tag Manager (noscript) -->
50 +
51 + <div class="main-container">
52 + <header id="gilm-header" class>
53 +
54 +
55 +
56 +
57 +<nav class="nav desktop-nav">
58 + <div class="desktop-nav-top">
59 + <a class="desktop-nav-top-link" href="/faire-carriere/">
60 + <p>Carrières</p>
61 + </a>
62 +
63 + <a class="desktop-nav-top-link" href="/blog">
64 + <p>Lafrance et Mathieu: Blogue</p>
65 + </a>
66 +
67 + <a class="desktop-nav-top-link" href="https://espace-client.lafrance-mathieu.com" target="_blank">
68 + <p class="text-primary">Connexion</p>
69 + </a>
70 + </div>
71 + <div class="desktop-nav-bottom ">
72 + <ul class="desktop-nav-bottom-content left">
73 +
74 +
75 +
76 +
77 +
78 +
79 +
80 +<li
81 + class="nav-item dropdown "
82 + href="#"
83 +>
84 + <a
85 + class="nav-link py-0 dropdown-toggle header-main-navigation"
86 + href="#"
87 + id="navbardrop"
88 + data-toggle="dropdown"
89 + >
90 + Services de gestion <br class='nav-item-translation'>immobilière
91 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
92 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
93 +</svg>
94 +
95 + </a>
96 + <ul
97 + class="dropdown-menu dark dropdown-submenu"
98 + >
99 +
100 +
101 + <li class="nav-item">
102 + <a
103 + class="dropdown-item header-main-navigation text-wrap "
104 + href="/services-de-gestion-immobiliere"
105 + >
106 + Présentation de nos services
107 + </a>
108 + </li>
109 +
110 +
111 +
112 + <li class="nav-item">
113 + <a
114 + class="dropdown-item header-main-navigation text-wrap "
115 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
116 + >
117 + Gestion d’immeubles en copropriété
118 + </a>
119 + </li>
120 +
121 +
122 +
123 + <li class="nav-item">
124 + <a
125 + class="dropdown-item header-main-navigation text-wrap "
126 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
127 + >
128 + Gestion immobilière d&#x27;appartements en location
129 + </a>
130 + </li>
131 +
132 +
133 +
134 + <li class="nav-item">
135 + <a
136 + class="dropdown-item header-main-navigation text-wrap "
137 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
138 + >
139 + Gestion immobilière commerciale
140 + </a>
141 + </li>
142 +
143 +
144 +
145 + <li class="nav-item">
146 + <a
147 + class="dropdown-item header-main-navigation text-wrap "
148 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
149 + >
150 + Service de courtage immobilier
151 + </a>
152 + </li>
153 +
154 +
155 +
156 + <li class="nav-item">
157 + <a
158 + class="dropdown-item header-main-navigation text-wrap "
159 + href="/services-de-gestion-immobiliere/gilm-renovation"
160 + >
161 + GILM Rénovation
162 + </a>
163 + </li>
164 +
165 +
166 + </ul>
167 + <hr class="my-1 border-gray-medium d-none">
168 +</li>
169 +
170 +
171 +
172 +
173 +
174 +
175 +
176 +
177 +<li class="nav-item active ">
178 + <a class="nav-link py-0 header-main-navigation"
179 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
180 + <hr class="my-1 border-gray-medium d-none">
181 +</li>
182 +
183 +
184 +
185 +
186 +
187 +
188 +
189 +<li class="nav-item ">
190 + <a class="nav-link py-0 header-main-navigation"
191 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
192 + <hr class="my-1 border-gray-medium d-none">
193 +</li>
194 +
195 +
196 +
197 +
198 + </ul>
199 +
200 + <ul class="desktop-nav-bottom-content">
201 + <li class="desktop-nav-logo">
202 + <a href="/">
203 + <img src="/static/images/logos/sansfond_horizontal_noir.png" alt="L&M Logo" class="desktop-nav-logo-horizontal " />
204 + <img src="/static/images/logos/sansfond_vertical_blanc.png" alt="L&M Logo" class="desktop-nav-logo-vertical d-none" />
205 + </a>
206 + </li>
207 + </ul>
208 +
209 + <ul class="desktop-nav-bottom-content right">
210 +
211 +
212 +
213 +
214 +<li class="nav-item order-5">
215 + <a class="nav-link py-0 header-main-navigation"
216 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
217 + <hr class="my-1 border-gray-medium d-none">
218 +</li>
219 +
220 +
221 +
222 +
223 +
224 +
225 +
226 +
227 +
228 +
229 +<li
230 + class="nav-item dropdown order-6"
231 + href="#"
232 +>
233 + <a
234 + class="nav-link py-0 dropdown-toggle header-main-navigation"
235 + href="#"
236 + id="navbardrop"
237 + data-toggle="dropdown"
238 + >
239 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
240 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
241 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
242 +</svg>
243 +
244 + </a>
245 + <ul
246 + class="dropdown-menu dark dropdown-submenu"
247 + >
248 +
249 +
250 + <li class="nav-item">
251 + <a
252 + class="dropdown-item header-main-navigation text-wrap "
253 + href="/qui-sommes-nous/?tab=1"
254 + >
255 + Qui sommes-nous
256 + </a>
257 + </li>
258 +
259 +
260 +
261 + <li class="nav-item">
262 + <a
263 + class="dropdown-item header-main-navigation text-wrap "
264 + href="/qui-sommes-nous/?tab=2"
265 + >
266 + Mission et valeurs
267 + </a>
268 + </li>
269 +
270 +
271 +
272 + <li class="nav-item">
273 + <a
274 + class="dropdown-item header-main-navigation text-wrap "
275 + href="/qui-sommes-nous/?tab=3"
276 + >
277 + Équipe de direction
278 + </a>
279 + </li>
280 +
281 +
282 + </ul>
283 + <hr class="my-1 border-gray-medium d-none">
284 +</li>
285 +
286 +
287 +
288 +
289 +
290 +
291 +
292 +
293 +<li class="nav-item order-7">
294 + <a class="nav-link py-0 header-main-navigation"
295 + href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
296 + <hr class="my-1 border-gray-medium d-none">
297 +</li>
298 +
299 +
300 +
301 +
302 + </ul>
303 + </div>
304 +</nav>
305 +<nav class="nav mobile-nav">
306 + <div class="nav-bottom nav-d-none order-2" id="navbarSupportedContent">
307 + <ul class="nav-main-links">
308 +
309 +
310 +
311 +
312 +<li class="nav-item ">
313 + <a class="nav-link py-0 header-main-navigation"
314 + href="/">Accueil</a>
315 + <hr class="my-1 border-gray-medium d-none">
316 +</li>
317 +
318 +
319 +
320 +
321 +
322 +
323 +
324 +
325 +
326 +
327 +<li
328 + class="nav-item dropdown "
329 + href="#"
330 +>
331 + <a
332 + class="nav-link py-0 dropdown-toggle header-main-navigation"
333 + href="#"
334 + id="navbardrop"
335 + data-toggle="dropdown"
336 + >
337 + Services de gestion <br class='nav-item-translation'>immobilière
338 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
339 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
340 +</svg>
341 +
342 + </a>
343 + <ul
344 + class="dropdown-menu bg-gray-blue dropdown-submenu"
345 + >
346 +
347 +
348 + <li class="nav-item">
349 + <a
350 + class="dropdown-item header-main-navigation text-wrap "
351 + href="/services-de-gestion-immobiliere"
352 + >
353 + Présentation de nos services
354 + </a>
355 + </li>
356 +
357 +
358 +
359 + <li class="nav-item">
360 + <a
361 + class="dropdown-item header-main-navigation text-wrap "
362 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
363 + >
364 + Gestion d’immeubles en copropriété
365 + </a>
366 + </li>
367 +
368 +
369 +
370 + <li class="nav-item">
371 + <a
372 + class="dropdown-item header-main-navigation text-wrap "
373 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
374 + >
375 + Gestion immobilière d&#x27;appartements en location
376 + </a>
377 + </li>
378 +
379 +
380 +
381 + <li class="nav-item">
382 + <a
383 + class="dropdown-item header-main-navigation text-wrap "
384 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
385 + >
386 + Gestion immobilière commerciale
387 + </a>
388 + </li>
389 +
390 +
391 +
392 + <li class="nav-item">
393 + <a
394 + class="dropdown-item header-main-navigation text-wrap "
395 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
396 + >
397 + Service de courtage immobilier
398 + </a>
399 + </li>
400 +
401 +
402 +
403 + <li class="nav-item">
404 + <a
405 + class="dropdown-item header-main-navigation text-wrap "
406 + href="/services-de-gestion-immobiliere/gilm-renovation"
407 + >
408 + GILM Rénovation
409 + </a>
410 + </li>
411 +
412 +
413 + </ul>
414 + <hr class="my-1 border-gray-medium d-none">
415 +</li>
416 +
417 +
418 +
419 +
420 +
421 +
422 +
423 +
424 +<li class="nav-item active ">
425 + <a class="nav-link py-0 header-main-navigation"
426 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
427 + <hr class="my-1 border-gray-medium d-none">
428 +</li>
429 +
430 +
431 +
432 +
433 +
434 +
435 +
436 +<li class="nav-item ">
437 + <a class="nav-link py-0 header-main-navigation"
438 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
439 + <hr class="my-1 border-gray-medium d-none">
440 +</li>
441 +
442 +
443 +
444 +
445 +
446 +
447 +
448 +<li class="nav-item ">
449 + <a class="nav-link py-0 header-main-navigation"
450 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
451 + <hr class="my-1 border-gray-medium d-none">
452 +</li>
453 +
454 +
455 +
456 +
457 +
458 +
459 +
460 +
461 +
462 +
463 +<li
464 + class="nav-item dropdown "
465 + href="#"
466 +>
467 + <a
468 + class="nav-link py-0 dropdown-toggle header-main-navigation"
469 + href="#"
470 + id="navbardrop"
471 + data-toggle="dropdown"
472 + >
473 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
474 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
475 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
476 +</svg>
477 +
478 + </a>
479 + <ul
480 + class="dropdown-menu bg-gray-blue dropdown-submenu"
481 + >
482 +
483 +
484 + <li class="nav-item">
485 + <a
486 + class="dropdown-item header-main-navigation text-wrap "
487 + href="/qui-sommes-nous/?tab=1"
488 + >
489 + Qui sommes-nous
490 + </a>
491 + </li>
492 +
493 +
494 +
495 + <li class="nav-item">
496 + <a
497 + class="dropdown-item header-main-navigation text-wrap "
498 + href="/qui-sommes-nous/?tab=2"
499 + >
500 + Mission et valeurs
501 + </a>
502 + </li>
503 +
504 +
505 +
506 + <li class="nav-item">
507 + <a
508 + class="dropdown-item header-main-navigation text-wrap "
509 + href="/qui-sommes-nous/?tab=3"
510 + >
511 + Équipe de direction
512 + </a>
513 + </li>
514 +
515 +
516 + </ul>
517 + <hr class="my-1 border-gray-medium d-none">
518 +</li>
519 +
520 +
521 +
522 +
523 +
524 + </ul>
525 + <ul class="nav-quick-links mobile d-flex d-lg-none">
526 +
527 +
528 +<div class="nav-item">
529 + <a class="header-secondary-navigation" href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
530 +</div>
531 +
532 +
533 +
534 +
535 +<div class="nav-item">
536 + <a class="header-secondary-navigation" href="/blog">Blogue</a>
537 +</div>
538 +
539 +
540 +
541 +
542 +<div class="nav-item">
543 + <a class="header-secondary-navigation" href="/faire-carriere/">Carrières</a>
544 +</div>
545 +
546 +
547 +
548 + <li class="nav-item nav-client-space">
549 +
550 +
551 +<a class="btn btn-primary header-button-navigation text-white" href="https://espace-client.lafrance-mathieu.com">Connexion à l’Espace client</a>
552 + </li>
553 + </ul>
554 + <div class="w-100 my-3 d-flex d-lg-none flex-wrap">
555 + <div class="mb-4 p-0 pr-4 d-flex flex-column">
556 + <a href="tel:14186265500" class="mb-2 d-flex align-items-center">
557 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-2" />
558 + <span class="text-gray-light">418 626-5500</span>
559 + </a>
560 + <a href="/cdn-cgi/l/email-protection#8be2e5ede4cbe7eaedf9eae5e8eea6e6eaffe3e2eefea5e8e4e6" target="_blank" class="mb-3 d-flex align-items-center">
561 + <img src=/static/images/icons/call.svg alt="email icon" class="footer-icon mr-2" />
562 + <span><span class="__cf_email__" data-cfemail="99f0f7fff6d9f5f8ffebf8f7fafcb4f4f8edf1f0fcecb7faf6f4">[email&#160;protected]</span></span>
563 + </a>
564 + <p class="footer-text text-uppercase text-white text-bold">Suivez-nous sur les réseaux</p>
565 + <div class="d-flex">
566 + <a href="https://ca.linkedin.com/company/gestion-immobilière-lafrance-et-mathieu-inc">
567 + <img src=/static/images/icons/linkedin.svg alt="linkedin icon"
568 + class="footer-social-icon mr-3" />
569 + </a>
570 + <a href="https://fr-ca.facebook.com/lafrance.mathieu">
571 + <img src=/static/images/icons/facebook.svg alt="facebook icon"
572 + class="footer-social-icon" />
573 + </a>
574 + </div>
575 + </div>
576 + <div class="mb-4 mb-md-0 p-0 pl-sm-4 px-md-4 d-flex flex-column">
577 + <p class="footer-text text-uppercase text-white text-bold">Soutien aux résidents (24/7)</p>
578 + <a href="tel:14186265500" class="mb-2 d-flex align-items-center">
579 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-2" />
580 + <span class="text-gray-light">418 626-5500</span>
581 + </a>
582 + </div>
583 + </div>
584 + </div>
585 + <div class="nav-top order-1">
586 + <ul class="nav-main-links nav-main-links-top">
587 +
588 +
589 +
590 +
591 +<li class="nav-item ">
592 + <a class="nav-link py-0 header-main-navigation"
593 + href="/">Accueil</a>
594 + <hr class="my-1 border-gray-medium d-none">
595 +</li>
596 +
597 +
598 +
599 +
600 +
601 +
602 +
603 +
604 +
605 +
606 +<li
607 + class="nav-item dropdown "
608 + href="#"
609 +>
610 + <a
611 + class="nav-link py-0 dropdown-toggle header-main-navigation"
612 + href="#"
613 + id="navbardrop"
614 + data-toggle="dropdown"
615 + >
616 + Services de gestion <br class='nav-item-translation'>immobilière
617 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
618 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
619 +</svg>
620 +
621 + </a>
622 + <ul
623 + class="dropdown-menu bg-gray-blue dropdown-submenu"
624 + >
625 +
626 +
627 + <li class="nav-item">
628 + <a
629 + class="dropdown-item header-main-navigation text-wrap "
630 + href="/services-de-gestion-immobiliere"
631 + >
632 + Présentation de nos services
633 + </a>
634 + </li>
635 +
636 +
637 +
638 + <li class="nav-item">
639 + <a
640 + class="dropdown-item header-main-navigation text-wrap "
641 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
642 + >
643 + Gestion d’immeubles en copropriété
644 + </a>
645 + </li>
646 +
647 +
648 +
649 + <li class="nav-item">
650 + <a
651 + class="dropdown-item header-main-navigation text-wrap "
652 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
653 + >
654 + Gestion immobilière d&#x27;appartements en location
655 + </a>
656 + </li>
657 +
658 +
659 +
660 + <li class="nav-item">
661 + <a
662 + class="dropdown-item header-main-navigation text-wrap "
663 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
664 + >
665 + Gestion immobilière commerciale
666 + </a>
667 + </li>
668 +
669 +
670 +
671 + <li class="nav-item">
672 + <a
673 + class="dropdown-item header-main-navigation text-wrap "
674 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
675 + >
676 + Service de courtage immobilier
677 + </a>
678 + </li>
679 +
680 +
681 +
682 + <li class="nav-item">
683 + <a
684 + class="dropdown-item header-main-navigation text-wrap "
685 + href="/services-de-gestion-immobiliere/gilm-renovation"
686 + >
687 + GILM Rénovation
688 + </a>
689 + </li>
690 +
691 +
692 + </ul>
693 + <hr class="my-1 border-gray-medium d-none">
694 +</li>
695 +
696 +
697 +
698 +
699 +
700 +
701 +
702 +
703 +<li class="nav-item active ">
704 + <a class="nav-link py-0 header-main-navigation"
705 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
706 + <hr class="my-1 border-gray-medium d-none">
707 +</li>
708 +
709 +
710 +
711 +
712 +
713 +
714 +
715 +<li class="nav-item ">
716 + <a class="nav-link py-0 header-main-navigation"
717 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
718 + <hr class="my-1 border-gray-medium d-none">
719 +</li>
720 +
721 +
722 +
723 +
724 +
725 +
726 +
727 +<li class="nav-item ">
728 + <a class="nav-link py-0 header-main-navigation"
729 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
730 + <hr class="my-1 border-gray-medium d-none">
731 +</li>
732 +
733 +
734 +
735 +
736 +
737 +
738 +
739 +
740 +
741 +
742 +<li
743 + class="nav-item dropdown "
744 + href="#"
745 +>
746 + <a
747 + class="nav-link py-0 dropdown-toggle header-main-navigation"
748 + href="#"
749 + id="navbardrop"
750 + data-toggle="dropdown"
751 + >
752 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
753 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
754 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
755 +</svg>
756 +
757 + </a>
758 + <ul
759 + class="dropdown-menu bg-gray-blue dropdown-submenu"
760 + >
761 +
762 +
763 + <li class="nav-item">
764 + <a
765 + class="dropdown-item header-main-navigation text-wrap "
766 + href="/qui-sommes-nous/?tab=1"
767 + >
768 + Qui sommes-nous
769 + </a>
770 + </li>
771 +
772 +
773 +
774 + <li class="nav-item">
775 + <a
776 + class="dropdown-item header-main-navigation text-wrap "
777 + href="/qui-sommes-nous/?tab=2"
778 + >
779 + Mission et valeurs
780 + </a>
781 + </li>
782 +
783 +
784 +
785 + <li class="nav-item">
786 + <a
787 + class="dropdown-item header-main-navigation text-wrap "
788 + href="/qui-sommes-nous/?tab=3"
789 + >
790 + Équipe de direction
791 + </a>
792 + </li>
793 +
794 +
795 + </ul>
796 + <hr class="my-1 border-gray-medium d-none">
797 +</li>
798 +
799 +
800 +
801 +
802 +
803 + </ul>
804 + <button class="nav-toggle d-block d-lg-none" type="button" onclick="toggleMenu();">
805 + <img class="nav-toggle-icon icon-top d-none" src="/static/images/menu.svg" alt="menu">
806 + <img class="nav-toggle-icon icon-sticky" src="/static/images/menu-dark.svg" alt="menu">
807 + </button>
808 + <ul class="nav-quick-links">
809 +
810 +
811 +<div class="nav-item">
812 + <a class="header-secondary-navigation" href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
813 +</div>
814 +
815 +
816 +
817 +
818 +<div class="nav-item">
819 + <a class="header-secondary-navigation" href="/blog">Blogue</a>
820 +</div>
821 +
822 +
823 +
824 +
825 +<div class="nav-item">
826 + <a class="header-secondary-navigation" href="/faire-carriere/">Carrières</a>
827 +</div>
828 +
829 +
830 +
831 + <li class="nav-item nav-client-space">
832 +
833 +
834 +<a class="btn btn-primary header-button-navigation text-white" href="https://espace-client.lafrance-mathieu.com">Connexion à l’Espace client</a>
835 + </li>
836 + </ul>
837 + <a class="nav-logo-link" href="/">
838 + <img id="logo-white" class="nav-logo-img icon-top d-none" src="/static/images/logos/sansfond_horizontal_blanc.png"
839 + alt="L&M Logo">
840 + <img id="logo-dark" class="nav-logo-img icon-sticky" src="/static/images/logos/sansfond_horizontal_noir.png"
841 + alt="L&M Logo">
842 + </a>
843 + </div>
844 +
845 +
846 +
847 +
848 +
849 +
850 +
851 +
852 +</nav>
853 +
854 +<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
855 + function toggleMenu() {
856 + scrollPosition = window.scrollY;
857 +
858 + const menu = document.getElementById("navbarSupportedContent");
859 + menu.classList.toggle("nav-d-none");
860 +
861 + const mobileTabs = document.getElementsByClassName("mobile-tabs")[0];
862 + if (mobileTabs && mobileTabs.classList) {
863 + mobileTabs.classList.toggle("d-none");
864 + }
865 +
866 + if (!menu.classList.contains("nav-d-none")) {
867 + makeHeaderDark();
868 + } else {
869 + makeHeaderClear();
870 + }
871 + }
872 +
873 + window.addEventListener('touchmove', function (_e) {
874 + onScroll();
875 + });
876 + window.addEventListener('scroll', function (_e) {
877 + onScroll();
878 + });
879 +
880 + function makeHeaderDark() {
881 + const header = document.getElementById("gilm-header");
882 + if (!header.classList.contains("top")) header.classList.add("top");
883 +
884 + const lightIcons = document.getElementsByClassName("icon-top");
885 + const darkIcons = document.getElementsByClassName("icon-sticky");
886 + for (icon of lightIcons) {
887 + icon.classList.contains("d-none") && icon.classList.remove("d-none");
888 + }
889 + for (icon of darkIcons) {
890 + !icon.classList.contains("d-none") && icon.classList.add("d-none");
891 + }
892 + }
893 +
894 + function makeHeaderClear() {
895 + const header = document.getElementById("gilm-header");
896 + if (header.classList.contains("top")) header.classList.remove("top");
897 +
898 + const lightIcons = document.getElementsByClassName("icon-top");
899 + const darkIcons = document.getElementsByClassName("icon-sticky");
900 + for (icon of lightIcons) {
901 + !icon.classList.contains("d-none") && icon.classList.add("d-none");
902 + }
903 + for (icon of darkIcons) {
904 + icon.classList.contains("d-none") && icon.classList.remove("d-none");
905 + }
906 + }
907 +
908 + function onScroll() {
909 +
910 + }
911 +</script>
912 +
913 + </header>
914 + <main class="overflow-y-hidden ">
915 +
916 +
917 +<div class="container">
918 + <div class="row">
919 + <div class="col-12">
920 +
921 + <div class="building-header d-flex flex-column algin-items-center">
922 + <h2 class="text-center">Logements à louer</h2>
923 + <div class="diamond-separator">
924 + <div class="diamond-container">
925 + <div class="diamond"></div>
926 + </div>
927 + </div>
928 + <h1 class="building-header-title text-center">Trouver un logement à louer à Québec</h1>
929 +</div>
930 +
931 +
932 + </div>
933 + </div>
934 +</div>
935 +
936 +<form action="/louer-appartement-quebec/" id="search-form" class="col-12 p-0">
937 +
938 +
939 +
940 +
941 +<div class="search-bar-container">
942 + <div class="container">
943 + <div class="search-bar py-3 m-0 d-flex justify-content-center" id="search-bar">
944 +
945 + <div class="col-12 hero-popup-features d-flex flex-column flex-sm-row p-0">
946 +
947 +
948 +<div class="d-flex justify-content-between justify-content-lg-start flex-wrap flex-lg-nowrap w-100">
949 +
950 +
951 +
952 +
953 +
954 +<div class="search-button-container mb-2 mb-lg-0 position-static big">
955 + <button
956 +
957 + type="button"
958 + class="search-button btn rounded-pill w-100"
959 + data-toggle="toggle"
960 + >
961 + <span id="label-boroughs">Neufchatel</span>
962 + <img src="/static/images/icons/add-filter.svg" alt="+">
963 + </button>
964 + <div class="search-input w-100 mw-100 d-none">
965 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
966 + Fermer
967 + </button>
968 +
969 + <div class="row search-list">
970 + <ul class="list-unstyled d-flex flex-wrap col-12 m-0">
971 +
972 + <li class="col-12 col-lg-6 px-0">
973 + <label class="checkbox mb-2 ">
974 + <input
975 + id="boroughs-1"
976 + class="filter-value"
977 + name="boroughs"
978 + value="3"
979 + type="checkbox"
980 +
981 + onclick='updateButtonLabel("boroughs", "1", "Beauport", "Quartiers", "");'
982 + />
983 + <span class="checkmark"></span>
984 + Beauport
985 + </label>
986 + </li>
987 +
988 + <li class="col-12 col-lg-6 px-0">
989 + <label class="checkbox mb-2 ">
990 + <input
991 + id="boroughs-2"
992 + class="filter-value"
993 + name="boroughs"
994 + value="8"
995 + type="checkbox"
996 +
997 + onclick='updateButtonLabel("boroughs", "2", "Charlesbourg", "Quartiers", "");'
998 + />
999 + <span class="checkmark"></span>
1000 + Charlesbourg
1001 + </label>
1002 + </li>
1003 +
1004 + <li class="col-12 col-lg-6 px-0">
1005 + <label class="checkbox mb-2 ">
1006 + <input
1007 + id="boroughs-3"
1008 + class="filter-value"
1009 + name="boroughs"
1010 + value="9"
1011 + type="checkbox"
1012 +
1013 + onclick='updateButtonLabel("boroughs", "3", "L&#x27;Ancienne-Lorette", "Quartiers", "");'
1014 + />
1015 + <span class="checkmark"></span>
1016 + L&#x27;Ancienne-Lorette
1017 + </label>
1018 + </li>
1019 +
1020 + <li class="col-12 col-lg-6 px-0">
1021 + <label class="checkbox mb-2 ">
1022 + <input
1023 + id="boroughs-4"
1024 + class="filter-value"
1025 + name="boroughs"
1026 + value="10"
1027 + type="checkbox"
1028 +
1029 + onclick='updateButtonLabel("boroughs", "4", "Lebourgneuf", "Quartiers", "");'
1030 + />
1031 + <span class="checkmark"></span>
1032 + Lebourgneuf
1033 + </label>
1034 + </li>
1035 +
1036 + <li class="col-12 col-lg-6 px-0">
1037 + <label class="checkbox mb-2 ">
1038 + <input
1039 + id="boroughs-5"
1040 + class="filter-value"
1041 + name="boroughs"
1042 + value="4"
1043 + type="checkbox"
1044 +
1045 + onclick='updateButtonLabel("boroughs", "5", "Les Saules", "Quartiers", "");'
1046 + />
1047 + <span class="checkmark"></span>
1048 + Les Saules
1049 + </label>
1050 + </li>
1051 +
1052 + <li class="col-12 col-lg-6 px-0">
1053 + <label class="checkbox mb-2 ">
1054 + <input
1055 + id="boroughs-6"
1056 + class="filter-value"
1057 + name="boroughs"
1058 + value="14"
1059 + type="checkbox"
1060 +
1061 + onclick='updateButtonLabel("boroughs", "6", "Lévis", "Quartiers", "");'
1062 + />
1063 + <span class="checkmark"></span>
1064 + Lévis
1065 + </label>
1066 + </li>
1067 +
1068 + <li class="col-12 col-lg-6 px-0">
1069 + <label class="checkbox mb-2 ">
1070 + <input
1071 + id="boroughs-7"
1072 + class="filter-value"
1073 + name="boroughs"
1074 + value="1"
1075 + type="checkbox"
1076 +
1077 + onclick='updateButtonLabel("boroughs", "7", "Limoilou", "Quartiers", "");'
1078 + />
1079 + <span class="checkmark"></span>
1080 + Limoilou
1081 + </label>
1082 + </li>
1083 +
1084 + <li class="col-12 col-lg-6 px-0">
1085 + <label class="checkbox mb-2 ">
1086 + <input
1087 + id="boroughs-8"
1088 + class="filter-value"
1089 + name="boroughs"
1090 + value="15"
1091 + type="checkbox"
1092 +
1093 + onclick='updateButtonLabel("boroughs", "8", "Loretteville", "Quartiers", "");'
1094 + />
1095 + <span class="checkmark"></span>
1096 + Loretteville
1097 + </label>
1098 + </li>
1099 +
1100 + <li class="col-12 col-lg-6 px-0">
1101 + <label class="checkbox mb-2 ">
1102 + <input
1103 + id="boroughs-9"
1104 + class="filter-value"
1105 + name="boroughs"
1106 + value="6"
1107 + type="checkbox"
1108 + checked
1109 + onclick='updateButtonLabel("boroughs", "9", "Neufchatel", "Quartiers", "");'
1110 + />
1111 + <span class="checkmark"></span>
1112 + Neufchatel
1113 + </label>
1114 + </li>
1115 +
1116 + <li class="col-12 col-lg-6 px-0">
1117 + <label class="checkbox mb-2 ">
1118 + <input
1119 + id="boroughs-10"
1120 + class="filter-value"
1121 + name="boroughs"
1122 + value="12"
1123 + type="checkbox"
1124 +
1125 + onclick='updateButtonLabel("boroughs", "10", "Québec", "Quartiers", "");'
1126 + />
1127 + <span class="checkmark"></span>
1128 + Québec
1129 + </label>
1130 + </li>
1131 +
1132 + <li class="col-12 col-lg-6 px-0">
1133 + <label class="checkbox mb-2 ">
1134 + <input
1135 + id="boroughs-11"
1136 + class="filter-value"
1137 + name="boroughs"
1138 + value="16"
1139 + type="checkbox"
1140 +
1141 + onclick='updateButtonLabel("boroughs", "11", "Saint-Augustin-de-Desmaures", "Quartiers", "");'
1142 + />
1143 + <span class="checkmark"></span>
1144 + Saint-Augustin-de-Desmaures
1145 + </label>
1146 + </li>
1147 +
1148 + <li class="col-12 col-lg-6 px-0">
1149 + <label class="checkbox mb-2 ">
1150 + <input
1151 + id="boroughs-12"
1152 + class="filter-value"
1153 + name="boroughs"
1154 + value="13"
1155 + type="checkbox"
1156 +
1157 + onclick='updateButtonLabel("boroughs", "12", "St-Roch", "Quartiers", "");'
1158 + />
1159 + <span class="checkmark"></span>
1160 + St-Roch
1161 + </label>
1162 + </li>
1163 +
1164 + <li class="col-12 col-lg-6 px-0">
1165 + <label class="checkbox mb-2 ">
1166 + <input
1167 + id="boroughs-13"
1168 + class="filter-value"
1169 + name="boroughs"
1170 + value="5"
1171 + type="checkbox"
1172 +
1173 + onclick='updateButtonLabel("boroughs", "13", "Ste-Foy", "Quartiers", "");'
1174 + />
1175 + <span class="checkmark"></span>
1176 + Ste-Foy
1177 + </label>
1178 + </li>
1179 +
1180 + <li class="col-12 col-lg-6 px-0">
1181 + <label class="checkbox mb-2 ">
1182 + <input
1183 + id="boroughs-14"
1184 + class="filter-value"
1185 + name="boroughs"
1186 + value="17"
1187 + type="checkbox"
1188 +
1189 + onclick='updateButtonLabel("boroughs", "14", "Val-Bélair", "Quartiers", "");'
1190 + />
1191 + <span class="checkmark"></span>
1192 + Val-Bélair
1193 + </label>
1194 + </li>
1195 +
1196 + </ul>
1197 + </div>
1198 +
1199 + </div>
1200 +</div>
1201 +
1202 +<script>
1203 + function updateButtonLabel(name, counter, value, defaultValue, isRadioButton) {
1204 + const label = document.getElementById(`label-${ name }`);
1205 + if (label.innerHTML === defaultValue) label.innerHTML = "";
1206 +
1207 + const input = document.getElementById(`${ name }-${counter}`);
1208 +
1209 + if (input.checked) {
1210 + if (label.innerHTML && !isRadioButton) label.innerHTML = `${label.innerHTML}, ${value}`;
1211 + else label.innerHTML = value;
1212 + } else {
1213 + if (label.innerHTML.includes(`${value}, `)) label.innerHTML = label.innerHTML.replace(`${value}, `, "");
1214 + else label.innerHTML = label.innerHTML.replace(value, "");
1215 + }
1216 +
1217 + if (!label.innerHTML.trim()) label.innerHTML = defaultValue;
1218 + }
1219 +
1220 +
1221 +</script>
1222 +
1223 +
1224 +
1225 +
1226 +
1227 +<div class="search-button-container mb-2 mb-lg-0 big ">
1228 + <div class="btn-group room-sizes-control" role="group" aria-label="Room size">
1229 + <div class="room-sizes-container">
1230 + <div id="room-size-group" class="room-size-group">
1231 +
1232 + <button
1233 + id="button-2"
1234 + type="button"
1235 + class="btn room-size-btn "
1236 + onclick="toggleRoomSizeButton(2); toggleRoomSizeCheckBox(2);"
1237 + >
1238 +
1239 + </button>
1240 +
1241 + <button
1242 + id="button-3"
1243 + type="button"
1244 + class="btn room-size-btn "
1245 + onclick="toggleRoomSizeButton(3); toggleRoomSizeCheckBox(3);"
1246 + >
1247 +
1248 + </button>
1249 +
1250 + <button
1251 + id="button-4"
1252 + type="button"
1253 + class="btn room-size-btn "
1254 + onclick="toggleRoomSizeButton(4); toggleRoomSizeCheckBox(4);"
1255 + >
1256 +
1257 + </button>
1258 +
1259 + <button
1260 + id="button-5"
1261 + type="button"
1262 + class="btn room-size-btn "
1263 + onclick="toggleRoomSizeButton(5); toggleRoomSizeCheckBox(5);"
1264 + >
1265 +
1266 + </button>
1267 +
1268 + <button
1269 + id="button-6"
1270 + type="button"
1271 + class="btn room-size-btn "
1272 + onclick="toggleRoomSizeButton(6); toggleRoomSizeCheckBox(6);"
1273 + >
1274 +
1275 + </button>
1276 +
1277 + </div>
1278 + <button id="see-more-rooms" type="button" class="search-button btn inner-button d-none text-primary border-0" data-toggle="toggle">...</button>
1279 + <div class="search-input w-100 mw-100 d-none">
1280 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
1281 + Fermer
1282 + </button>
1283 + <div class="row search-list">
1284 + <ul class="list-unstyled d-flex flex-wrap col-12 m-0">
1285 +
1286 + <li class="col-12 col-lg-6 px-0">
1287 + <label class="checkbox mb-2">
1288 + <input
1289 + type="checkbox"
1290 + id="checkbox-2"
1291 +
1292 + name="room-size"
1293 + value="2"
1294 + onclick="toggleRoomSizeButton(2);"
1295 + />
1296 + <span class="checkmark"></span>
1297 +
1298 + </label>
1299 + </li>
1300 +
1301 + <li class="col-12 col-lg-6 px-0">
1302 + <label class="checkbox mb-2">
1303 + <input
1304 + type="checkbox"
1305 + id="checkbox-3"
1306 +
1307 + name="room-size"
1308 + value="3"
1309 + onclick="toggleRoomSizeButton(3);"
1310 + />
1311 + <span class="checkmark"></span>
1312 +
1313 + </label>
1314 + </li>
1315 +
1316 + <li class="col-12 col-lg-6 px-0">
1317 + <label class="checkbox mb-2">
1318 + <input
1319 + type="checkbox"
1320 + id="checkbox-4"
1321 +
1322 + name="room-size"
1323 + value="4"
1324 + onclick="toggleRoomSizeButton(4);"
1325 + />
1326 + <span class="checkmark"></span>
1327 +
1328 + </label>
1329 + </li>
1330 +
1331 + <li class="col-12 col-lg-6 px-0">
1332 + <label class="checkbox mb-2">
1333 + <input
1334 + type="checkbox"
1335 + id="checkbox-5"
1336 +
1337 + name="room-size"
1338 + value="5"
1339 + onclick="toggleRoomSizeButton(5);"
1340 + />
1341 + <span class="checkmark"></span>
1342 +
1343 + </label>
1344 + </li>
1345 +
1346 + <li class="col-12 col-lg-6 px-0">
1347 + <label class="checkbox mb-2">
1348 + <input
1349 + type="checkbox"
1350 + id="checkbox-6"
1351 +
1352 + name="room-size"
1353 + value="6"
1354 + onclick="toggleRoomSizeButton(6);"
1355 + />
1356 + <span class="checkmark"></span>
1357 +
1358 + </label>
1359 + </li>
1360 +
1361 + </ul>
1362 + </div>
1363 + </div>
1364 + </div>
1365 + </div>
1366 +</div>
1367 +
1368 +<script>
1369 + function toggleRoomSizeCheckBox(roomSizeId) {
1370 + const roomSizeCheckBox = document.getElementById(`checkbox-${roomSizeId}`);
1371 + if (roomSizeCheckBox) roomSizeCheckBox.checked = !roomSizeCheckBox.checked;
1372 + }
1373 +
1374 + function toggleRoomSizeButton(roomSizeId) {
1375 + const roomSizeButton = document.getElementById(`button-${roomSizeId}`);
1376 + if (roomSizeButton) roomSizeButton.classList.toggle("active");
1377 + }
1378 +
1379 + function isOverflown(element) {
1380 + return element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;
1381 + }
1382 +
1383 + function displaySeeMoreButtonIfOverflow() {
1384 + const seeMoreButton = document.getElementById("see-more-rooms");
1385 + const roomSizeGroup = document.getElementById("room-size-group");
1386 +
1387 + seeMoreButton.classList.add("d-none");
1388 + const overflown = isOverflown(roomSizeGroup);
1389 + if (overflown) seeMoreButton.classList.remove("d-none");
1390 +
1391 + }
1392 +
1393 + window.addEventListener("resize", displaySeeMoreButtonIfOverflow);
1394 + window.addEventListener("DOMContentLoaded", displaySeeMoreButtonIfOverflow);
1395 +</script>
1396 +
1397 +
1398 +
1399 +
1400 +
1401 +<div class="search-button-container position-static">
1402 + <button
1403 + id="price-range-button"
1404 + type="button"
1405 + class="search-button btn rounded-pill w-100"
1406 + data-toggle="toggle"
1407 + >
1408 + <span id="label-price">Prix</span>
1409 + <img src="/static/images/icons/add-filter.svg" alt="+">
1410 + </button>
1411 + <div class="search-input w-100 mw-100 d-none">
1412 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
1413 + Fermer
1414 + </button>
1415 +
1416 +
1417 +
1418 +
1419 +<script id="search-script" type="application/json">{"rent__min": "785.00", "rent__max": "2690.00"}</script>
1420 +
1421 +<div class="row">
1422 + <div class="mr-4" style="right: 0;">
1423 + <p class="text-primary" id="count_of_units"></p>
1424 + </div>
1425 + <div class="col-12">
1426 + <svg viewBox="0 0 500 100" class="chart">
1427 + <polyline
1428 + fill="#F0EDE4"
1429 + stroke="#ad986e"
1430 + stroke-width="2"
1431 + points="
1432 + 0, 100
1433 +
1434 + 0, 95
1435 +
1436 + 11, 98
1437 +
1438 + 22, 100
1439 +
1440 + 34, 100
1441 +
1442 + 45, 100
1443 +
1444 + 57, 100
1445 +
1446 + 68, 98
1447 +
1448 + 79, 96
1449 +
1450 + 91, 96
1451 +
1452 + 102, 95
1453 +
1454 + 114, 91
1455 +
1456 + 125, 98
1457 +
1458 + 136, 95
1459 +
1460 + 148, 100
1461 +
1462 + 159, 95
1463 +
1464 + 171, 91
1465 +
1466 + 182, 91
1467 +
1468 + 193, 93
1469 +
1470 + 205, 90
1471 +
1472 + 216, 90
1473 +
1474 + 228, 95
1475 +
1476 + 239, 96
1477 +
1478 + 250, 96
1479 +
1480 + 262, 96
1481 +
1482 + 273, 96
1483 +
1484 + 285, 98
1485 +
1486 + 296, 96
1487 +
1488 + 307, 95
1489 +
1490 + 319, 98
1491 +
1492 + 330, 98
1493 +
1494 + 342, 100
1495 +
1496 + 353, 100
1497 +
1498 + 365, 100
1499 +
1500 + 376, 100
1501 +
1502 + 387, 100
1503 +
1504 + 399, 100
1505 +
1506 + 410, 100
1507 +
1508 + 422, 100
1509 +
1510 + 433, 98
1511 +
1512 + 500, 100
1513 + "
1514 + />
1515 + </svg>
1516 + <div id="slider-range"></div>
1517 + </div>
1518 +</div>
1519 +<div class="row mt-4">
1520 + <div class="col-6 pr-0">
1521 + <input
1522 + class="search-slider-input rounded-left"
1523 + type="text"
1524 + id="slider-min-amount"
1525 + name="min-amount"
1526 + placeholder="Prix min."
1527 + value="">
1528 + </div>
1529 + <div class="col-6 pl-0">
1530 + <input
1531 + class="search-slider-input rounded-right"
1532 + type="text"
1533 + id="slider-max-amount"
1534 + name="max-amount"
1535 + placeholder="Prix max."
1536 + value="">
1537 + </div>
1538 +</div>
1539 +
1540 +
1541 + </div>
1542 +</div>
1543 +
1544 +<script>
1545 + function updateButtonLabel(name, counter, value, defaultValue, isRadioButton) {
1546 + const label = document.getElementById(`label-${ name }`);
1547 + if (label.innerHTML === defaultValue) label.innerHTML = "";
1548 +
1549 + const input = document.getElementById(`${ name }-${counter}`);
1550 +
1551 + if (input.checked) {
1552 + if (label.innerHTML && !isRadioButton) label.innerHTML = `${label.innerHTML}, ${value}`;
1553 + else label.innerHTML = value;
1554 + } else {
1555 + if (label.innerHTML.includes(`${value}, `)) label.innerHTML = label.innerHTML.replace(`${value}, `, "");
1556 + else label.innerHTML = label.innerHTML.replace(value, "");
1557 + }
1558 +
1559 + if (!label.innerHTML.trim()) label.innerHTML = defaultValue;
1560 + }
1561 +
1562 +
1563 +</script>
1564 +
1565 +
1566 +
1567 +
1568 +
1569 +<div class="search-button-container position-static">
1570 + <button
1571 +
1572 + type="button"
1573 + class="search-button btn rounded-pill w-100"
1574 + data-toggle="toggle"
1575 + >
1576 + <span id="label-availability">Disponibilités</span>
1577 + <img src="/static/images/icons/add-filter.svg" alt="+">
1578 + </button>
1579 + <div class="search-input w-100 mw-100 d-none">
1580 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
1581 + Fermer
1582 + </button>
1583 +
1584 + <div class="row search-list">
1585 + <ul class="list-unstyled d-flex flex-wrap col-12 m-0">
1586 +
1587 + <li class="col-12 col-lg-6 px-0">
1588 + <label class="checkbox mb-2 radio">
1589 + <input
1590 + id="availability-1"
1591 + class="filter-value"
1592 + name="availability"
1593 + value="1786147200"
1594 + type="radio"
1595 +
1596 + onclick='updateButtonLabel("availability", "1", "Libre immédiatement", "Disponibilités", "True");'
1597 + />
1598 + <span class="checkmark"></span>
1599 + Libre immédiatement
1600 + </label>
1601 + </li>
1602 +
1603 + <li class="col-12 col-lg-6 px-0">
1604 + <label class="checkbox mb-2 radio">
1605 + <input
1606 + id="availability-2"
1607 + class="filter-value"
1608 + name="availability"
1609 + value="1788220800"
1610 + type="radio"
1611 +
1612 + onclick='updateButtonLabel("availability", "2", "septembre 2026", "Disponibilités", "True");'
1613 + />
1614 + <span class="checkmark"></span>
1615 + septembre 2026
1616 + </label>
1617 + </li>
1618 +
1619 + <li class="col-12 col-lg-6 px-0">
1620 + <label class="checkbox mb-2 radio">
1621 + <input
1622 + id="availability-3"
1623 + class="filter-value"
1624 + name="availability"
1625 + value="1790812800"
1626 + type="radio"
1627 +
1628 + onclick='updateButtonLabel("availability", "3", "octobre 2026", "Disponibilités", "True");'
1629 + />
1630 + <span class="checkmark"></span>
1631 + octobre 2026
1632 + </label>
1633 + </li>
1634 +
1635 + <li class="col-12 col-lg-6 px-0">
1636 + <label class="checkbox mb-2 radio">
1637 + <input
1638 + id="availability-4"
1639 + class="filter-value"
1640 + name="availability"
1641 + value="1793491200"
1642 + type="radio"
1643 +
1644 + onclick='updateButtonLabel("availability", "4", "novembre 2026", "Disponibilités", "True");'
1645 + />
1646 + <span class="checkmark"></span>
1647 + novembre 2026
1648 + </label>
1649 + </li>
1650 +
1651 + <li class="col-12 col-lg-6 px-0">
1652 + <label class="checkbox mb-2 radio">
1653 + <input
1654 + id="availability-5"
1655 + class="filter-value"
1656 + name="availability"
1657 + value="1796083200"
1658 + type="radio"
1659 +
1660 + onclick='updateButtonLabel("availability", "5", "décembre 2026", "Disponibilités", "True");'
1661 + />
1662 + <span class="checkmark"></span>
1663 + décembre 2026
1664 + </label>
1665 + </li>
1666 +
1667 + <li class="col-12 col-lg-6 px-0">
1668 + <label class="checkbox mb-2 radio">
1669 + <input
1670 + id="availability-6"
1671 + class="filter-value"
1672 + name="availability"
1673 + value="1798761600"
1674 + type="radio"
1675 +
1676 + onclick='updateButtonLabel("availability", "6", "janvier 2027", "Disponibilités", "True");'
1677 + />
1678 + <span class="checkmark"></span>
1679 + janvier 2027
1680 + </label>
1681 + </li>
1682 +
1683 + <li class="col-12 col-lg-6 px-0">
1684 + <label class="checkbox mb-2 radio">
1685 + <input
1686 + id="availability-7"
1687 + class="filter-value"
1688 + name="availability"
1689 + value="1801440000"
1690 + type="radio"
1691 +
1692 + onclick='updateButtonLabel("availability", "7", "février 2027", "Disponibilités", "True");'
1693 + />
1694 + <span class="checkmark"></span>
1695 + février 2027
1696 + </label>
1697 + </li>
1698 +
1699 + <li class="col-12 col-lg-6 px-0">
1700 + <label class="checkbox mb-2 radio">
1701 + <input
1702 + id="availability-8"
1703 + class="filter-value"
1704 + name="availability"
1705 + value="1803859200"
1706 + type="radio"
1707 +
1708 + onclick='updateButtonLabel("availability", "8", "mars 2027", "Disponibilités", "True");'
1709 + />
1710 + <span class="checkmark"></span>
1711 + mars 2027
1712 + </label>
1713 + </li>
1714 +
1715 + </ul>
1716 + </div>
1717 +
1718 + </div>
1719 +</div>
1720 +
1721 +<script>
1722 + function updateButtonLabel(name, counter, value, defaultValue, isRadioButton) {
1723 + const label = document.getElementById(`label-${ name }`);
1724 + if (label.innerHTML === defaultValue) label.innerHTML = "";
1725 +
1726 + const input = document.getElementById(`${ name }-${counter}`);
1727 +
1728 + if (input.checked) {
1729 + if (label.innerHTML && !isRadioButton) label.innerHTML = `${label.innerHTML}, ${value}`;
1730 + else label.innerHTML = value;
1731 + } else {
1732 + if (label.innerHTML.includes(`${value}, `)) label.innerHTML = label.innerHTML.replace(`${value}, `, "");
1733 + else label.innerHTML = label.innerHTML.replace(value, "");
1734 + }
1735 +
1736 + if (!label.innerHTML.trim()) label.innerHTML = defaultValue;
1737 + }
1738 +
1739 +
1740 +</script>
1741 +
1742 +
1743 +
1744 +
1745 +
1746 +
1747 +<div class="search-button-container position-static">
1748 + <button
1749 +
1750 + type="button"
1751 + class="search-button btn rounded-pill w-100"
1752 + data-toggle="toggle"
1753 + >
1754 + <span id="label-conveniences">Commodités</span>
1755 + <img src="/static/images/icons/add-filter.svg" alt="+">
1756 + </button>
1757 + <div class="search-input w-100 mw-100 d-none">
1758 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
1759 + Fermer
1760 + </button>
1761 +
1762 + <div class="row search-list">
1763 + <ul class="list-unstyled d-flex flex-wrap col-12 m-0">
1764 +
1765 + <li class="col-12 col-lg-6 px-0">
1766 + <label class="checkbox mb-2 ">
1767 + <input
1768 + id="conveniences-1"
1769 + class="filter-value"
1770 + name="conveniences"
1771 + value="27"
1772 + type="checkbox"
1773 +
1774 + onclick='updateButtonLabel("conveniences", "1", "Accessible aux personnes handicapées", "Commodités", "");'
1775 + />
1776 + <span class="checkmark"></span>
1777 + Accessible aux personnes handicapées
1778 + </label>
1779 + </li>
1780 +
1781 + <li class="col-12 col-lg-6 px-0">
1782 + <label class="checkbox mb-2 ">
1783 + <input
1784 + id="conveniences-2"
1785 + class="filter-value"
1786 + name="conveniences"
1787 + value="5"
1788 + type="checkbox"
1789 +
1790 + onclick='updateButtonLabel("conveniences", "2", "Chauffage", "Commodités", "");'
1791 + />
1792 + <span class="checkmark"></span>
1793 + Chauffage
1794 + </label>
1795 + </li>
1796 +
1797 + <li class="col-12 col-lg-6 px-0">
1798 + <label class="checkbox mb-2 ">
1799 + <input
1800 + id="conveniences-3"
1801 + class="filter-value"
1802 + name="conveniences"
1803 + value="24"
1804 + type="checkbox"
1805 +
1806 + onclick='updateButtonLabel("conveniences", "3", "Climatiseur", "Commodités", "");'
1807 + />
1808 + <span class="checkmark"></span>
1809 + Climatiseur
1810 + </label>
1811 + </li>
1812 +
1813 + <li class="col-12 col-lg-6 px-0">
1814 + <label class="checkbox mb-2 ">
1815 + <input
1816 + id="conveniences-4"
1817 + class="filter-value"
1818 + name="conveniences"
1819 + value="3"
1820 + type="checkbox"
1821 +
1822 + onclick='updateButtonLabel("conveniences", "4", "Eau Chaude", "Commodités", "");'
1823 + />
1824 + <span class="checkmark"></span>
1825 + Eau Chaude
1826 + </label>
1827 + </li>
1828 +
1829 + <li class="col-12 col-lg-6 px-0">
1830 + <label class="checkbox mb-2 ">
1831 + <input
1832 + id="conveniences-5"
1833 + class="filter-value"
1834 + name="conveniences"
1835 + value="2"
1836 + type="checkbox"
1837 +
1838 + onclick='updateButtonLabel("conveniences", "5", "Électricité", "Commodités", "");'
1839 + />
1840 + <span class="checkmark"></span>
1841 + Électricité
1842 + </label>
1843 + </li>
1844 +
1845 + <li class="col-12 col-lg-6 px-0">
1846 + <label class="checkbox mb-2 ">
1847 + <input
1848 + id="conveniences-6"
1849 + class="filter-value"
1850 + name="conveniences"
1851 + value="11"
1852 + type="checkbox"
1853 +
1854 + onclick='updateButtonLabel("conveniences", "6", "Équipe de maintenance 24h", "Commodités", "");'
1855 + />
1856 + <span class="checkmark"></span>
1857 + Équipe de maintenance 24h
1858 + </label>
1859 + </li>
1860 +
1861 + <li class="col-12 col-lg-6 px-0">
1862 + <label class="checkbox mb-2 ">
1863 + <input
1864 + id="conveniences-7"
1865 + class="filter-value"
1866 + name="conveniences"
1867 + value="30"
1868 + type="checkbox"
1869 +
1870 + onclick='updateButtonLabel("conveniences", "7", "Lave-vaisselle", "Commodités", "");'
1871 + />
1872 + <span class="checkmark"></span>
1873 + Lave-vaisselle
1874 + </label>
1875 + </li>
1876 +
1877 + <li class="col-12 col-lg-6 px-0">
1878 + <label class="checkbox mb-2 ">
1879 + <input
1880 + id="conveniences-8"
1881 + class="filter-value"
1882 + name="conveniences"
1883 + value="26"
1884 + type="checkbox"
1885 +
1886 + onclick='updateButtonLabel("conveniences", "8", "Semi-meublé", "Commodités", "");'
1887 + />
1888 + <span class="checkmark"></span>
1889 + Semi-meublé
1890 + </label>
1891 + </li>
1892 +
1893 + <li class="col-12 col-lg-6 px-0">
1894 + <label class="checkbox mb-2 ">
1895 + <input
1896 + id="conveniences-9"
1897 + class="filter-value"
1898 + name="conveniences"
1899 + value="28"
1900 + type="checkbox"
1901 +
1902 + onclick='updateButtonLabel("conveniences", "9", "Stationnement extérieur", "Commodités", "");'
1903 + />
1904 + <span class="checkmark"></span>
1905 + Stationnement extérieur
1906 + </label>
1907 + </li>
1908 +
1909 + <li class="col-12 col-lg-6 px-0">
1910 + <label class="checkbox mb-2 ">
1911 + <input
1912 + id="conveniences-10"
1913 + class="filter-value"
1914 + name="conveniences"
1915 + value="29"
1916 + type="checkbox"
1917 +
1918 + onclick='updateButtonLabel("conveniences", "10", "Stationnement intérieur", "Commodités", "");'
1919 + />
1920 + <span class="checkmark"></span>
1921 + Stationnement intérieur
1922 + </label>
1923 + </li>
1924 +
1925 + </ul>
1926 + </div>
1927 +
1928 + </div>
1929 +</div>
1930 +
1931 +<script>
1932 + function updateButtonLabel(name, counter, value, defaultValue, isRadioButton) {
1933 + const label = document.getElementById(`label-${ name }`);
1934 + if (label.innerHTML === defaultValue) label.innerHTML = "";
1935 +
1936 + const input = document.getElementById(`${ name }-${counter}`);
1937 +
1938 + if (input.checked) {
1939 + if (label.innerHTML && !isRadioButton) label.innerHTML = `${label.innerHTML}, ${value}`;
1940 + else label.innerHTML = value;
1941 + } else {
1942 + if (label.innerHTML.includes(`${value}, `)) label.innerHTML = label.innerHTML.replace(`${value}, `, "");
1943 + else label.innerHTML = label.innerHTML.replace(value, "");
1944 + }
1945 +
1946 + if (!label.innerHTML.trim()) label.innerHTML = defaultValue;
1947 + }
1948 +
1949 +
1950 +</script>
1951 +
1952 +
1953 + <button type="submit" class="btn btn-primary search-bar-btn" id="btn-search">
1954 + <span>Rechercher</span>
1955 + </button>
1956 +</div>
1957 +
1958 + </div>
1959 +
1960 + </div>
1961 + </div>
1962 +</div>
1963 +
1964 + <div class="container">
1965 + <div class="row pt-4">
1966 + <div class="order-1 order-md-0 col-md-6 d-flex flex-wrap-reverse justify-content-between align-items-end">
1967 + <h2 class="mb-0">
1968 +
1969 + 6 logements à louer
1970 +
1971 + </h2>
1972 +
1973 +
1974 + <div class="sort-indicator d-flex flex-column mb-2 mb-sm-0">
1975 + <span class="sort-indicator-title text-gray-light">Trier par : </span>
1976 + <a class="sort-indicator-value text-primary" href="/louer-appartement-quebec/?boroughs=6&amp;sort=asc">
1977 + <span class="mr-1">Prix&nbsp;
1978 +
1979 + <img src="/static/images/icons/sort.svg" alt="sort" />
1980 +
1981 + </span>
1982 + </a>
1983 + </div>
1984 +
1985 +
1986 + </div>
1987 + <div class="col-md-6 d-flex justify-content-between justify-content-md-end align-items-end mb-4 mb-md-0">
1988 + <label class="checkbox">
1989 + <input type="checkbox" id="featured" name="featured" >
1990 + <span class="checkmark"></span>
1991 + En vedette
1992 + </label>
1993 +
1994 +
1995 +
1996 +<a class="ml-md-5 nav-search-reset-all reset-button d-flex align-items-center" href="/louer-appartement-quebec/">
1997 + <i class="fas fa-sync-alt text-primary" aria-hidden="true"></i>
1998 + Réinitialiser les filtres
1999 +</a>
2000 +
2001 + </div>
2002 + </div>
2003 + </div>
2004 +</form>
2005 +
2006 +<div class="container pb-5">
2007 + <div class="row">
2008 + <div class="col-12 mt-2 mt-2">
2009 + <div class="row">
2010 + <div class="col-md-6 pt-4">
2011 +
2012 +
2013 +
2014 +
2015 +<div class="row">
2016 +
2017 + <script type="application/ld+json">
2018 + {
2019 + "@context": "http://schema.org",
2020 + "@type": "ApartmentComplex",
2021 + "description": "Appartements à louer",
2022 + "address": "12385 rue des Fous-de-Bassan Québec Québec G2B0R8",
2023 + "latitude": "None",
2024 + "longitude": "None",
2025 + "mainEntityOfPage": {
2026 + "@type": "WebPage",
2027 + "@id": "lafrance-mathieu.com/louer-appartement-quebec/324"
2028 + },
2029 + "photo": {
2030 + "@type": "ImageObject",
2031 + "url": "lafrance-mathieu.comhttps://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/facade_c8970106-bb92-11ee-a8ce-12b146e9616b.jpeg"
2032 + }
2033 + }
2034 + </script>
2035 + <a
2036 + href="/logement/324"
2037 + class="appartments card border-white col-sm-6 mb-4"
2038 + data-type="3"
2039 + data-borough="6"
2040 + >
2041 +
2042 +
2043 +
2044 +
2045 +<script>
2046 + function displayNowAvailableBubble(buildingId) {
2047 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2048 + nowAvailableBubble.classList.remove("d-none");
2049 + }
2050 +</script>
2051 +
2052 +<div class="row">
2053 +
2054 +
2055 +
2056 + <img src alt="" onerror="displayNowAvailableBubble(324);"></img>
2057 +
2058 +
2059 +
2060 +
2061 + <div class="now-available-bubble d-none" id="now-available-bubble-324">
2062 + <p class="text-white m-0">Disponible</p>
2063 + </div>
2064 +
2065 +
2066 + <div class="col-6 apartment-col">
2067 + <div class="row">
2068 + <div class="col-12 pr-0">
2069 +
2070 + <img
2071 + class="rounded-left apartment-image"
2072 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/1_4c13f0dc-bb9a-11ee-96a4-12b146e9616b.jpeg"
2073 + alt="unit image"
2074 + width=100%
2075 + height=232px
2076 + />
2077 +
2078 + </div>
2079 + </div>
2080 + </div>
2081 +
2082 +
2083 + <div class="col-6 apartment-col">
2084 + <div class="row">
2085 + <div class="col-12 pl-0">
2086 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/2_4faf90de-bb9a-11ee-96a4-12b146e9616b.jpeg"
2087 + alt="unit image" width="100%" height="116px">
2088 + </div>
2089 + </div>
2090 +
2091 + <div class="row">
2092 + <div class="col-12 pl-0">
2093 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/3_538cea80-bb9a-11ee-96a4-12b146e9616b.jpeg"
2094 + alt="unit image" width=100% height=116px>
2095 + </div>
2096 + </div>
2097 +
2098 + </div>
2099 +
2100 +
2101 +
2102 +</div>
2103 +
2104 +
2105 +
2106 +
2107 +
2108 +<div class="row mt-4">
2109 + <div class="col-12">
2110 + <div class="card-body p-0 text-left">
2111 + <h5 class="apartment-borough">Appartements &middot; Neufchatel</h5>
2112 + <p class="apartment-address mb-1">12385 rue des Fous-de-Bassan</p>
2113 +
2114 +
2115 + <div class="row">
2116 + <div class="col-7">
2117 + <p class="apartment-infos mb-0">
2118 +
2119 + 4½ à partir de 1550$
2120 +
2121 + </p>
2122 + <p class="apartment-availability footnotes">
2123 + Libre immédiatement
2124 + </p>
2125 + </div>
2126 + <div class="col-5 text-right">
2127 +
2128 +
2129 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2130 +
2131 +
2132 +
2133 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_ac.png" alt="Climatiseur" height=18px width=18px>
2134 +
2135 +
2136 +
2137 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2138 +
2139 +
2140 +
2141 + </div>
2142 + </div>
2143 +
2144 +
2145 +
2146 + </div>
2147 + </div>
2148 +</div>
2149 +
2150 + </a>
2151 +
2152 + <script type="application/ld+json">
2153 + {
2154 + "@context": "http://schema.org",
2155 + "@type": "ApartmentComplex",
2156 + "description": "Appartements à louer",
2157 + "address": "9115, rue St-Charles Québec Québec G2B2L4",
2158 + "latitude": "46,846393",
2159 + "longitude": "-71,322663",
2160 + "mainEntityOfPage": {
2161 + "@type": "WebPage",
2162 + "@id": "lafrance-mathieu.com/louer-appartement-quebec/129"
2163 + },
2164 + "photo": {
2165 + "@type": "ImageObject",
2166 + "url": "lafrance-mathieu.comhttps://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD2_a12b87f4-b169-11ea-8747-1275881fc0b8.jpg"
2167 + }
2168 + }
2169 + </script>
2170 + <a
2171 + href="/logement/129"
2172 + class="appartments card border-white col-sm-6 mb-4"
2173 + data-type="3"
2174 + data-borough="6"
2175 + >
2176 +
2177 +
2178 +
2179 +
2180 +<script>
2181 + function displayNowAvailableBubble(buildingId) {
2182 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2183 + nowAvailableBubble.classList.remove("d-none");
2184 + }
2185 +</script>
2186 +
2187 +<div class="row">
2188 +
2189 +
2190 +
2191 + <img src alt="" onerror="displayNowAvailableBubble(129);"></img>
2192 +
2193 +
2194 +
2195 +
2196 + <div class="now-available-bubble d-none" id="now-available-bubble-129">
2197 + <p class="text-white m-0">Disponible</p>
2198 + </div>
2199 +
2200 +
2201 + <div class="col-6 apartment-col">
2202 + <div class="row">
2203 + <div class="col-12 pr-0">
2204 +
2205 + <img
2206 + class="rounded-left apartment-image"
2207 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD12_43aee954-b169-11ea-bca8-1275881fc0b8.jpg"
2208 + alt="unit image"
2209 + width=100%
2210 + height=232px
2211 + />
2212 +
2213 + </div>
2214 + </div>
2215 + </div>
2216 +
2217 +
2218 + <div class="col-6 apartment-col">
2219 + <div class="row">
2220 + <div class="col-12 pl-0">
2221 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD15_43dec1ec-b169-11ea-bca8-1275881fc0b8.jpg"
2222 + alt="unit image" width="100%" height="116px">
2223 + </div>
2224 + </div>
2225 +
2226 + <div class="row">
2227 + <div class="col-12 pl-0">
2228 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD21_44047df6-b169-11ea-bca8-1275881fc0b8.jpg"
2229 + alt="unit image" width=100% height=116px>
2230 + </div>
2231 + </div>
2232 +
2233 + </div>
2234 +
2235 +
2236 +
2237 +</div>
2238 +
2239 +
2240 +
2241 +
2242 +
2243 +<div class="row mt-4">
2244 + <div class="col-12">
2245 + <div class="card-body p-0 text-left">
2246 + <h5 class="apartment-borough">Appartements &middot; Neufchatel</h5>
2247 + <p class="apartment-address mb-1">9115, rue St-Charles</p>
2248 +
2249 +
2250 + <div class="row">
2251 + <div class="col-7">
2252 + <p class="apartment-infos mb-0">
2253 +
2254 + 4½ à partir de 1250$
2255 +
2256 + </p>
2257 + <p class="apartment-availability footnotes">
2258 + Libre immédiatement
2259 + </p>
2260 + </div>
2261 + <div class="col-5 text-right">
2262 +
2263 +
2264 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2265 +
2266 +
2267 +
2268 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2269 +
2270 +
2271 +
2272 + </div>
2273 + </div>
2274 +
2275 +
2276 +
2277 + </div>
2278 + </div>
2279 +</div>
2280 +
2281 + </a>
2282 +
2283 + <script type="application/ld+json">
2284 + {
2285 + "@context": "http://schema.org",
2286 + "@type": "ApartmentComplex",
2287 + "description": "Appartements à louer",
2288 + "address": "1571, rue Pierre-Corneille Québec Québec G2E4W9",
2289 + "latitude": "46,820422",
2290 + "longitude": "-71,365621",
2291 + "mainEntityOfPage": {
2292 + "@type": "WebPage",
2293 + "@id": "lafrance-mathieu.com/louer-appartement-quebec/159"
2294 + },
2295 + "photo": {
2296 + "@type": "ImageObject",
2297 + "url": "lafrance-mathieu.comhttps://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD49_ac16dbbc-b17f-11ea-8fd9-1275881fc0b8.jpg"
2298 + }
2299 + }
2300 + </script>
2301 + <a
2302 + href="/logement/159"
2303 + class="appartments card border-white col-sm-6 mb-4"
2304 + data-type="3"
2305 + data-borough="6"
2306 + >
2307 +
2308 +
2309 +
2310 +
2311 +<script>
2312 + function displayNowAvailableBubble(buildingId) {
2313 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2314 + nowAvailableBubble.classList.remove("d-none");
2315 + }
2316 +</script>
2317 +
2318 +<div class="row">
2319 +
2320 +
2321 +
2322 + <img src alt="" onerror="displayNowAvailableBubble(159);"></img>
2323 +
2324 +
2325 +
2326 +
2327 + <div class="now-available-bubble d-none" id="now-available-bubble-159">
2328 + <p class="text-white m-0">Disponible</p>
2329 + </div>
2330 +
2331 +
2332 + <div class="col-6 apartment-col">
2333 + <div class="row">
2334 + <div class="col-12 pr-0">
2335 +
2336 + <img
2337 + class="rounded-left apartment-image"
2338 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD1_f10cac56-bfa3-11ea-abf4-0e226705be53.jpg"
2339 + alt="unit image"
2340 + width=100%
2341 + height=232px
2342 + />
2343 +
2344 + </div>
2345 + </div>
2346 + </div>
2347 +
2348 +
2349 + <div class="col-6 apartment-col">
2350 + <div class="row">
2351 + <div class="col-12 pl-0">
2352 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD2_f1f64032-bfa3-11ea-abf4-0e226705be53.jpg"
2353 + alt="unit image" width="100%" height="116px">
2354 + </div>
2355 + </div>
2356 +
2357 + <div class="row">
2358 + <div class="col-12 pl-0">
2359 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD3_f2d355d0-bfa3-11ea-abf4-0e226705be53.jpg"
2360 + alt="unit image" width=100% height=116px>
2361 + </div>
2362 + </div>
2363 +
2364 + </div>
2365 +
2366 +
2367 +
2368 +</div>
2369 +
2370 +
2371 +
2372 +
2373 +
2374 +<div class="row mt-4">
2375 + <div class="col-12">
2376 + <div class="card-body p-0 text-left">
2377 + <h5 class="apartment-borough">Appartements &middot; Neufchatel</h5>
2378 + <p class="apartment-address mb-1">1571, rue Pierre-Corneille</p>
2379 +
2380 +
2381 + <div class="row">
2382 + <div class="col-7">
2383 + <p class="apartment-infos mb-0">
2384 +
2385 + 4½ à partir de 1190$
2386 +
2387 + </p>
2388 + <p class="apartment-availability footnotes">
2389 + Libre immédiatement
2390 + </p>
2391 + </div>
2392 + <div class="col-5 text-right">
2393 +
2394 +
2395 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2396 +
2397 +
2398 +
2399 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2400 +
2401 +
2402 +
2403 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2404 +
2405 +
2406 +
2407 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_appliances_alt.png" alt="Lave-vaisselle" height=18px width=18px>
2408 +
2409 +
2410 +
2411 + </div>
2412 + </div>
2413 +
2414 +
2415 +
2416 + </div>
2417 + </div>
2418 +</div>
2419 +
2420 + </a>
2421 +
2422 + <script type="application/ld+json">
2423 + {
2424 + "@context": "http://schema.org",
2425 + "@type": "ApartmentComplex",
2426 + "description": "Appartements à louer",
2427 + "address": "1573, rue Pierre-Corneille Québec Québec G2E4W9",
2428 + "latitude": "46,820519",
2429 + "longitude": "-71,365499",
2430 + "mainEntityOfPage": {
2431 + "@type": "WebPage",
2432 + "@id": "lafrance-mathieu.com/louer-appartement-quebec/160"
2433 + },
2434 + "photo": {
2435 + "@type": "ImageObject",
2436 + "url": "lafrance-mathieu.comhttps://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD49_4c147512-b17f-11ea-99b2-1275881fc0b8.jpg"
2437 + }
2438 + }
2439 + </script>
2440 + <a
2441 + href="/logement/160"
2442 + class="appartments card border-white col-sm-6 mb-4"
2443 + data-type="3"
2444 + data-borough="6"
2445 + >
2446 +
2447 +
2448 +
2449 +
2450 +<script>
2451 + function displayNowAvailableBubble(buildingId) {
2452 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2453 + nowAvailableBubble.classList.remove("d-none");
2454 + }
2455 +</script>
2456 +
2457 +<div class="row">
2458 +
2459 +
2460 +
2461 + <img src alt="" onerror="displayNowAvailableBubble(160);"></img>
2462 +
2463 +
2464 +
2465 +
2466 + <div class="now-available-bubble d-none" id="now-available-bubble-160">
2467 + <p class="text-white m-0">Disponible</p>
2468 + </div>
2469 +
2470 +
2471 + <div class="col-6 apartment-col">
2472 + <div class="row">
2473 + <div class="col-12 pr-0">
2474 +
2475 + <img
2476 + class="rounded-left apartment-image"
2477 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD1_54749d22-bfa3-11ea-9b14-0e226705be53.jpg"
2478 + alt="unit image"
2479 + width=100%
2480 + height=232px
2481 + />
2482 +
2483 + </div>
2484 + </div>
2485 + </div>
2486 +
2487 +
2488 + <div class="col-6 apartment-col">
2489 + <div class="row">
2490 + <div class="col-12 pl-0">
2491 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD2_5554869e-bfa3-11ea-9b14-0e226705be53.jpg"
2492 + alt="unit image" width="100%" height="116px">
2493 + </div>
2494 + </div>
2495 +
2496 + <div class="row">
2497 + <div class="col-12 pl-0">
2498 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD3_562eca5c-bfa3-11ea-9b14-0e226705be53.jpg"
2499 + alt="unit image" width=100% height=116px>
2500 + </div>
2501 + </div>
2502 +
2503 + </div>
2504 +
2505 +
2506 +
2507 +</div>
2508 +
2509 +
2510 +
2511 +
2512 +
2513 +<div class="row mt-4">
2514 + <div class="col-12">
2515 + <div class="card-body p-0 text-left">
2516 + <h5 class="apartment-borough">Appartements &middot; Neufchatel</h5>
2517 + <p class="apartment-address mb-1">1573, rue Pierre-Corneille</p>
2518 +
2519 +
2520 + <div class="row">
2521 + <div class="col-7">
2522 + <p class="apartment-infos mb-0">
2523 +
2524 + 4½ à partir de 1250$
2525 +
2526 + </p>
2527 + <p class="apartment-availability footnotes">
2528 + Libre immédiatement
2529 + </p>
2530 + </div>
2531 + <div class="col-5 text-right">
2532 +
2533 +
2534 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2535 +
2536 +
2537 +
2538 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2539 +
2540 +
2541 +
2542 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2543 +
2544 +
2545 +
2546 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_appliances_alt.png" alt="Lave-vaisselle" height=18px width=18px>
2547 +
2548 +
2549 +
2550 + </div>
2551 + </div>
2552 +
2553 +
2554 +
2555 + </div>
2556 + </div>
2557 +</div>
2558 +
2559 + </a>
2560 +
2561 + <script type="application/ld+json">
2562 + {
2563 + "@context": "http://schema.org",
2564 + "@type": "ApartmentComplex",
2565 + "description": "Appartements à louer",
2566 + "address": "9105, rue St-Charles Québec Québec G2B2L4",
2567 + "latitude": "46,846366",
2568 + "longitude": "-71,322645",
2569 + "mainEntityOfPage": {
2570 + "@type": "WebPage",
2571 + "@id": "lafrance-mathieu.com/louer-appartement-quebec/128"
2572 + },
2573 + "photo": {
2574 + "@type": "ImageObject",
2575 + "url": "lafrance-mathieu.comhttps://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD3_8c426dd0-b169-11ea-8d3f-1275881fc0b8.jpg"
2576 + }
2577 + }
2578 + </script>
2579 + <a
2580 + href="/logement/128"
2581 + class="appartments card border-white col-sm-6 mb-4"
2582 + data-type="3"
2583 + data-borough="6"
2584 + >
2585 +
2586 +
2587 +
2588 +
2589 +<script>
2590 + function displayNowAvailableBubble(buildingId) {
2591 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2592 + nowAvailableBubble.classList.remove("d-none");
2593 + }
2594 +</script>
2595 +
2596 +<div class="row">
2597 +
2598 +
2599 +
2600 +
2601 + <div class="now-available-bubble d-none" id="now-available-bubble-128">
2602 + <p class="text-white m-0">Disponible</p>
2603 + </div>
2604 +
2605 +
2606 + <div class="col-6 apartment-col">
2607 + <div class="row">
2608 + <div class="col-12 pr-0">
2609 +
2610 + <img
2611 + class="rounded-left apartment-image"
2612 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD12_14596f98-b16a-11ea-8d3f-1275881fc0b8.jpg"
2613 + alt="unit image"
2614 + width=100%
2615 + height=232px
2616 + />
2617 +
2618 + </div>
2619 + </div>
2620 + </div>
2621 +
2622 +
2623 + <div class="col-6 apartment-col">
2624 + <div class="row">
2625 + <div class="col-12 pl-0">
2626 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD13_147e95ca-b16a-11ea-8d3f-1275881fc0b8.jpg"
2627 + alt="unit image" width="100%" height="116px">
2628 + </div>
2629 + </div>
2630 +
2631 + <div class="row">
2632 + <div class="col-12 pl-0">
2633 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD15_149cf704-b16a-11ea-8d3f-1275881fc0b8.jpg"
2634 + alt="unit image" width=100% height=116px>
2635 + </div>
2636 + </div>
2637 +
2638 + </div>
2639 +
2640 +
2641 +
2642 +</div>
2643 +
2644 +
2645 +
2646 +
2647 +
2648 +<div class="row mt-4">
2649 + <div class="col-12">
2650 + <div class="card-body p-0 text-left">
2651 + <h5 class="apartment-borough">Appartements &middot; Neufchatel</h5>
2652 + <p class="apartment-address mb-1">9105, rue St-Charles</p>
2653 +
2654 +
2655 + <div class="row">
2656 + <div class="col-7">
2657 + <p class="apartment-infos mb-0">
2658 +
2659 + 4½ à partir de 1250$
2660 +
2661 + </p>
2662 + <p class="apartment-availability footnotes">
2663 + septembre 2026
2664 + </p>
2665 + </div>
2666 + <div class="col-5 text-right">
2667 +
2668 +
2669 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2670 +
2671 +
2672 +
2673 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2674 +
2675 +
2676 +
2677 + </div>
2678 + </div>
2679 +
2680 +
2681 +
2682 + </div>
2683 + </div>
2684 +</div>
2685 +
2686 + </a>
2687 +
2688 + <script type="application/ld+json">
2689 + {
2690 + "@context": "http://schema.org",
2691 + "@type": "ApartmentComplex",
2692 + "description": "Appartements à louer",
2693 + "address": "9035 St-Charles Québec Québec G2B2L4",
2694 + "latitude": "None",
2695 + "longitude": "None",
2696 + "mainEntityOfPage": {
2697 + "@type": "WebPage",
2698 + "@id": "lafrance-mathieu.com/louer-appartement-quebec/293"
2699 + },
2700 + "photo": {
2701 + "@type": "ImageObject",
2702 + "url": "lafrance-mathieu.comhttps://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD-10_711fc5cc-8dc5-11ec-8222-0ad72719383b.jpg"
2703 + }
2704 + }
2705 + </script>
2706 + <a
2707 + href="/logement/293"
2708 + class="appartments card border-white col-sm-6 mb-4"
2709 + data-type="3"
2710 + data-borough="6"
2711 + >
2712 +
2713 +
2714 +
2715 +
2716 +<script>
2717 + function displayNowAvailableBubble(buildingId) {
2718 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2719 + nowAvailableBubble.classList.remove("d-none");
2720 + }
2721 +</script>
2722 +
2723 +<div class="row">
2724 +
2725 +
2726 +
2727 +
2728 + <div class="now-available-bubble d-none" id="now-available-bubble-293">
2729 + <p class="text-white m-0">Disponible</p>
2730 + </div>
2731 +
2732 +
2733 + <div class="col-6 apartment-col">
2734 + <div class="row">
2735 + <div class="col-12 pr-0">
2736 +
2737 + <img
2738 + class="rounded-left apartment-image"
2739 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD-3_bc034fda-8dc7-11ec-8f0d-127ec6393897.jpg"
2740 + alt="unit image"
2741 + width=100%
2742 + height=232px
2743 + />
2744 +
2745 + </div>
2746 + </div>
2747 + </div>
2748 +
2749 +
2750 + <div class="col-6 apartment-col">
2751 + <div class="row">
2752 + <div class="col-12 pl-0">
2753 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD-1_bf901c50-8dc7-11ec-8f0d-127ec6393897.jpg"
2754 + alt="unit image" width="100%" height="116px">
2755 + </div>
2756 + </div>
2757 +
2758 + <div class="row">
2759 + <div class="col-12 pl-0">
2760 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD-2_c2f4e128-8dc7-11ec-8f0d-127ec6393897.jpg"
2761 + alt="unit image" width=100% height=116px>
2762 + </div>
2763 + </div>
2764 +
2765 + </div>
2766 +
2767 +
2768 +
2769 +</div>
2770 +
2771 +
2772 +
2773 +
2774 +
2775 +<div class="row mt-4">
2776 + <div class="col-12">
2777 + <div class="card-body p-0 text-left">
2778 + <h5 class="apartment-borough">Appartements &middot; Neufchatel</h5>
2779 + <p class="apartment-address mb-1">9035 St-Charles</p>
2780 +
2781 +
2782 + <div class="row">
2783 + <div class="col-7">
2784 + <p class="apartment-infos mb-0">
2785 +
2786 + 4½ à partir de 1250$
2787 +
2788 + </p>
2789 + <p class="apartment-availability footnotes">
2790 + septembre 2026
2791 + </p>
2792 + </div>
2793 + <div class="col-5 text-right">
2794 +
2795 +
2796 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2797 +
2798 +
2799 +
2800 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2801 +
2802 +
2803 +
2804 + </div>
2805 + </div>
2806 +
2807 +
2808 +
2809 + </div>
2810 + </div>
2811 +</div>
2812 +
2813 + </a>
2814 +
2815 +</div>
2816 +
2817 +
2818 +
2819 +
2820 +
2821 +
2822 +
2823 +
2824 +
2825 +<div class="row my-5 ">
2826 + <h1 class="col-12 text-center mb-3 new-title">
2827 + Explorer les logements à louer par secteurs
2828 + </h1>
2829 + <div class="w-100 mb-4"><div class="diamond-separator"><div class="diamond-container"><div class="diamond"></div></div></div></div>
2830 +
2831 + <div class="col-md-12 left-align-slick">
2832 + <div class="centered--left multiple-items-slick-arrow--left"></div>
2833 + <div class="slick-carousel" data-items="4">
2834 +
2835 + <a
2836 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2837 + data-borough="3"
2838 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/799px-Beauport_QC.jpeg');"
2839 + href="/louer-appartement-quebec/?boroughs=3"
2840 + >
2841 + <div class="bottom--middle d-flex flex-column pb-3">
2842 + <p class="thumbnail-title text-white mb-1">Beauport</p>
2843 + <span class="text-white very-small-paragraph">
2844 + 9
2845 + Logements
2846 + </span>
2847 + </div>
2848 + <div class="tile-gradient rounded"></div>
2849 + </a>
2850 +
2851 + <a
2852 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2853 + data-borough="8"
2854 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Quebec-Parc_des_Moulins.jpeg');"
2855 + href="/louer-appartement-quebec/?boroughs=8"
2856 + >
2857 + <div class="bottom--middle d-flex flex-column pb-3">
2858 + <p class="thumbnail-title text-white mb-1">Charlesbourg</p>
2859 + <span class="text-white very-small-paragraph">
2860 + 6
2861 + Logements
2862 + </span>
2863 + </div>
2864 + <div class="tile-gradient rounded"></div>
2865 + </a>
2866 +
2867 + <a
2868 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2869 + data-borough="9"
2870 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Ancienne_Lorette_church_1.jpg');"
2871 + href="/louer-appartement-quebec/?boroughs=9"
2872 + >
2873 + <div class="bottom--middle d-flex flex-column pb-3">
2874 + <p class="thumbnail-title text-white mb-1">L&#x27;Ancienne-Lorette</p>
2875 + <span class="text-white very-small-paragraph">
2876 + 1
2877 + Logement
2878 + </span>
2879 + </div>
2880 + <div class="tile-gradient rounded"></div>
2881 + </a>
2882 +
2883 + <a
2884 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2885 + data-borough="10"
2886 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/825-Lebourgneuf-3.jpg');"
2887 + href="/louer-appartement-quebec/?boroughs=10"
2888 + >
2889 + <div class="bottom--middle d-flex flex-column pb-3">
2890 + <p class="thumbnail-title text-white mb-1">Lebourgneuf</p>
2891 + <span class="text-white very-small-paragraph">
2892 + 3
2893 + Logements
2894 + </span>
2895 + </div>
2896 + <div class="tile-gradient rounded"></div>
2897 + </a>
2898 +
2899 + <a
2900 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2901 + data-borough="4"
2902 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Rue_de_Duberger.JPG');"
2903 + href="/louer-appartement-quebec/?boroughs=4"
2904 + >
2905 + <div class="bottom--middle d-flex flex-column pb-3">
2906 + <p class="thumbnail-title text-white mb-1">Les Saules</p>
2907 + <span class="text-white very-small-paragraph">
2908 + 9
2909 + Logements
2910 + </span>
2911 + </div>
2912 + <div class="tile-gradient rounded"></div>
2913 + </a>
2914 +
2915 + <a
2916 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2917 + data-borough="14"
2918 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/');"
2919 + href="/louer-appartement-quebec/?boroughs=14"
2920 + >
2921 + <div class="bottom--middle d-flex flex-column pb-3">
2922 + <p class="thumbnail-title text-white mb-1">Lévis</p>
2923 + <span class="text-white very-small-paragraph">
2924 + 4
2925 + Logements
2926 + </span>
2927 + </div>
2928 + <div class="tile-gradient rounded"></div>
2929 + </a>
2930 +
2931 + <a
2932 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2933 + data-borough="1"
2934 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/photo1web.jpg');"
2935 + href="/louer-appartement-quebec/?boroughs=1"
2936 + >
2937 + <div class="bottom--middle d-flex flex-column pb-3">
2938 + <p class="thumbnail-title text-white mb-1">Limoilou</p>
2939 + <span class="text-white very-small-paragraph">
2940 + 3
2941 + Logements
2942 + </span>
2943 + </div>
2944 + <div class="tile-gradient rounded"></div>
2945 + </a>
2946 +
2947 + <a
2948 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2949 + data-borough="15"
2950 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Capture_Loretteville_62833718-00b7-11ee-b4cd-0aa8d57fe613.JPG');"
2951 + href="/louer-appartement-quebec/?boroughs=15"
2952 + >
2953 + <div class="bottom--middle d-flex flex-column pb-3">
2954 + <p class="thumbnail-title text-white mb-1">Loretteville</p>
2955 + <span class="text-white very-small-paragraph">
2956 + 1
2957 + Logement
2958 + </span>
2959 + </div>
2960 + <div class="tile-gradient rounded"></div>
2961 + </a>
2962 +
2963 + <a
2964 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2965 + data-borough="6"
2966 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/McDo-Neufchatel-LOrmiere-100319.jpg');"
2967 + href="/louer-appartement-quebec/?boroughs=6"
2968 + >
2969 + <div class="bottom--middle d-flex flex-column pb-3">
2970 + <p class="thumbnail-title text-white mb-1">Neufchatel</p>
2971 + <span class="text-white very-small-paragraph">
2972 + 6
2973 + Logements
2974 + </span>
2975 + </div>
2976 + <div class="tile-gradient rounded"></div>
2977 + </a>
2978 +
2979 + <a
2980 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2981 + data-borough="12"
2982 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/49d7b304030f13d829218118b51cfaa6.jpg_1200x630.jpg');"
2983 + href="/louer-appartement-quebec/?boroughs=12"
2984 + >
2985 + <div class="bottom--middle d-flex flex-column pb-3">
2986 + <p class="thumbnail-title text-white mb-1">Québec</p>
2987 + <span class="text-white very-small-paragraph">
2988 + 2
2989 + Logements
2990 + </span>
2991 + </div>
2992 + <div class="tile-gradient rounded"></div>
2993 + </a>
2994 +
2995 + <a
2996 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2997 + data-borough="16"
2998 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/00000000667_9c1dd4e2-00b7-11ee-b4cd-0aa8d57fe613.jpg');"
2999 + href="/louer-appartement-quebec/?boroughs=16"
3000 + >
3001 + <div class="bottom--middle d-flex flex-column pb-3">
3002 + <p class="thumbnail-title text-white mb-1">Saint-Augustin-de-Desmaures</p>
3003 + <span class="text-white very-small-paragraph">
3004 + 10
3005 + Logements
3006 + </span>
3007 + </div>
3008 + <div class="tile-gradient rounded"></div>
3009 + </a>
3010 +
3011 + <a
3012 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
3013 + data-borough="13"
3014 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/');"
3015 + href="/louer-appartement-quebec/?boroughs=13"
3016 + >
3017 + <div class="bottom--middle d-flex flex-column pb-3">
3018 + <p class="thumbnail-title text-white mb-1">St-Roch</p>
3019 + <span class="text-white very-small-paragraph">
3020 + 1
3021 + Logement
3022 + </span>
3023 + </div>
3024 + <div class="tile-gradient rounded"></div>
3025 + </a>
3026 +
3027 + <a
3028 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
3029 + data-borough="5"
3030 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/photo-Place-ste-foy-01_3c5c9397-5056-a36a-072cdccbffa30859.jpg');"
3031 + href="/louer-appartement-quebec/?boroughs=5"
3032 + >
3033 + <div class="bottom--middle d-flex flex-column pb-3">
3034 + <p class="thumbnail-title text-white mb-1">Ste-Foy</p>
3035 + <span class="text-white very-small-paragraph">
3036 + 14
3037 + Logements
3038 + </span>
3039 + </div>
3040 + <div class="tile-gradient rounded"></div>
3041 + </a>
3042 +
3043 + <a
3044 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
3045 + data-borough="17"
3046 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/');"
3047 + href="/louer-appartement-quebec/?boroughs=17"
3048 + >
3049 + <div class="bottom--middle d-flex flex-column pb-3">
3050 + <p class="thumbnail-title text-white mb-1">Val-Bélair</p>
3051 + <span class="text-white very-small-paragraph">
3052 + 2
3053 + Logements
3054 + </span>
3055 + </div>
3056 + <div class="tile-gradient rounded"></div>
3057 + </a>
3058 +
3059 + </div>
3060 + <div class="centered--right multiple-items-slick-arrow--right"></div>
3061 + </div>
3062 +</div>
3063 +
3064 +
3065 +
3066 +
3067 +
3068 +
3069 +
3070 + <div class="row mt-5 ">
3071 + <h2 class="col-12 text-center mb-4 text-primary">Nos logements en vedette</h2>
3072 + <div class="col-12 mb-3">
3073 +
3074 +
3075 +
3076 +<div class="row">
3077 +
3078 + <a
3079 + href="/logement/160"
3080 + class="appartments card border-white col-sm-6 mb-4 col-md-6 "
3081 + data-type="3"
3082 + data-borough="6"
3083 + >
3084 +
3085 +
3086 +
3087 +
3088 +<script>
3089 + function displayNowAvailableBubble(buildingId) {
3090 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
3091 + nowAvailableBubble.classList.remove("d-none");
3092 + }
3093 +</script>
3094 +
3095 +<div class="row">
3096 +
3097 +
3098 +
3099 + <img src alt="" onerror="displayNowAvailableBubble(160 + '-recommendation');"></img>
3100 +
3101 +
3102 +
3103 +
3104 + <div class="now-available-bubble d-none" id="now-available-bubble-160-recommendation">
3105 + <p class="text-white m-0">En vedette</p>
3106 + </div>
3107 +
3108 +
3109 + <div class="col-6 apartment-col">
3110 + <div class="row">
3111 + <div class="col-12 pr-0">
3112 +
3113 + <img
3114 + class="rounded-left apartment-image"
3115 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD1_54749d22-bfa3-11ea-9b14-0e226705be53.jpg"
3116 + alt="unit image"
3117 + width=100%
3118 + height=232px
3119 + />
3120 +
3121 + </div>
3122 + </div>
3123 + </div>
3124 +
3125 +
3126 + <div class="col-6 apartment-col">
3127 + <div class="row">
3128 + <div class="col-12 pl-0">
3129 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD2_5554869e-bfa3-11ea-9b14-0e226705be53.jpg"
3130 + alt="unit image" width="100%" height="116px">
3131 + </div>
3132 + </div>
3133 +
3134 + <div class="row">
3135 + <div class="col-12 pl-0">
3136 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD3_562eca5c-bfa3-11ea-9b14-0e226705be53.jpg"
3137 + alt="unit image" width=100% height=116px>
3138 + </div>
3139 + </div>
3140 +
3141 + </div>
3142 +
3143 +
3144 +
3145 +</div>
3146 +
3147 +
3148 +
3149 +
3150 +
3151 +<div class="row mt-4">
3152 + <div class="col-12">
3153 + <div class="card-body p-0 text-left">
3154 + <h5 class="apartment-borough">Appartements &middot; Neufchatel</h5>
3155 + <p class="apartment-address mb-1">1573, rue Pierre-Corneille</p>
3156 +
3157 +
3158 + <div class="row">
3159 + <div class="col-7">
3160 + <p class="apartment-infos mb-0">
3161 +
3162 + 4½ à partir de 1250$
3163 +
3164 + </p>
3165 + <p class="apartment-availability footnotes">
3166 + Libre immédiatement
3167 + </p>
3168 + </div>
3169 + <div class="col-5 text-right">
3170 +
3171 +
3172 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
3173 +
3174 +
3175 +
3176 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
3177 +
3178 +
3179 +
3180 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
3181 +
3182 +
3183 +
3184 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_appliances_alt.png" alt="Lave-vaisselle" height=18px width=18px>
3185 +
3186 +
3187 +
3188 + </div>
3189 + </div>
3190 +
3191 +
3192 +
3193 + </div>
3194 + </div>
3195 +</div>
3196 +
3197 + </a>
3198 +
3199 + <a
3200 + href="/logement/312"
3201 + class="appartments card border-white col-sm-6 mb-4 col-md-6 "
3202 + data-type="3"
3203 + data-borough="10"
3204 + >
3205 +
3206 +
3207 +
3208 +
3209 +<script>
3210 + function displayNowAvailableBubble(buildingId) {
3211 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
3212 + nowAvailableBubble.classList.remove("d-none");
3213 + }
3214 +</script>
3215 +
3216 +<div class="row">
3217 +
3218 +
3219 +
3220 + <img src alt="" onerror="displayNowAvailableBubble(312 + '-recommendation');"></img>
3221 +
3222 +
3223 +
3224 +
3225 + <div class="now-available-bubble d-none" id="now-available-bubble-312-recommendation">
3226 + <p class="text-white m-0">En vedette</p>
3227 + </div>
3228 +
3229 +
3230 + <div class="col-6 apartment-col">
3231 + <div class="row">
3232 + <div class="col-12 pr-0">
3233 +
3234 + <img
3235 + class="rounded-left apartment-image"
3236 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/CUISINE_2_a8e2db9c-5811-11f0-8a5b-0e9b4be91035.jpg"
3237 + alt="unit image"
3238 + width=100%
3239 + height=232px
3240 + />
3241 +
3242 + </div>
3243 + </div>
3244 + </div>
3245 +
3246 +
3247 + <div class="col-6 apartment-col">
3248 + <div class="row">
3249 + <div class="col-12 pl-0">
3250 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/CUISINE_a99b01fe-5811-11f0-8a5b-0e9b4be91035.jpg"
3251 + alt="unit image" width="100%" height="116px">
3252 + </div>
3253 + </div>
3254 +
3255 + <div class="row">
3256 + <div class="col-12 pl-0">
3257 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/SALON_aa37903c-5811-11f0-8a5b-0e9b4be91035.jpg"
3258 + alt="unit image" width=100% height=116px>
3259 + </div>
3260 + </div>
3261 +
3262 + </div>
3263 +
3264 +
3265 +
3266 +</div>
3267 +
3268 +
3269 +
3270 +
3271 +
3272 +<div class="row mt-4">
3273 + <div class="col-12">
3274 + <div class="card-body p-0 text-left">
3275 + <h5 class="apartment-borough">Appartements &middot; Lebourgneuf</h5>
3276 + <p class="apartment-address mb-1">5900 boul. St-Jacques</p>
3277 +
3278 +
3279 + <div class="row">
3280 + <div class="col-7">
3281 + <p class="apartment-infos mb-0">
3282 +
3283 + 4½ à partir de 1595$
3284 +
3285 + </p>
3286 + <p class="apartment-availability footnotes">
3287 + octobre 2026
3288 + </p>
3289 + </div>
3290 + <div class="col-5 text-right">
3291 +
3292 +
3293 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
3294 +
3295 +
3296 +
3297 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_ac.png" alt="Climatiseur" height=18px width=18px>
3298 +
3299 +
3300 +
3301 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
3302 +
3303 +
3304 +
3305 + </div>
3306 + </div>
3307 +
3308 +
3309 +
3310 + </div>
3311 + </div>
3312 +</div>
3313 +
3314 + </a>
3315 +
3316 + <a
3317 + href="/logement/18"
3318 + class="appartments card border-white col-sm-6 mb-4 col-md-6 "
3319 + data-type="3"
3320 + data-borough="3"
3321 + >
3322 +
3323 +
3324 +
3325 +
3326 +<script>
3327 + function displayNowAvailableBubble(buildingId) {
3328 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
3329 + nowAvailableBubble.classList.remove("d-none");
3330 + }
3331 +</script>
3332 +
3333 +<div class="row">
3334 +
3335 +
3336 +
3337 + <img src alt="" onerror="displayNowAvailableBubble(18 + '-recommendation');"></img>
3338 +
3339 +
3340 +
3341 +
3342 + <div class="now-available-bubble d-none" id="now-available-bubble-18-recommendation">
3343 + <p class="text-white m-0">En vedette</p>
3344 + </div>
3345 +
3346 +
3347 + <div class="col-6 apartment-col">
3348 + <div class="row">
3349 + <div class="col-12 pr-0">
3350 +
3351 + <img
3352 + class="rounded-left apartment-image"
3353 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_3_bf11e94e-3f15-11f1-9a87-12e0191876fd.jpg"
3354 + alt="unit image"
3355 + width=100%
3356 + height=232px
3357 + />
3358 +
3359 + </div>
3360 + </div>
3361 + </div>
3362 +
3363 +
3364 + <div class="col-6 apartment-col">
3365 + <div class="row">
3366 + <div class="col-12 pl-0">
3367 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_2_bfb756f4-3f15-11f1-9a87-12e0191876fd.jpg"
3368 + alt="unit image" width="100%" height="116px">
3369 + </div>
3370 + </div>
3371 +
3372 + <div class="row">
3373 + <div class="col-12 pl-0">
3374 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_5_mod_c088e282-3f15-11f1-9a87-12e0191876fd.jpg"
3375 + alt="unit image" width=100% height=116px>
3376 + </div>
3377 + </div>
3378 +
3379 + </div>
3380 +
3381 +
3382 +
3383 +</div>
3384 +
3385 +
3386 +
3387 +
3388 +
3389 +<div class="row mt-4">
3390 + <div class="col-12">
3391 + <div class="card-body p-0 text-left">
3392 + <h5 class="apartment-borough">Appartements &middot; Beauport</h5>
3393 + <p class="apartment-address mb-1">555, avenue du Fleuve</p>
3394 +
3395 +
3396 + <div class="row">
3397 + <div class="col-7">
3398 + <p class="apartment-infos mb-0">
3399 +
3400 + 1½ à partir de 799$
3401 +
3402 + </p>
3403 + <p class="apartment-availability footnotes">
3404 + Libre immédiatement
3405 + </p>
3406 + </div>
3407 + <div class="col-5 text-right">
3408 +
3409 +
3410 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_light.png" alt="Électricité" height=18px width=18px>
3411 +
3412 +
3413 +
3414 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
3415 +
3416 +
3417 +
3418 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_heat.png" alt="Chauffage" height=18px width=18px>
3419 +
3420 +
3421 +
3422 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
3423 +
3424 +
3425 +
3426 +
3427 +
3428 +
3429 +
3430 + <p class="footnotes d-inline"> +2</p>
3431 +
3432 + </div>
3433 + </div>
3434 +
3435 +
3436 +
3437 + </div>
3438 + </div>
3439 +</div>
3440 +
3441 + </a>
3442 +
3443 +</div>
3444 +
3445 + </div>
3446 +
3447 + </div>
3448 +
3449 +
3450 +
3451 + </div>
3452 +
3453 + <div class="col-md-6 pt-4">
3454 +
3455 +
3456 +<script id="building-coordinates" type="application/json">[{"loc": ["46.846393", "-71.322663"], "id": 129}, {"loc": ["46.820422", "-71.365621"], "id": 159}, {"loc": ["46.820519", "-71.365499"], "id": 160}, {"loc": ["46.846366", "-71.322645"], "id": 128}]</script>
3457 +
3458 +<div id="map-container" class=" mb-2 mt-1">
3459 + <div id="interactive-map" style="height: 100%;" class="rounded">
3460 + </div>
3461 +</div>
3462 +
3463 + </div>
3464 +
3465 + </div>
3466 + </div>
3467 + </div>
3468 +</div>
3469 +
3470 + </main>
3471 + <footer>
3472 +
3473 +
3474 +
3475 +<div class="footer row m-0 p-5 justify-content-center bg-black">
3476 + <div class="container m-0">
3477 + <div class="row mb-3">
3478 + <img src="/static/images/logos/sansfond_horizontal_blanc.png" alt="L&M Logo" width="auto"
3479 + height="80px" class="footer-logo">
3480 + </div>
3481 + <div class="row">
3482 + <div class="col-12 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pr-sm-4 d-flex flex-column">
3483 + <p class="footer-title mb-2">Contactez-nous</p>
3484 + <p class="footer-text mb-3">Pour toute question concercant nos services de gestion immobilière, nos logements à louer ou pour en savoir plus sur nos offres et services.</p>
3485 + <a href="tel:14186265500" class="mb-3 d-flex align-items-center">
3486 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-3" />
3487 + <span class="footer-phone">418 626-5500</span>
3488 + </a>
3489 + <a href="/cdn-cgi/l/email-protection#244d4a424b6448454256454a4741094945504c4d41510a474b49" target="_blank" class="mb-3 d-flex align-items-center">
3490 + <img src=/static/images/icons/email.svg alt="email icon" class="footer-icon mr-3" />
3491 + <span><span class="__cf_email__" data-cfemail="d9b0b7bfb699b5b8bfabb8b7babcf4b4b8adb1b0bcacf7bab6b4">[email&#160;protected]</span></span>
3492 + </a>
3493 + <a href="https://g.page/Lafrance-Mathieu?share" target="_blank" class="mb-4 d-flex align-items-center">
3494 + 1220 Boulevard Lebourgneuf<br>Québec, QC G2K 2G4
3495 + </a>
3496 + <p class="footer-title mb-2">Suivez-nous sur les réseaux</p>
3497 + <div class="d-flex">
3498 + <a href="https://ca.linkedin.com/company/gestion-immobilière-lafrance-et-mathieu-inc">
3499 + <img src=/static/images/icons/linkedin.svg alt="linkedin icon"
3500 + class="footer-social-icon mr-3" />
3501 + </a>
3502 + <a href="https://fr-ca.facebook.com/lafrance.mathieu">
3503 + <img src=/static/images/icons/facebook.svg alt="facebook icon"
3504 + class="footer-social-icon" />
3505 + </a>
3506 + </div>
3507 + </div>
3508 + <div class="col-10 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pl-sm-4 px-md-4 d-flex flex-column">
3509 + <p class="footer-title mb-2">Soutien aux résidents (24/7)</p>
3510 + <p class="footer-text mb-3">Pour toute urgence n’hésitez pas à nous contacter ou connectez vous à l’Espace client pour toute question ou demande moins urgente.</p>
3511 + <a href="tel:14186265500" class="mb-3 d-flex align-items-center">
3512 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-3" />
3513 + <span class="footer-phone">418-626-5500</span>
3514 + </a>
3515 + <a href="https://espace-client.lafrance-mathieu.com" target="_blank" class="d-flex align-items-center mb-3">
3516 + <img src=/static/images/icons/ticket.svg alt="client space icon" class="footer-icon mr-3" />
3517 + <span>Se connecter à l’Espace client</span>
3518 + </a>
3519 + <a href="https://doma.lafrance-mathieu.com:444/DocRoom/Auth/Login.aspx" target="_blank" class="d-flex align-items-center">
3520 + <img src=/static/images/icons/ticket.svg alt="intranet icon" class="footer-icon mr-3" />
3521 + <span>Se connecter à Sensaas</span>
3522 + </a>
3523 + </div>
3524 + <div class="col-10 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pr-sm-4 px-md-4">
3525 + <ul class="navbar-nav">
3526 +
3527 +
3528 +
3529 +<li class="nav-item ">
3530 + <a class="nav-link py-0 footer-main-navigation mb-3"
3531 + href="/">Accueil</a>
3532 + <hr class="my-1 border-gray-medium d-none">
3533 +</li>
3534 +
3535 +
3536 +
3537 +
3538 +
3539 +<li class="nav-item ">
3540 + <a class="nav-link py-0 footer-main-navigation mb-3"
3541 + href="/services-de-gestion-immobiliere">Services de gestion <br class='nav-item-translation'>immobilière</a>
3542 + <hr class="my-1 border-gray-medium d-none">
3543 +</li>
3544 +
3545 +
3546 +
3547 +
3548 +
3549 +<li class="nav-item active ">
3550 + <a class="nav-link py-0 footer-main-navigation mb-3"
3551 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
3552 + <hr class="my-1 border-gray-medium d-none">
3553 +</li>
3554 +
3555 +
3556 +
3557 +
3558 +
3559 +<li class="nav-item ">
3560 + <a class="nav-link py-0 footer-main-navigation mb-3"
3561 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
3562 + <hr class="my-1 border-gray-medium d-none">
3563 +</li>
3564 +
3565 +
3566 +
3567 +
3568 +
3569 +<li class="nav-item ">
3570 + <a class="nav-link py-0 footer-main-navigation mb-3"
3571 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
3572 + <hr class="my-1 border-gray-medium d-none">
3573 +</li>
3574 +
3575 +
3576 +
3577 +
3578 +
3579 +<li class="nav-item ">
3580 + <a class="nav-link py-0 footer-main-navigation mb-3"
3581 + href="/qui-sommes-nous/">À propos de <br class='nav-item-translation'>Lafrance & Mathieu</a>
3582 + <hr class="my-1 border-gray-medium d-none">
3583 +</li>
3584 +
3585 +
3586 +
3587 + </ul>
3588 + </div>
3589 + <div class="col-10 col-sm-6 col-md-3 p-0 pl-sm-4">
3590 + <ul class="navbar-nav">
3591 +
3592 +
3593 +
3594 +<li class="nav-item ">
3595 + <a class="nav-link py-0 footer-main-navigation mb-3"
3596 + href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
3597 + <hr class="my-1 border-gray-medium d-none">
3598 +</li>
3599 +
3600 +
3601 +
3602 +
3603 +
3604 +<li class="nav-item ">
3605 + <a class="nav-link py-0 footer-main-navigation mb-3"
3606 + href="/blog">Blogue</a>
3607 + <hr class="my-1 border-gray-medium d-none">
3608 +</li>
3609 +
3610 +
3611 +
3612 +
3613 +
3614 +<li class="nav-item ">
3615 + <a class="nav-link py-0 footer-main-navigation mb-3"
3616 + href="/faire-carriere/">Carrières</a>
3617 + <hr class="my-1 border-gray-medium d-none">
3618 +</li>
3619 +
3620 +
3621 +
3622 + </ul>
3623 + </div>
3624 + </div>
3625 + </div>
3626 +</div>
3627 +
3628 +
3629 +
3630 +
3631 +<div class="footer-notices d-flex flex-column w-100 m-0 px-5 py-4 align-items-start align-items-sm-center bg-darker">
3632 + <div class="d-flex justify-content-center">
3633 + <ul class="list-inline mb-1">
3634 +
3635 + <li class="list-inline-item">
3636 + <a href=/conditions-utilisation>
3637 + Conditions d'utilisation
3638 + </a>
3639 + </li>
3640 +
3641 +
3642 + <li class="list-inline-item">
3643 + <a href=/politique-confidentialite>
3644 + Politique de confidentialité
3645 + </a>
3646 + </li>
3647 +
3648 +
3649 + <li class="list-inline-item">
3650 + <a href=/protection-renseignements-personnels>
3651 + Protection des renseignements personnels
3652 + </a>
3653 + </li>
3654 +
3655 +
3656 + <li class="list-inline-item">
3657 + <a href=/temoins-navigation>
3658 + Gérer vos témoins de navigation
3659 + </a>
3660 + </li>
3661 +
3662 + </ul>
3663 + </div>
3664 + <div class="d-flex justify-content-center">
3665 + <p class="">© Gestion immobilière Lafrance & Mathieu</p>
3666 + </div>
3667 +</div>
3668 +
3669 + </footer>
3670 +
3671 +
3672 +<!-- Cookie Banner -->
3673 +<div id="gilm-cookie-banner" class="alert alert-dark hidden" role="alert">
3674 + <div class="gilm-cookie-banner-container">
3675 + <div class="gilm-cookie-banner-text">
3676 + <p>
3677 + Nous utilisons les témoins de navigation (cookies) afin de mesurer et d’améliorer l’efficacité de nos
3678 + sites
3679 + Web
3680 + ou de rehausser l’expérience client. En utilisant notre site Web, vous consentez à l’utilisation de
3681 + témoins,
3682 + comme l’explique notre <a href=/protection-renseignements-personnels> protection des
3683 + renseignements personnels</a>. Si vous n'êtes pas à l'aise avec
3684 + l'utilisation
3685 + de ces informations, veuillez revoir vos paramètres avant de poursuivre votre visite.
3686 + </p>
3687 + <p class="d-sm-none">
3688 + <a href=/temoins-navigation>
3689 + Gérer vos témoins de navigation
3690 + </a>
3691 + <br/>
3692 + <a href=/politique-confidentialite>
3693 + Politique de confidentialité
3694 + </a>
3695 + <br/>
3696 + <a href=/conditions-utilisation>
3697 + Conditions d'utilisation
3698 + </a>
3699 + </p>
3700 + <p class="d-none d-sm-block">
3701 + <a href=/temoins-navigation>
3702 + Gérer vos témoins de navigation
3703 + </a>
3704 + -
3705 + <a href=/politique-confidentialite>
3706 + Politique de confidentialité
3707 + </a>
3708 + -
3709 + <a href=/conditions-utilisation>
3710 + Conditions d'utilisation
3711 + </a>
3712 + </p>
3713 + </div>
3714 + <button type="button" class="gilm-cookie-banner-button btn btn-primary btn-sm ms-3"
3715 + onclick="window.gilm_hideCookieBanner()">
3716 + <img src=/static/images/icons/close.svg alt="closing icon" class="close-icon"/>
3717 + </button>
3718 + </div>
3719 +</div>
3720 +<!-- End of Cookie Banner -->
3721 + </div>
3722 + <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous">
3723 + </script>
3724 + <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js" integrity="sha256-eGE6blurk5sHj+rmkfsGYeKyZx3M4bG+ZlFyA7Kns7E=" crossorigin="anonymous">
3725 + </script>
3726 + <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js" crossorigin="anonymous"></script>
3727 + <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous">
3728 + </script>
3729 + <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous">
3730 + </script>
3731 + <script type="text/javascript" src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js">
3732 + </script>
3733 + <script type="text/javascript" src="/static/js/carousel.js">
3734 + </script>
3735 + <script type="text/javascript" src="/static/js/cookie_banner.js">
3736 + </script>
3737 + <script id="search-script" type="text/javascript" src="/static/js/search.js">
3738 + </script>
3739 + <script type="text/javascript" src="/static/js/jssocials.min.js">
3740 + </script>
3741 + <script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin="">
3742 + </script>
3743 + <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js" integrity="sha256-bqVeqGdJ7h/lYPq6xrPv/YGzMEb6dNxlfiTUHSgRCp8=" crossorigin="anonymous">
3744 + </script>
3745 + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/locales/bootstrap-datepicker.fr.min.js" charset="UTF-8">
3746 + </script>
3747 + <script async src="https://www.googletagmanager.com/gtag/js?id=UA-20687227-3"></script>
3748 + <script>
3749 + window.dataLayer = window.dataLayer || [];
3750 +
3751 + function gtag() {
3752 + dataLayer.push(arguments);
3753 + }
3754 + gtag('js', new Date());
3755 + gtag('config', 'UA-20687227-3');
3756 + </script>
3757 +
3758 +<script type="text/javascript" src="/static/js/leaflet.js">
3759 +</script>
3760 +
3761 +
3762 + </body>
3763 +
3764 + </html>
added tests/fixtures/lafrance_mathieu/14b3a708505864b80bee.html +3526 −0
@@ -0,0 +1,3526 @@
1 +
2 +
3 +
4 +
5 + <!DOCTYPE html>
6 + <html lang="fr" class="">
7 +
8 + <head>
9 +
10 + <meta charset="utf-8">
11 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
12 + <meta name="format-detection" content="telephone=no" />
13 + <link rel="alternate" href="https://lafrance-mathieu.com" hreflang="fr-ca" />
14 + <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css" />
15 + <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
16 + <link rel="stylesheet" href="/static/styling/index.css" />
17 + <script src="https://kit.fontawesome.com/72880f5a8c.js" crossorigin="anonymous"></script>
18 + <link rel="stylesheet" href="/static/styling/vendor/jssocials.css" />
19 + <link rel="stylesheet" href="/static/styling/vendor/jssocials-theme-flat.css" />
20 + <link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin="" />
21 + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css" integrity="sha256-siyOpF/pBWUPgIcQi17TLBkjvNgNQArcmwJB8YvkAgg=" crossorigin="anonymous" />
22 +
23 +<link rel="alternate" hreflang="fr-ca" href="/louer-appartement-quebec/" />
24 +<meta name="title" content="Logement a louer">
25 +<meta name="description" content="Trouvez votre appartement chez Lafrance et Mathieu. Louez un logement.">
26 +<meta name="keywords"
27 + content="appartement a louer,logement a louer, alouer, studio a louer, appartement meublé, appartement, louer, logement vacant, condo à louer,condo locatif, condo a louer lebourgneuf, condo a louer neufchatel, condo a louer charlesbourg, condo locatif Québec, logement, Québec, ville de québec, limoilou, charlesbourg, beauport, location, lafrance, mathieu, 1 et demi, 2 et demi, 3 et demi, 4 et demi, 5 et demi, 6 et demi, 7 et demi">
28 +<meta name="robots" content="index, follow">
29 +<title>Logements à louer - Lafrance & Mathieu</title>
30 +
31 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
32 + <meta name="language" content="French">
33 + <link rel="icon" type="image/ico" href="/static/images/favicon.ico" />
34 +
35 +
36 + <!-- Google Tag Manager -->
37 + <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
38 + new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
39 + j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
40 + 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
41 + })(window,document,'script','dataLayer','GTM-T675TG3');</script>
42 + <!-- End Google Tag Manager -->
43 + </head>
44 +
45 + <body>
46 + <!-- Google Tag Manager (noscript) -->
47 + <noscript><iframe src=https://www.googletagmanager.com/ns.html?id=GTM-T675TG3
48 + height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
49 + <!-- End Google Tag Manager (noscript) -->
50 +
51 + <div class="main-container">
52 + <header id="gilm-header" class>
53 +
54 +
55 +
56 +
57 +<nav class="nav desktop-nav">
58 + <div class="desktop-nav-top">
59 + <a class="desktop-nav-top-link" href="/faire-carriere/">
60 + <p>Carrières</p>
61 + </a>
62 +
63 + <a class="desktop-nav-top-link" href="/blog">
64 + <p>Lafrance et Mathieu: Blogue</p>
65 + </a>
66 +
67 + <a class="desktop-nav-top-link" href="https://espace-client.lafrance-mathieu.com" target="_blank">
68 + <p class="text-primary">Connexion</p>
69 + </a>
70 + </div>
71 + <div class="desktop-nav-bottom ">
72 + <ul class="desktop-nav-bottom-content left">
73 +
74 +
75 +
76 +
77 +
78 +
79 +
80 +<li
81 + class="nav-item dropdown "
82 + href="#"
83 +>
84 + <a
85 + class="nav-link py-0 dropdown-toggle header-main-navigation"
86 + href="#"
87 + id="navbardrop"
88 + data-toggle="dropdown"
89 + >
90 + Services de gestion <br class='nav-item-translation'>immobilière
91 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
92 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
93 +</svg>
94 +
95 + </a>
96 + <ul
97 + class="dropdown-menu dark dropdown-submenu"
98 + >
99 +
100 +
101 + <li class="nav-item">
102 + <a
103 + class="dropdown-item header-main-navigation text-wrap "
104 + href="/services-de-gestion-immobiliere"
105 + >
106 + Présentation de nos services
107 + </a>
108 + </li>
109 +
110 +
111 +
112 + <li class="nav-item">
113 + <a
114 + class="dropdown-item header-main-navigation text-wrap "
115 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
116 + >
117 + Gestion d’immeubles en copropriété
118 + </a>
119 + </li>
120 +
121 +
122 +
123 + <li class="nav-item">
124 + <a
125 + class="dropdown-item header-main-navigation text-wrap "
126 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
127 + >
128 + Gestion immobilière d&#x27;appartements en location
129 + </a>
130 + </li>
131 +
132 +
133 +
134 + <li class="nav-item">
135 + <a
136 + class="dropdown-item header-main-navigation text-wrap "
137 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
138 + >
139 + Gestion immobilière commerciale
140 + </a>
141 + </li>
142 +
143 +
144 +
145 + <li class="nav-item">
146 + <a
147 + class="dropdown-item header-main-navigation text-wrap "
148 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
149 + >
150 + Service de courtage immobilier
151 + </a>
152 + </li>
153 +
154 +
155 +
156 + <li class="nav-item">
157 + <a
158 + class="dropdown-item header-main-navigation text-wrap "
159 + href="/services-de-gestion-immobiliere/gilm-renovation"
160 + >
161 + GILM Rénovation
162 + </a>
163 + </li>
164 +
165 +
166 + </ul>
167 + <hr class="my-1 border-gray-medium d-none">
168 +</li>
169 +
170 +
171 +
172 +
173 +
174 +
175 +
176 +
177 +<li class="nav-item active ">
178 + <a class="nav-link py-0 header-main-navigation"
179 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
180 + <hr class="my-1 border-gray-medium d-none">
181 +</li>
182 +
183 +
184 +
185 +
186 +
187 +
188 +
189 +<li class="nav-item ">
190 + <a class="nav-link py-0 header-main-navigation"
191 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
192 + <hr class="my-1 border-gray-medium d-none">
193 +</li>
194 +
195 +
196 +
197 +
198 + </ul>
199 +
200 + <ul class="desktop-nav-bottom-content">
201 + <li class="desktop-nav-logo">
202 + <a href="/">
203 + <img src="/static/images/logos/sansfond_horizontal_noir.png" alt="L&M Logo" class="desktop-nav-logo-horizontal " />
204 + <img src="/static/images/logos/sansfond_vertical_blanc.png" alt="L&M Logo" class="desktop-nav-logo-vertical d-none" />
205 + </a>
206 + </li>
207 + </ul>
208 +
209 + <ul class="desktop-nav-bottom-content right">
210 +
211 +
212 +
213 +
214 +<li class="nav-item order-5">
215 + <a class="nav-link py-0 header-main-navigation"
216 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
217 + <hr class="my-1 border-gray-medium d-none">
218 +</li>
219 +
220 +
221 +
222 +
223 +
224 +
225 +
226 +
227 +
228 +
229 +<li
230 + class="nav-item dropdown order-6"
231 + href="#"
232 +>
233 + <a
234 + class="nav-link py-0 dropdown-toggle header-main-navigation"
235 + href="#"
236 + id="navbardrop"
237 + data-toggle="dropdown"
238 + >
239 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
240 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
241 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
242 +</svg>
243 +
244 + </a>
245 + <ul
246 + class="dropdown-menu dark dropdown-submenu"
247 + >
248 +
249 +
250 + <li class="nav-item">
251 + <a
252 + class="dropdown-item header-main-navigation text-wrap "
253 + href="/qui-sommes-nous/?tab=1"
254 + >
255 + Qui sommes-nous
256 + </a>
257 + </li>
258 +
259 +
260 +
261 + <li class="nav-item">
262 + <a
263 + class="dropdown-item header-main-navigation text-wrap "
264 + href="/qui-sommes-nous/?tab=2"
265 + >
266 + Mission et valeurs
267 + </a>
268 + </li>
269 +
270 +
271 +
272 + <li class="nav-item">
273 + <a
274 + class="dropdown-item header-main-navigation text-wrap "
275 + href="/qui-sommes-nous/?tab=3"
276 + >
277 + Équipe de direction
278 + </a>
279 + </li>
280 +
281 +
282 + </ul>
283 + <hr class="my-1 border-gray-medium d-none">
284 +</li>
285 +
286 +
287 +
288 +
289 +
290 +
291 +
292 +
293 +<li class="nav-item order-7">
294 + <a class="nav-link py-0 header-main-navigation"
295 + href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
296 + <hr class="my-1 border-gray-medium d-none">
297 +</li>
298 +
299 +
300 +
301 +
302 + </ul>
303 + </div>
304 +</nav>
305 +<nav class="nav mobile-nav">
306 + <div class="nav-bottom nav-d-none order-2" id="navbarSupportedContent">
307 + <ul class="nav-main-links">
308 +
309 +
310 +
311 +
312 +<li class="nav-item ">
313 + <a class="nav-link py-0 header-main-navigation"
314 + href="/">Accueil</a>
315 + <hr class="my-1 border-gray-medium d-none">
316 +</li>
317 +
318 +
319 +
320 +
321 +
322 +
323 +
324 +
325 +
326 +
327 +<li
328 + class="nav-item dropdown "
329 + href="#"
330 +>
331 + <a
332 + class="nav-link py-0 dropdown-toggle header-main-navigation"
333 + href="#"
334 + id="navbardrop"
335 + data-toggle="dropdown"
336 + >
337 + Services de gestion <br class='nav-item-translation'>immobilière
338 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
339 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
340 +</svg>
341 +
342 + </a>
343 + <ul
344 + class="dropdown-menu bg-gray-blue dropdown-submenu"
345 + >
346 +
347 +
348 + <li class="nav-item">
349 + <a
350 + class="dropdown-item header-main-navigation text-wrap "
351 + href="/services-de-gestion-immobiliere"
352 + >
353 + Présentation de nos services
354 + </a>
355 + </li>
356 +
357 +
358 +
359 + <li class="nav-item">
360 + <a
361 + class="dropdown-item header-main-navigation text-wrap "
362 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
363 + >
364 + Gestion d’immeubles en copropriété
365 + </a>
366 + </li>
367 +
368 +
369 +
370 + <li class="nav-item">
371 + <a
372 + class="dropdown-item header-main-navigation text-wrap "
373 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
374 + >
375 + Gestion immobilière d&#x27;appartements en location
376 + </a>
377 + </li>
378 +
379 +
380 +
381 + <li class="nav-item">
382 + <a
383 + class="dropdown-item header-main-navigation text-wrap "
384 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
385 + >
386 + Gestion immobilière commerciale
387 + </a>
388 + </li>
389 +
390 +
391 +
392 + <li class="nav-item">
393 + <a
394 + class="dropdown-item header-main-navigation text-wrap "
395 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
396 + >
397 + Service de courtage immobilier
398 + </a>
399 + </li>
400 +
401 +
402 +
403 + <li class="nav-item">
404 + <a
405 + class="dropdown-item header-main-navigation text-wrap "
406 + href="/services-de-gestion-immobiliere/gilm-renovation"
407 + >
408 + GILM Rénovation
409 + </a>
410 + </li>
411 +
412 +
413 + </ul>
414 + <hr class="my-1 border-gray-medium d-none">
415 +</li>
416 +
417 +
418 +
419 +
420 +
421 +
422 +
423 +
424 +<li class="nav-item active ">
425 + <a class="nav-link py-0 header-main-navigation"
426 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
427 + <hr class="my-1 border-gray-medium d-none">
428 +</li>
429 +
430 +
431 +
432 +
433 +
434 +
435 +
436 +<li class="nav-item ">
437 + <a class="nav-link py-0 header-main-navigation"
438 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
439 + <hr class="my-1 border-gray-medium d-none">
440 +</li>
441 +
442 +
443 +
444 +
445 +
446 +
447 +
448 +<li class="nav-item ">
449 + <a class="nav-link py-0 header-main-navigation"
450 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
451 + <hr class="my-1 border-gray-medium d-none">
452 +</li>
453 +
454 +
455 +
456 +
457 +
458 +
459 +
460 +
461 +
462 +
463 +<li
464 + class="nav-item dropdown "
465 + href="#"
466 +>
467 + <a
468 + class="nav-link py-0 dropdown-toggle header-main-navigation"
469 + href="#"
470 + id="navbardrop"
471 + data-toggle="dropdown"
472 + >
473 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
474 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
475 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
476 +</svg>
477 +
478 + </a>
479 + <ul
480 + class="dropdown-menu bg-gray-blue dropdown-submenu"
481 + >
482 +
483 +
484 + <li class="nav-item">
485 + <a
486 + class="dropdown-item header-main-navigation text-wrap "
487 + href="/qui-sommes-nous/?tab=1"
488 + >
489 + Qui sommes-nous
490 + </a>
491 + </li>
492 +
493 +
494 +
495 + <li class="nav-item">
496 + <a
497 + class="dropdown-item header-main-navigation text-wrap "
498 + href="/qui-sommes-nous/?tab=2"
499 + >
500 + Mission et valeurs
501 + </a>
502 + </li>
503 +
504 +
505 +
506 + <li class="nav-item">
507 + <a
508 + class="dropdown-item header-main-navigation text-wrap "
509 + href="/qui-sommes-nous/?tab=3"
510 + >
511 + Équipe de direction
512 + </a>
513 + </li>
514 +
515 +
516 + </ul>
517 + <hr class="my-1 border-gray-medium d-none">
518 +</li>
519 +
520 +
521 +
522 +
523 +
524 + </ul>
525 + <ul class="nav-quick-links mobile d-flex d-lg-none">
526 +
527 +
528 +<div class="nav-item">
529 + <a class="header-secondary-navigation" href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
530 +</div>
531 +
532 +
533 +
534 +
535 +<div class="nav-item">
536 + <a class="header-secondary-navigation" href="/blog">Blogue</a>
537 +</div>
538 +
539 +
540 +
541 +
542 +<div class="nav-item">
543 + <a class="header-secondary-navigation" href="/faire-carriere/">Carrières</a>
544 +</div>
545 +
546 +
547 +
548 + <li class="nav-item nav-client-space">
549 +
550 +
551 +<a class="btn btn-primary header-button-navigation text-white" href="https://espace-client.lafrance-mathieu.com">Connexion à l’Espace client</a>
552 + </li>
553 + </ul>
554 + <div class="w-100 my-3 d-flex d-lg-none flex-wrap">
555 + <div class="mb-4 p-0 pr-4 d-flex flex-column">
556 + <a href="tel:14186265500" class="mb-2 d-flex align-items-center">
557 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-2" />
558 + <span class="text-gray-light">418 626-5500</span>
559 + </a>
560 + <a href="/cdn-cgi/l/email-protection#c0a9aea6af80aca1a6b2a1aea3a5edada1b4a8a9a5b5eea3afad" target="_blank" class="mb-3 d-flex align-items-center">
561 + <img src=/static/images/icons/call.svg alt="email icon" class="footer-icon mr-2" />
562 + <span><span class="__cf_email__" data-cfemail="650c0b030a2509040317040b0600480804110d0c00104b060a08">[email&#160;protected]</span></span>
563 + </a>
564 + <p class="footer-text text-uppercase text-white text-bold">Suivez-nous sur les réseaux</p>
565 + <div class="d-flex">
566 + <a href="https://ca.linkedin.com/company/gestion-immobilière-lafrance-et-mathieu-inc">
567 + <img src=/static/images/icons/linkedin.svg alt="linkedin icon"
568 + class="footer-social-icon mr-3" />
569 + </a>
570 + <a href="https://fr-ca.facebook.com/lafrance.mathieu">
571 + <img src=/static/images/icons/facebook.svg alt="facebook icon"
572 + class="footer-social-icon" />
573 + </a>
574 + </div>
575 + </div>
576 + <div class="mb-4 mb-md-0 p-0 pl-sm-4 px-md-4 d-flex flex-column">
577 + <p class="footer-text text-uppercase text-white text-bold">Soutien aux résidents (24/7)</p>
578 + <a href="tel:14186265500" class="mb-2 d-flex align-items-center">
579 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-2" />
580 + <span class="text-gray-light">418 626-5500</span>
581 + </a>
582 + </div>
583 + </div>
584 + </div>
585 + <div class="nav-top order-1">
586 + <ul class="nav-main-links nav-main-links-top">
587 +
588 +
589 +
590 +
591 +<li class="nav-item ">
592 + <a class="nav-link py-0 header-main-navigation"
593 + href="/">Accueil</a>
594 + <hr class="my-1 border-gray-medium d-none">
595 +</li>
596 +
597 +
598 +
599 +
600 +
601 +
602 +
603 +
604 +
605 +
606 +<li
607 + class="nav-item dropdown "
608 + href="#"
609 +>
610 + <a
611 + class="nav-link py-0 dropdown-toggle header-main-navigation"
612 + href="#"
613 + id="navbardrop"
614 + data-toggle="dropdown"
615 + >
616 + Services de gestion <br class='nav-item-translation'>immobilière
617 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
618 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
619 +</svg>
620 +
621 + </a>
622 + <ul
623 + class="dropdown-menu bg-gray-blue dropdown-submenu"
624 + >
625 +
626 +
627 + <li class="nav-item">
628 + <a
629 + class="dropdown-item header-main-navigation text-wrap "
630 + href="/services-de-gestion-immobiliere"
631 + >
632 + Présentation de nos services
633 + </a>
634 + </li>
635 +
636 +
637 +
638 + <li class="nav-item">
639 + <a
640 + class="dropdown-item header-main-navigation text-wrap "
641 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
642 + >
643 + Gestion d’immeubles en copropriété
644 + </a>
645 + </li>
646 +
647 +
648 +
649 + <li class="nav-item">
650 + <a
651 + class="dropdown-item header-main-navigation text-wrap "
652 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
653 + >
654 + Gestion immobilière d&#x27;appartements en location
655 + </a>
656 + </li>
657 +
658 +
659 +
660 + <li class="nav-item">
661 + <a
662 + class="dropdown-item header-main-navigation text-wrap "
663 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
664 + >
665 + Gestion immobilière commerciale
666 + </a>
667 + </li>
668 +
669 +
670 +
671 + <li class="nav-item">
672 + <a
673 + class="dropdown-item header-main-navigation text-wrap "
674 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
675 + >
676 + Service de courtage immobilier
677 + </a>
678 + </li>
679 +
680 +
681 +
682 + <li class="nav-item">
683 + <a
684 + class="dropdown-item header-main-navigation text-wrap "
685 + href="/services-de-gestion-immobiliere/gilm-renovation"
686 + >
687 + GILM Rénovation
688 + </a>
689 + </li>
690 +
691 +
692 + </ul>
693 + <hr class="my-1 border-gray-medium d-none">
694 +</li>
695 +
696 +
697 +
698 +
699 +
700 +
701 +
702 +
703 +<li class="nav-item active ">
704 + <a class="nav-link py-0 header-main-navigation"
705 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
706 + <hr class="my-1 border-gray-medium d-none">
707 +</li>
708 +
709 +
710 +
711 +
712 +
713 +
714 +
715 +<li class="nav-item ">
716 + <a class="nav-link py-0 header-main-navigation"
717 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
718 + <hr class="my-1 border-gray-medium d-none">
719 +</li>
720 +
721 +
722 +
723 +
724 +
725 +
726 +
727 +<li class="nav-item ">
728 + <a class="nav-link py-0 header-main-navigation"
729 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
730 + <hr class="my-1 border-gray-medium d-none">
731 +</li>
732 +
733 +
734 +
735 +
736 +
737 +
738 +
739 +
740 +
741 +
742 +<li
743 + class="nav-item dropdown "
744 + href="#"
745 +>
746 + <a
747 + class="nav-link py-0 dropdown-toggle header-main-navigation"
748 + href="#"
749 + id="navbardrop"
750 + data-toggle="dropdown"
751 + >
752 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
753 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
754 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
755 +</svg>
756 +
757 + </a>
758 + <ul
759 + class="dropdown-menu bg-gray-blue dropdown-submenu"
760 + >
761 +
762 +
763 + <li class="nav-item">
764 + <a
765 + class="dropdown-item header-main-navigation text-wrap "
766 + href="/qui-sommes-nous/?tab=1"
767 + >
768 + Qui sommes-nous
769 + </a>
770 + </li>
771 +
772 +
773 +
774 + <li class="nav-item">
775 + <a
776 + class="dropdown-item header-main-navigation text-wrap "
777 + href="/qui-sommes-nous/?tab=2"
778 + >
779 + Mission et valeurs
780 + </a>
781 + </li>
782 +
783 +
784 +
785 + <li class="nav-item">
786 + <a
787 + class="dropdown-item header-main-navigation text-wrap "
788 + href="/qui-sommes-nous/?tab=3"
789 + >
790 + Équipe de direction
791 + </a>
792 + </li>
793 +
794 +
795 + </ul>
796 + <hr class="my-1 border-gray-medium d-none">
797 +</li>
798 +
799 +
800 +
801 +
802 +
803 + </ul>
804 + <button class="nav-toggle d-block d-lg-none" type="button" onclick="toggleMenu();">
805 + <img class="nav-toggle-icon icon-top d-none" src="/static/images/menu.svg" alt="menu">
806 + <img class="nav-toggle-icon icon-sticky" src="/static/images/menu-dark.svg" alt="menu">
807 + </button>
808 + <ul class="nav-quick-links">
809 +
810 +
811 +<div class="nav-item">
812 + <a class="header-secondary-navigation" href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
813 +</div>
814 +
815 +
816 +
817 +
818 +<div class="nav-item">
819 + <a class="header-secondary-navigation" href="/blog">Blogue</a>
820 +</div>
821 +
822 +
823 +
824 +
825 +<div class="nav-item">
826 + <a class="header-secondary-navigation" href="/faire-carriere/">Carrières</a>
827 +</div>
828 +
829 +
830 +
831 + <li class="nav-item nav-client-space">
832 +
833 +
834 +<a class="btn btn-primary header-button-navigation text-white" href="https://espace-client.lafrance-mathieu.com">Connexion à l’Espace client</a>
835 + </li>
836 + </ul>
837 + <a class="nav-logo-link" href="/">
838 + <img id="logo-white" class="nav-logo-img icon-top d-none" src="/static/images/logos/sansfond_horizontal_blanc.png"
839 + alt="L&M Logo">
840 + <img id="logo-dark" class="nav-logo-img icon-sticky" src="/static/images/logos/sansfond_horizontal_noir.png"
841 + alt="L&M Logo">
842 + </a>
843 + </div>
844 +
845 +
846 +
847 +
848 +
849 +
850 +
851 +
852 +</nav>
853 +
854 +<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
855 + function toggleMenu() {
856 + scrollPosition = window.scrollY;
857 +
858 + const menu = document.getElementById("navbarSupportedContent");
859 + menu.classList.toggle("nav-d-none");
860 +
861 + const mobileTabs = document.getElementsByClassName("mobile-tabs")[0];
862 + if (mobileTabs && mobileTabs.classList) {
863 + mobileTabs.classList.toggle("d-none");
864 + }
865 +
866 + if (!menu.classList.contains("nav-d-none")) {
867 + makeHeaderDark();
868 + } else {
869 + makeHeaderClear();
870 + }
871 + }
872 +
873 + window.addEventListener('touchmove', function (_e) {
874 + onScroll();
875 + });
876 + window.addEventListener('scroll', function (_e) {
877 + onScroll();
878 + });
879 +
880 + function makeHeaderDark() {
881 + const header = document.getElementById("gilm-header");
882 + if (!header.classList.contains("top")) header.classList.add("top");
883 +
884 + const lightIcons = document.getElementsByClassName("icon-top");
885 + const darkIcons = document.getElementsByClassName("icon-sticky");
886 + for (icon of lightIcons) {
887 + icon.classList.contains("d-none") && icon.classList.remove("d-none");
888 + }
889 + for (icon of darkIcons) {
890 + !icon.classList.contains("d-none") && icon.classList.add("d-none");
891 + }
892 + }
893 +
894 + function makeHeaderClear() {
895 + const header = document.getElementById("gilm-header");
896 + if (header.classList.contains("top")) header.classList.remove("top");
897 +
898 + const lightIcons = document.getElementsByClassName("icon-top");
899 + const darkIcons = document.getElementsByClassName("icon-sticky");
900 + for (icon of lightIcons) {
901 + !icon.classList.contains("d-none") && icon.classList.add("d-none");
902 + }
903 + for (icon of darkIcons) {
904 + icon.classList.contains("d-none") && icon.classList.remove("d-none");
905 + }
906 + }
907 +
908 + function onScroll() {
909 +
910 + }
911 +</script>
912 +
913 + </header>
914 + <main class="overflow-y-hidden ">
915 +
916 +
917 +<div class="container">
918 + <div class="row">
919 + <div class="col-12">
920 +
921 + <div class="building-header d-flex flex-column algin-items-center">
922 + <h2 class="text-center">Logements à louer</h2>
923 + <div class="diamond-separator">
924 + <div class="diamond-container">
925 + <div class="diamond"></div>
926 + </div>
927 + </div>
928 + <h1 class="building-header-title text-center">Trouver un logement à louer à Québec</h1>
929 +</div>
930 +
931 +
932 + </div>
933 + </div>
934 +</div>
935 +
936 +<form action="/louer-appartement-quebec/" id="search-form" class="col-12 p-0">
937 +
938 +
939 +
940 +
941 +<div class="search-bar-container">
942 + <div class="container">
943 + <div class="search-bar py-3 m-0 d-flex justify-content-center" id="search-bar">
944 +
945 + <div class="col-12 hero-popup-features d-flex flex-column flex-sm-row p-0">
946 +
947 +
948 +<div class="d-flex justify-content-between justify-content-lg-start flex-wrap flex-lg-nowrap w-100">
949 +
950 +
951 +
952 +
953 +
954 +<div class="search-button-container mb-2 mb-lg-0 position-static big">
955 + <button
956 +
957 + type="button"
958 + class="search-button btn rounded-pill w-100"
959 + data-toggle="toggle"
960 + >
961 + <span id="label-boroughs">Beauport</span>
962 + <img src="/static/images/icons/add-filter.svg" alt="+">
963 + </button>
964 + <div class="search-input w-100 mw-100 d-none">
965 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
966 + Fermer
967 + </button>
968 +
969 + <div class="row search-list">
970 + <ul class="list-unstyled d-flex flex-wrap col-12 m-0">
971 +
972 + <li class="col-12 col-lg-6 px-0">
973 + <label class="checkbox mb-2 ">
974 + <input
975 + id="boroughs-1"
976 + class="filter-value"
977 + name="boroughs"
978 + value="3"
979 + type="checkbox"
980 + checked
981 + onclick='updateButtonLabel("boroughs", "1", "Beauport", "Quartiers", "");'
982 + />
983 + <span class="checkmark"></span>
984 + Beauport
985 + </label>
986 + </li>
987 +
988 + <li class="col-12 col-lg-6 px-0">
989 + <label class="checkbox mb-2 ">
990 + <input
991 + id="boroughs-2"
992 + class="filter-value"
993 + name="boroughs"
994 + value="8"
995 + type="checkbox"
996 +
997 + onclick='updateButtonLabel("boroughs", "2", "Charlesbourg", "Quartiers", "");'
998 + />
999 + <span class="checkmark"></span>
1000 + Charlesbourg
1001 + </label>
1002 + </li>
1003 +
1004 + <li class="col-12 col-lg-6 px-0">
1005 + <label class="checkbox mb-2 ">
1006 + <input
1007 + id="boroughs-3"
1008 + class="filter-value"
1009 + name="boroughs"
1010 + value="9"
1011 + type="checkbox"
1012 +
1013 + onclick='updateButtonLabel("boroughs", "3", "L&#x27;Ancienne-Lorette", "Quartiers", "");'
1014 + />
1015 + <span class="checkmark"></span>
1016 + L&#x27;Ancienne-Lorette
1017 + </label>
1018 + </li>
1019 +
1020 + <li class="col-12 col-lg-6 px-0">
1021 + <label class="checkbox mb-2 ">
1022 + <input
1023 + id="boroughs-4"
1024 + class="filter-value"
1025 + name="boroughs"
1026 + value="10"
1027 + type="checkbox"
1028 +
1029 + onclick='updateButtonLabel("boroughs", "4", "Lebourgneuf", "Quartiers", "");'
1030 + />
1031 + <span class="checkmark"></span>
1032 + Lebourgneuf
1033 + </label>
1034 + </li>
1035 +
1036 + <li class="col-12 col-lg-6 px-0">
1037 + <label class="checkbox mb-2 ">
1038 + <input
1039 + id="boroughs-5"
1040 + class="filter-value"
1041 + name="boroughs"
1042 + value="4"
1043 + type="checkbox"
1044 +
1045 + onclick='updateButtonLabel("boroughs", "5", "Les Saules", "Quartiers", "");'
1046 + />
1047 + <span class="checkmark"></span>
1048 + Les Saules
1049 + </label>
1050 + </li>
1051 +
1052 + <li class="col-12 col-lg-6 px-0">
1053 + <label class="checkbox mb-2 ">
1054 + <input
1055 + id="boroughs-6"
1056 + class="filter-value"
1057 + name="boroughs"
1058 + value="14"
1059 + type="checkbox"
1060 +
1061 + onclick='updateButtonLabel("boroughs", "6", "Lévis", "Quartiers", "");'
1062 + />
1063 + <span class="checkmark"></span>
1064 + Lévis
1065 + </label>
1066 + </li>
1067 +
1068 + <li class="col-12 col-lg-6 px-0">
1069 + <label class="checkbox mb-2 ">
1070 + <input
1071 + id="boroughs-7"
1072 + class="filter-value"
1073 + name="boroughs"
1074 + value="1"
1075 + type="checkbox"
1076 +
1077 + onclick='updateButtonLabel("boroughs", "7", "Limoilou", "Quartiers", "");'
1078 + />
1079 + <span class="checkmark"></span>
1080 + Limoilou
1081 + </label>
1082 + </li>
1083 +
1084 + <li class="col-12 col-lg-6 px-0">
1085 + <label class="checkbox mb-2 ">
1086 + <input
1087 + id="boroughs-8"
1088 + class="filter-value"
1089 + name="boroughs"
1090 + value="15"
1091 + type="checkbox"
1092 +
1093 + onclick='updateButtonLabel("boroughs", "8", "Loretteville", "Quartiers", "");'
1094 + />
1095 + <span class="checkmark"></span>
1096 + Loretteville
1097 + </label>
1098 + </li>
1099 +
1100 + <li class="col-12 col-lg-6 px-0">
1101 + <label class="checkbox mb-2 ">
1102 + <input
1103 + id="boroughs-9"
1104 + class="filter-value"
1105 + name="boroughs"
1106 + value="6"
1107 + type="checkbox"
1108 +
1109 + onclick='updateButtonLabel("boroughs", "9", "Neufchatel", "Quartiers", "");'
1110 + />
1111 + <span class="checkmark"></span>
1112 + Neufchatel
1113 + </label>
1114 + </li>
1115 +
1116 + <li class="col-12 col-lg-6 px-0">
1117 + <label class="checkbox mb-2 ">
1118 + <input
1119 + id="boroughs-10"
1120 + class="filter-value"
1121 + name="boroughs"
1122 + value="12"
1123 + type="checkbox"
1124 +
1125 + onclick='updateButtonLabel("boroughs", "10", "Québec", "Quartiers", "");'
1126 + />
1127 + <span class="checkmark"></span>
1128 + Québec
1129 + </label>
1130 + </li>
1131 +
1132 + <li class="col-12 col-lg-6 px-0">
1133 + <label class="checkbox mb-2 ">
1134 + <input
1135 + id="boroughs-11"
1136 + class="filter-value"
1137 + name="boroughs"
1138 + value="16"
1139 + type="checkbox"
1140 +
1141 + onclick='updateButtonLabel("boroughs", "11", "Saint-Augustin-de-Desmaures", "Quartiers", "");'
1142 + />
1143 + <span class="checkmark"></span>
1144 + Saint-Augustin-de-Desmaures
1145 + </label>
1146 + </li>
1147 +
1148 + <li class="col-12 col-lg-6 px-0">
1149 + <label class="checkbox mb-2 ">
1150 + <input
1151 + id="boroughs-12"
1152 + class="filter-value"
1153 + name="boroughs"
1154 + value="13"
1155 + type="checkbox"
1156 +
1157 + onclick='updateButtonLabel("boroughs", "12", "St-Roch", "Quartiers", "");'
1158 + />
1159 + <span class="checkmark"></span>
1160 + St-Roch
1161 + </label>
1162 + </li>
1163 +
1164 + <li class="col-12 col-lg-6 px-0">
1165 + <label class="checkbox mb-2 ">
1166 + <input
1167 + id="boroughs-13"
1168 + class="filter-value"
1169 + name="boroughs"
1170 + value="5"
1171 + type="checkbox"
1172 +
1173 + onclick='updateButtonLabel("boroughs", "13", "Ste-Foy", "Quartiers", "");'
1174 + />
1175 + <span class="checkmark"></span>
1176 + Ste-Foy
1177 + </label>
1178 + </li>
1179 +
1180 + <li class="col-12 col-lg-6 px-0">
1181 + <label class="checkbox mb-2 ">
1182 + <input
1183 + id="boroughs-14"
1184 + class="filter-value"
1185 + name="boroughs"
1186 + value="17"
1187 + type="checkbox"
1188 +
1189 + onclick='updateButtonLabel("boroughs", "14", "Val-Bélair", "Quartiers", "");'
1190 + />
1191 + <span class="checkmark"></span>
1192 + Val-Bélair
1193 + </label>
1194 + </li>
1195 +
1196 + </ul>
1197 + </div>
1198 +
1199 + </div>
1200 +</div>
1201 +
1202 +<script>
1203 + function updateButtonLabel(name, counter, value, defaultValue, isRadioButton) {
1204 + const label = document.getElementById(`label-${ name }`);
1205 + if (label.innerHTML === defaultValue) label.innerHTML = "";
1206 +
1207 + const input = document.getElementById(`${ name }-${counter}`);
1208 +
1209 + if (input.checked) {
1210 + if (label.innerHTML && !isRadioButton) label.innerHTML = `${label.innerHTML}, ${value}`;
1211 + else label.innerHTML = value;
1212 + } else {
1213 + if (label.innerHTML.includes(`${value}, `)) label.innerHTML = label.innerHTML.replace(`${value}, `, "");
1214 + else label.innerHTML = label.innerHTML.replace(value, "");
1215 + }
1216 +
1217 + if (!label.innerHTML.trim()) label.innerHTML = defaultValue;
1218 + }
1219 +
1220 +
1221 +</script>
1222 +
1223 +
1224 +
1225 +
1226 +
1227 +<div class="search-button-container mb-2 mb-lg-0 big ">
1228 + <div class="btn-group room-sizes-control" role="group" aria-label="Room size">
1229 + <div class="room-sizes-container">
1230 + <div id="room-size-group" class="room-size-group">
1231 +
1232 + <button
1233 + id="button-2"
1234 + type="button"
1235 + class="btn room-size-btn "
1236 + onclick="toggleRoomSizeButton(2); toggleRoomSizeCheckBox(2);"
1237 + >
1238 +
1239 + </button>
1240 +
1241 + <button
1242 + id="button-3"
1243 + type="button"
1244 + class="btn room-size-btn "
1245 + onclick="toggleRoomSizeButton(3); toggleRoomSizeCheckBox(3);"
1246 + >
1247 +
1248 + </button>
1249 +
1250 + <button
1251 + id="button-4"
1252 + type="button"
1253 + class="btn room-size-btn "
1254 + onclick="toggleRoomSizeButton(4); toggleRoomSizeCheckBox(4);"
1255 + >
1256 +
1257 + </button>
1258 +
1259 + <button
1260 + id="button-5"
1261 + type="button"
1262 + class="btn room-size-btn "
1263 + onclick="toggleRoomSizeButton(5); toggleRoomSizeCheckBox(5);"
1264 + >
1265 +
1266 + </button>
1267 +
1268 + <button
1269 + id="button-6"
1270 + type="button"
1271 + class="btn room-size-btn "
1272 + onclick="toggleRoomSizeButton(6); toggleRoomSizeCheckBox(6);"
1273 + >
1274 +
1275 + </button>
1276 +
1277 + </div>
1278 + <button id="see-more-rooms" type="button" class="search-button btn inner-button d-none text-primary border-0" data-toggle="toggle">...</button>
1279 + <div class="search-input w-100 mw-100 d-none">
1280 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
1281 + Fermer
1282 + </button>
1283 + <div class="row search-list">
1284 + <ul class="list-unstyled d-flex flex-wrap col-12 m-0">
1285 +
1286 + <li class="col-12 col-lg-6 px-0">
1287 + <label class="checkbox mb-2">
1288 + <input
1289 + type="checkbox"
1290 + id="checkbox-2"
1291 +
1292 + name="room-size"
1293 + value="2"
1294 + onclick="toggleRoomSizeButton(2);"
1295 + />
1296 + <span class="checkmark"></span>
1297 +
1298 + </label>
1299 + </li>
1300 +
1301 + <li class="col-12 col-lg-6 px-0">
1302 + <label class="checkbox mb-2">
1303 + <input
1304 + type="checkbox"
1305 + id="checkbox-3"
1306 +
1307 + name="room-size"
1308 + value="3"
1309 + onclick="toggleRoomSizeButton(3);"
1310 + />
1311 + <span class="checkmark"></span>
1312 +
1313 + </label>
1314 + </li>
1315 +
1316 + <li class="col-12 col-lg-6 px-0">
1317 + <label class="checkbox mb-2">
1318 + <input
1319 + type="checkbox"
1320 + id="checkbox-4"
1321 +
1322 + name="room-size"
1323 + value="4"
1324 + onclick="toggleRoomSizeButton(4);"
1325 + />
1326 + <span class="checkmark"></span>
1327 +
1328 + </label>
1329 + </li>
1330 +
1331 + <li class="col-12 col-lg-6 px-0">
1332 + <label class="checkbox mb-2">
1333 + <input
1334 + type="checkbox"
1335 + id="checkbox-5"
1336 +
1337 + name="room-size"
1338 + value="5"
1339 + onclick="toggleRoomSizeButton(5);"
1340 + />
1341 + <span class="checkmark"></span>
1342 +
1343 + </label>
1344 + </li>
1345 +
1346 + <li class="col-12 col-lg-6 px-0">
1347 + <label class="checkbox mb-2">
1348 + <input
1349 + type="checkbox"
1350 + id="checkbox-6"
1351 +
1352 + name="room-size"
1353 + value="6"
1354 + onclick="toggleRoomSizeButton(6);"
1355 + />
1356 + <span class="checkmark"></span>
1357 +
1358 + </label>
1359 + </li>
1360 +
1361 + </ul>
1362 + </div>
1363 + </div>
1364 + </div>
1365 + </div>
1366 +</div>
1367 +
1368 +<script>
1369 + function toggleRoomSizeCheckBox(roomSizeId) {
1370 + const roomSizeCheckBox = document.getElementById(`checkbox-${roomSizeId}`);
1371 + if (roomSizeCheckBox) roomSizeCheckBox.checked = !roomSizeCheckBox.checked;
1372 + }
1373 +
1374 + function toggleRoomSizeButton(roomSizeId) {
1375 + const roomSizeButton = document.getElementById(`button-${roomSizeId}`);
1376 + if (roomSizeButton) roomSizeButton.classList.toggle("active");
1377 + }
1378 +
1379 + function isOverflown(element) {
1380 + return element.scrollHeight > element.clientHeight || element.scrollWidth > element.clientWidth;
1381 + }
1382 +
1383 + function displaySeeMoreButtonIfOverflow() {
1384 + const seeMoreButton = document.getElementById("see-more-rooms");
1385 + const roomSizeGroup = document.getElementById("room-size-group");
1386 +
1387 + seeMoreButton.classList.add("d-none");
1388 + const overflown = isOverflown(roomSizeGroup);
1389 + if (overflown) seeMoreButton.classList.remove("d-none");
1390 +
1391 + }
1392 +
1393 + window.addEventListener("resize", displaySeeMoreButtonIfOverflow);
1394 + window.addEventListener("DOMContentLoaded", displaySeeMoreButtonIfOverflow);
1395 +</script>
1396 +
1397 +
1398 +
1399 +
1400 +
1401 +<div class="search-button-container position-static">
1402 + <button
1403 + id="price-range-button"
1404 + type="button"
1405 + class="search-button btn rounded-pill w-100"
1406 + data-toggle="toggle"
1407 + >
1408 + <span id="label-price">Prix</span>
1409 + <img src="/static/images/icons/add-filter.svg" alt="+">
1410 + </button>
1411 + <div class="search-input w-100 mw-100 d-none">
1412 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
1413 + Fermer
1414 + </button>
1415 +
1416 +
1417 +
1418 +
1419 +<script id="search-script" type="application/json">{"rent__min": "785.00", "rent__max": "2690.00"}</script>
1420 +
1421 +<div class="row">
1422 + <div class="mr-4" style="right: 0;">
1423 + <p class="text-primary" id="count_of_units"></p>
1424 + </div>
1425 + <div class="col-12">
1426 + <svg viewBox="0 0 500 100" class="chart">
1427 + <polyline
1428 + fill="#F0EDE4"
1429 + stroke="#ad986e"
1430 + stroke-width="2"
1431 + points="
1432 + 0, 100
1433 +
1434 + 0, 95
1435 +
1436 + 11, 98
1437 +
1438 + 22, 100
1439 +
1440 + 34, 100
1441 +
1442 + 45, 100
1443 +
1444 + 57, 100
1445 +
1446 + 68, 98
1447 +
1448 + 79, 96
1449 +
1450 + 91, 96
1451 +
1452 + 102, 95
1453 +
1454 + 114, 91
1455 +
1456 + 125, 98
1457 +
1458 + 136, 95
1459 +
1460 + 148, 100
1461 +
1462 + 159, 95
1463 +
1464 + 171, 91
1465 +
1466 + 182, 91
1467 +
1468 + 193, 93
1469 +
1470 + 205, 90
1471 +
1472 + 216, 90
1473 +
1474 + 228, 95
1475 +
1476 + 239, 96
1477 +
1478 + 250, 96
1479 +
1480 + 262, 96
1481 +
1482 + 273, 96
1483 +
1484 + 285, 98
1485 +
1486 + 296, 96
1487 +
1488 + 307, 95
1489 +
1490 + 319, 98
1491 +
1492 + 330, 98
1493 +
1494 + 342, 100
1495 +
1496 + 353, 100
1497 +
1498 + 365, 100
1499 +
1500 + 376, 100
1501 +
1502 + 387, 100
1503 +
1504 + 399, 100
1505 +
1506 + 410, 100
1507 +
1508 + 422, 100
1509 +
1510 + 433, 98
1511 +
1512 + 500, 100
1513 + "
1514 + />
1515 + </svg>
1516 + <div id="slider-range"></div>
1517 + </div>
1518 +</div>
1519 +<div class="row mt-4">
1520 + <div class="col-6 pr-0">
1521 + <input
1522 + class="search-slider-input rounded-left"
1523 + type="text"
1524 + id="slider-min-amount"
1525 + name="min-amount"
1526 + placeholder="Prix min."
1527 + value="">
1528 + </div>
1529 + <div class="col-6 pl-0">
1530 + <input
1531 + class="search-slider-input rounded-right"
1532 + type="text"
1533 + id="slider-max-amount"
1534 + name="max-amount"
1535 + placeholder="Prix max."
1536 + value="">
1537 + </div>
1538 +</div>
1539 +
1540 +
1541 + </div>
1542 +</div>
1543 +
1544 +<script>
1545 + function updateButtonLabel(name, counter, value, defaultValue, isRadioButton) {
1546 + const label = document.getElementById(`label-${ name }`);
1547 + if (label.innerHTML === defaultValue) label.innerHTML = "";
1548 +
1549 + const input = document.getElementById(`${ name }-${counter}`);
1550 +
1551 + if (input.checked) {
1552 + if (label.innerHTML && !isRadioButton) label.innerHTML = `${label.innerHTML}, ${value}`;
1553 + else label.innerHTML = value;
1554 + } else {
1555 + if (label.innerHTML.includes(`${value}, `)) label.innerHTML = label.innerHTML.replace(`${value}, `, "");
1556 + else label.innerHTML = label.innerHTML.replace(value, "");
1557 + }
1558 +
1559 + if (!label.innerHTML.trim()) label.innerHTML = defaultValue;
1560 + }
1561 +
1562 +
1563 +</script>
1564 +
1565 +
1566 +
1567 +
1568 +
1569 +<div class="search-button-container position-static">
1570 + <button
1571 +
1572 + type="button"
1573 + class="search-button btn rounded-pill w-100"
1574 + data-toggle="toggle"
1575 + >
1576 + <span id="label-availability">Disponibilités</span>
1577 + <img src="/static/images/icons/add-filter.svg" alt="+">
1578 + </button>
1579 + <div class="search-input w-100 mw-100 d-none">
1580 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
1581 + Fermer
1582 + </button>
1583 +
1584 + <div class="row search-list">
1585 + <ul class="list-unstyled d-flex flex-wrap col-12 m-0">
1586 +
1587 + <li class="col-12 col-lg-6 px-0">
1588 + <label class="checkbox mb-2 radio">
1589 + <input
1590 + id="availability-1"
1591 + class="filter-value"
1592 + name="availability"
1593 + value="1786147200"
1594 + type="radio"
1595 +
1596 + onclick='updateButtonLabel("availability", "1", "Libre immédiatement", "Disponibilités", "True");'
1597 + />
1598 + <span class="checkmark"></span>
1599 + Libre immédiatement
1600 + </label>
1601 + </li>
1602 +
1603 + <li class="col-12 col-lg-6 px-0">
1604 + <label class="checkbox mb-2 radio">
1605 + <input
1606 + id="availability-2"
1607 + class="filter-value"
1608 + name="availability"
1609 + value="1788220800"
1610 + type="radio"
1611 +
1612 + onclick='updateButtonLabel("availability", "2", "septembre 2026", "Disponibilités", "True");'
1613 + />
1614 + <span class="checkmark"></span>
1615 + septembre 2026
1616 + </label>
1617 + </li>
1618 +
1619 + <li class="col-12 col-lg-6 px-0">
1620 + <label class="checkbox mb-2 radio">
1621 + <input
1622 + id="availability-3"
1623 + class="filter-value"
1624 + name="availability"
1625 + value="1790812800"
1626 + type="radio"
1627 +
1628 + onclick='updateButtonLabel("availability", "3", "octobre 2026", "Disponibilités", "True");'
1629 + />
1630 + <span class="checkmark"></span>
1631 + octobre 2026
1632 + </label>
1633 + </li>
1634 +
1635 + <li class="col-12 col-lg-6 px-0">
1636 + <label class="checkbox mb-2 radio">
1637 + <input
1638 + id="availability-4"
1639 + class="filter-value"
1640 + name="availability"
1641 + value="1793491200"
1642 + type="radio"
1643 +
1644 + onclick='updateButtonLabel("availability", "4", "novembre 2026", "Disponibilités", "True");'
1645 + />
1646 + <span class="checkmark"></span>
1647 + novembre 2026
1648 + </label>
1649 + </li>
1650 +
1651 + <li class="col-12 col-lg-6 px-0">
1652 + <label class="checkbox mb-2 radio">
1653 + <input
1654 + id="availability-5"
1655 + class="filter-value"
1656 + name="availability"
1657 + value="1796083200"
1658 + type="radio"
1659 +
1660 + onclick='updateButtonLabel("availability", "5", "décembre 2026", "Disponibilités", "True");'
1661 + />
1662 + <span class="checkmark"></span>
1663 + décembre 2026
1664 + </label>
1665 + </li>
1666 +
1667 + <li class="col-12 col-lg-6 px-0">
1668 + <label class="checkbox mb-2 radio">
1669 + <input
1670 + id="availability-6"
1671 + class="filter-value"
1672 + name="availability"
1673 + value="1798761600"
1674 + type="radio"
1675 +
1676 + onclick='updateButtonLabel("availability", "6", "janvier 2027", "Disponibilités", "True");'
1677 + />
1678 + <span class="checkmark"></span>
1679 + janvier 2027
1680 + </label>
1681 + </li>
1682 +
1683 + <li class="col-12 col-lg-6 px-0">
1684 + <label class="checkbox mb-2 radio">
1685 + <input
1686 + id="availability-7"
1687 + class="filter-value"
1688 + name="availability"
1689 + value="1801440000"
1690 + type="radio"
1691 +
1692 + onclick='updateButtonLabel("availability", "7", "février 2027", "Disponibilités", "True");'
1693 + />
1694 + <span class="checkmark"></span>
1695 + février 2027
1696 + </label>
1697 + </li>
1698 +
1699 + <li class="col-12 col-lg-6 px-0">
1700 + <label class="checkbox mb-2 radio">
1701 + <input
1702 + id="availability-8"
1703 + class="filter-value"
1704 + name="availability"
1705 + value="1803859200"
1706 + type="radio"
1707 +
1708 + onclick='updateButtonLabel("availability", "8", "mars 2027", "Disponibilités", "True");'
1709 + />
1710 + <span class="checkmark"></span>
1711 + mars 2027
1712 + </label>
1713 + </li>
1714 +
1715 + </ul>
1716 + </div>
1717 +
1718 + </div>
1719 +</div>
1720 +
1721 +<script>
1722 + function updateButtonLabel(name, counter, value, defaultValue, isRadioButton) {
1723 + const label = document.getElementById(`label-${ name }`);
1724 + if (label.innerHTML === defaultValue) label.innerHTML = "";
1725 +
1726 + const input = document.getElementById(`${ name }-${counter}`);
1727 +
1728 + if (input.checked) {
1729 + if (label.innerHTML && !isRadioButton) label.innerHTML = `${label.innerHTML}, ${value}`;
1730 + else label.innerHTML = value;
1731 + } else {
1732 + if (label.innerHTML.includes(`${value}, `)) label.innerHTML = label.innerHTML.replace(`${value}, `, "");
1733 + else label.innerHTML = label.innerHTML.replace(value, "");
1734 + }
1735 +
1736 + if (!label.innerHTML.trim()) label.innerHTML = defaultValue;
1737 + }
1738 +
1739 +
1740 +</script>
1741 +
1742 +
1743 +
1744 +
1745 +
1746 +
1747 +<div class="search-button-container position-static">
1748 + <button
1749 +
1750 + type="button"
1751 + class="search-button btn rounded-pill w-100"
1752 + data-toggle="toggle"
1753 + >
1754 + <span id="label-conveniences">Commodités</span>
1755 + <img src="/static/images/icons/add-filter.svg" alt="+">
1756 + </button>
1757 + <div class="search-input w-100 mw-100 d-none">
1758 + <button class="search-close-button btn btn-no-outline text-primary" type="button">
1759 + Fermer
1760 + </button>
1761 +
1762 + <div class="row search-list">
1763 + <ul class="list-unstyled d-flex flex-wrap col-12 m-0">
1764 +
1765 + <li class="col-12 col-lg-6 px-0">
1766 + <label class="checkbox mb-2 ">
1767 + <input
1768 + id="conveniences-1"
1769 + class="filter-value"
1770 + name="conveniences"
1771 + value="27"
1772 + type="checkbox"
1773 +
1774 + onclick='updateButtonLabel("conveniences", "1", "Accessible aux personnes handicapées", "Commodités", "");'
1775 + />
1776 + <span class="checkmark"></span>
1777 + Accessible aux personnes handicapées
1778 + </label>
1779 + </li>
1780 +
1781 + <li class="col-12 col-lg-6 px-0">
1782 + <label class="checkbox mb-2 ">
1783 + <input
1784 + id="conveniences-2"
1785 + class="filter-value"
1786 + name="conveniences"
1787 + value="5"
1788 + type="checkbox"
1789 +
1790 + onclick='updateButtonLabel("conveniences", "2", "Chauffage", "Commodités", "");'
1791 + />
1792 + <span class="checkmark"></span>
1793 + Chauffage
1794 + </label>
1795 + </li>
1796 +
1797 + <li class="col-12 col-lg-6 px-0">
1798 + <label class="checkbox mb-2 ">
1799 + <input
1800 + id="conveniences-3"
1801 + class="filter-value"
1802 + name="conveniences"
1803 + value="24"
1804 + type="checkbox"
1805 +
1806 + onclick='updateButtonLabel("conveniences", "3", "Climatiseur", "Commodités", "");'
1807 + />
1808 + <span class="checkmark"></span>
1809 + Climatiseur
1810 + </label>
1811 + </li>
1812 +
1813 + <li class="col-12 col-lg-6 px-0">
1814 + <label class="checkbox mb-2 ">
1815 + <input
1816 + id="conveniences-4"
1817 + class="filter-value"
1818 + name="conveniences"
1819 + value="3"
1820 + type="checkbox"
1821 +
1822 + onclick='updateButtonLabel("conveniences", "4", "Eau Chaude", "Commodités", "");'
1823 + />
1824 + <span class="checkmark"></span>
1825 + Eau Chaude
1826 + </label>
1827 + </li>
1828 +
1829 + <li class="col-12 col-lg-6 px-0">
1830 + <label class="checkbox mb-2 ">
1831 + <input
1832 + id="conveniences-5"
1833 + class="filter-value"
1834 + name="conveniences"
1835 + value="2"
1836 + type="checkbox"
1837 +
1838 + onclick='updateButtonLabel("conveniences", "5", "Électricité", "Commodités", "");'
1839 + />
1840 + <span class="checkmark"></span>
1841 + Électricité
1842 + </label>
1843 + </li>
1844 +
1845 + <li class="col-12 col-lg-6 px-0">
1846 + <label class="checkbox mb-2 ">
1847 + <input
1848 + id="conveniences-6"
1849 + class="filter-value"
1850 + name="conveniences"
1851 + value="11"
1852 + type="checkbox"
1853 +
1854 + onclick='updateButtonLabel("conveniences", "6", "Équipe de maintenance 24h", "Commodités", "");'
1855 + />
1856 + <span class="checkmark"></span>
1857 + Équipe de maintenance 24h
1858 + </label>
1859 + </li>
1860 +
1861 + <li class="col-12 col-lg-6 px-0">
1862 + <label class="checkbox mb-2 ">
1863 + <input
1864 + id="conveniences-7"
1865 + class="filter-value"
1866 + name="conveniences"
1867 + value="30"
1868 + type="checkbox"
1869 +
1870 + onclick='updateButtonLabel("conveniences", "7", "Lave-vaisselle", "Commodités", "");'
1871 + />
1872 + <span class="checkmark"></span>
1873 + Lave-vaisselle
1874 + </label>
1875 + </li>
1876 +
1877 + <li class="col-12 col-lg-6 px-0">
1878 + <label class="checkbox mb-2 ">
1879 + <input
1880 + id="conveniences-8"
1881 + class="filter-value"
1882 + name="conveniences"
1883 + value="26"
1884 + type="checkbox"
1885 +
1886 + onclick='updateButtonLabel("conveniences", "8", "Semi-meublé", "Commodités", "");'
1887 + />
1888 + <span class="checkmark"></span>
1889 + Semi-meublé
1890 + </label>
1891 + </li>
1892 +
1893 + <li class="col-12 col-lg-6 px-0">
1894 + <label class="checkbox mb-2 ">
1895 + <input
1896 + id="conveniences-9"
1897 + class="filter-value"
1898 + name="conveniences"
1899 + value="28"
1900 + type="checkbox"
1901 +
1902 + onclick='updateButtonLabel("conveniences", "9", "Stationnement extérieur", "Commodités", "");'
1903 + />
1904 + <span class="checkmark"></span>
1905 + Stationnement extérieur
1906 + </label>
1907 + </li>
1908 +
1909 + <li class="col-12 col-lg-6 px-0">
1910 + <label class="checkbox mb-2 ">
1911 + <input
1912 + id="conveniences-10"
1913 + class="filter-value"
1914 + name="conveniences"
1915 + value="29"
1916 + type="checkbox"
1917 +
1918 + onclick='updateButtonLabel("conveniences", "10", "Stationnement intérieur", "Commodités", "");'
1919 + />
1920 + <span class="checkmark"></span>
1921 + Stationnement intérieur
1922 + </label>
1923 + </li>
1924 +
1925 + </ul>
1926 + </div>
1927 +
1928 + </div>
1929 +</div>
1930 +
1931 +<script>
1932 + function updateButtonLabel(name, counter, value, defaultValue, isRadioButton) {
1933 + const label = document.getElementById(`label-${ name }`);
1934 + if (label.innerHTML === defaultValue) label.innerHTML = "";
1935 +
1936 + const input = document.getElementById(`${ name }-${counter}`);
1937 +
1938 + if (input.checked) {
1939 + if (label.innerHTML && !isRadioButton) label.innerHTML = `${label.innerHTML}, ${value}`;
1940 + else label.innerHTML = value;
1941 + } else {
1942 + if (label.innerHTML.includes(`${value}, `)) label.innerHTML = label.innerHTML.replace(`${value}, `, "");
1943 + else label.innerHTML = label.innerHTML.replace(value, "");
1944 + }
1945 +
1946 + if (!label.innerHTML.trim()) label.innerHTML = defaultValue;
1947 + }
1948 +
1949 +
1950 +</script>
1951 +
1952 +
1953 + <button type="submit" class="btn btn-primary search-bar-btn" id="btn-search">
1954 + <span>Rechercher</span>
1955 + </button>
1956 +</div>
1957 +
1958 + </div>
1959 +
1960 + </div>
1961 + </div>
1962 +</div>
1963 +
1964 + <div class="container">
1965 + <div class="row pt-4">
1966 + <div class="order-1 order-md-0 col-md-6 d-flex flex-wrap-reverse justify-content-between align-items-end">
1967 + <h2 class="mb-0">
1968 +
1969 + 9 logements à louer
1970 +
1971 + </h2>
1972 +
1973 +
1974 + <div class="sort-indicator d-flex flex-column mb-2 mb-sm-0">
1975 + <span class="sort-indicator-title text-gray-light">Trier par : </span>
1976 + <a class="sort-indicator-value text-primary" href="/louer-appartement-quebec/?boroughs=3&amp;sort=asc">
1977 + <span class="mr-1">Prix&nbsp;
1978 +
1979 + <img src="/static/images/icons/sort.svg" alt="sort" />
1980 +
1981 + </span>
1982 + </a>
1983 + </div>
1984 +
1985 +
1986 + </div>
1987 + <div class="col-md-6 d-flex justify-content-between justify-content-md-end align-items-end mb-4 mb-md-0">
1988 + <label class="checkbox">
1989 + <input type="checkbox" id="featured" name="featured" >
1990 + <span class="checkmark"></span>
1991 + En vedette
1992 + </label>
1993 +
1994 +
1995 +
1996 +<a class="ml-md-5 nav-search-reset-all reset-button d-flex align-items-center" href="/louer-appartement-quebec/">
1997 + <i class="fas fa-sync-alt text-primary" aria-hidden="true"></i>
1998 + Réinitialiser les filtres
1999 +</a>
2000 +
2001 + </div>
2002 + </div>
2003 + </div>
2004 +</form>
2005 +
2006 +<div class="container pb-5">
2007 + <div class="row">
2008 + <div class="col-12 mt-2 mt-2">
2009 + <div class="row">
2010 + <div class="col-md-6 pt-4">
2011 +
2012 +
2013 +
2014 +
2015 +<div class="row">
2016 +
2017 + <script type="application/ld+json">
2018 + {
2019 + "@context": "http://schema.org",
2020 + "@type": "ApartmentComplex",
2021 + "description": "Appartements à louer",
2022 + "address": "2665, rue Alexandra Québec Québec G1E1E4",
2023 + "latitude": "46,852647",
2024 + "longitude": "-71,226767",
2025 + "mainEntityOfPage": {
2026 + "@type": "WebPage",
2027 + "@id": "lafrance-mathieu.com/louer-appartement-quebec/15"
2028 + },
2029 + "photo": {
2030 + "@type": "ImageObject",
2031 + "url": "lafrance-mathieu.comhttps://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD081.JPG"
2032 + }
2033 + }
2034 + </script>
2035 + <a
2036 + href="/logement/15"
2037 + class="appartments card border-white col-sm-6 mb-4"
2038 + data-type="3"
2039 + data-borough="3"
2040 + >
2041 +
2042 +
2043 +
2044 +
2045 +<script>
2046 + function displayNowAvailableBubble(buildingId) {
2047 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2048 + nowAvailableBubble.classList.remove("d-none");
2049 + }
2050 +</script>
2051 +
2052 +<div class="row">
2053 +
2054 +
2055 +
2056 + <img src alt="" onerror="displayNowAvailableBubble(15);"></img>
2057 +
2058 +
2059 +
2060 +
2061 + <div class="now-available-bubble d-none" id="now-available-bubble-15">
2062 + <p class="text-white m-0">Disponible</p>
2063 + </div>
2064 +
2065 +
2066 + <div class="col-6 apartment-col">
2067 + <div class="row">
2068 + <div class="col-12 pr-0">
2069 +
2070 + <img
2071 + class="rounded-left apartment-image"
2072 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD073.jpg"
2073 + alt="unit image"
2074 + width=100%
2075 + height=232px
2076 + />
2077 +
2078 + </div>
2079 + </div>
2080 + </div>
2081 +
2082 +
2083 + <div class="col-6 apartment-col">
2084 + <div class="row">
2085 + <div class="col-12 pl-0">
2086 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD071.jpg"
2087 + alt="unit image" width="100%" height="116px">
2088 + </div>
2089 + </div>
2090 +
2091 + <div class="row">
2092 + <div class="col-12 pl-0">
2093 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD070.jpg"
2094 + alt="unit image" width=100% height=116px>
2095 + </div>
2096 + </div>
2097 +
2098 + </div>
2099 +
2100 +
2101 +
2102 +</div>
2103 +
2104 +
2105 +
2106 +
2107 +
2108 +<div class="row mt-4">
2109 + <div class="col-12">
2110 + <div class="card-body p-0 text-left">
2111 + <h5 class="apartment-borough">Appartements &middot; Beauport</h5>
2112 + <p class="apartment-address mb-1">2665, rue Alexandra</p>
2113 +
2114 +
2115 + <div class="row">
2116 + <div class="col-7">
2117 + <p class="apartment-infos mb-0">
2118 +
2119 + 4½ à partir de 1275$
2120 +
2121 + </p>
2122 + <p class="apartment-availability footnotes">
2123 + Libre immédiatement
2124 + </p>
2125 + </div>
2126 + <div class="col-5 text-right">
2127 +
2128 +
2129 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2130 +
2131 +
2132 +
2133 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2134 +
2135 +
2136 +
2137 + </div>
2138 + </div>
2139 +
2140 +
2141 +
2142 + </div>
2143 + </div>
2144 +</div>
2145 +
2146 + </a>
2147 +
2148 + <script type="application/ld+json">
2149 + {
2150 + "@context": "http://schema.org",
2151 + "@type": "ApartmentComplex",
2152 + "description": "Appartements à louer",
2153 + "address": "555, avenue du Fleuve Québec Québec G1E3N1",
2154 + "latitude": "46,853479",
2155 + "longitude": "-71,191040",
2156 + "mainEntityOfPage": {
2157 + "@type": "WebPage",
2158 + "@id": "lafrance-mathieu.com/louer-appartement-quebec/18"
2159 + },
2160 + "photo": {
2161 + "@type": "ImageObject",
2162 + "url": "lafrance-mathieu.comhttps://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/15-2_555_avenue_du_fleuve_b3d907f0-7c57-11eb-a546-0a56480f841b.jpg"
2163 + }
2164 + }
2165 + </script>
2166 + <a
2167 + href="/logement/18"
2168 + class="appartments card border-white col-sm-6 mb-4"
2169 + data-type="3"
2170 + data-borough="3"
2171 + >
2172 +
2173 +
2174 +
2175 +
2176 +<script>
2177 + function displayNowAvailableBubble(buildingId) {
2178 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2179 + nowAvailableBubble.classList.remove("d-none");
2180 + }
2181 +</script>
2182 +
2183 +<div class="row">
2184 +
2185 +
2186 +
2187 + <img src alt="" onerror="displayNowAvailableBubble(18);"></img>
2188 +
2189 +
2190 +
2191 +
2192 + <div class="now-available-bubble d-none" id="now-available-bubble-18">
2193 + <p class="text-white m-0">Disponible</p>
2194 + </div>
2195 +
2196 +
2197 + <div class="col-6 apartment-col">
2198 + <div class="row">
2199 + <div class="col-12 pr-0">
2200 +
2201 + <img
2202 + class="rounded-left apartment-image"
2203 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_3_bf11e94e-3f15-11f1-9a87-12e0191876fd.jpg"
2204 + alt="unit image"
2205 + width=100%
2206 + height=232px
2207 + />
2208 +
2209 + </div>
2210 + </div>
2211 + </div>
2212 +
2213 +
2214 + <div class="col-6 apartment-col">
2215 + <div class="row">
2216 + <div class="col-12 pl-0">
2217 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_2_bfb756f4-3f15-11f1-9a87-12e0191876fd.jpg"
2218 + alt="unit image" width="100%" height="116px">
2219 + </div>
2220 + </div>
2221 +
2222 + <div class="row">
2223 + <div class="col-12 pl-0">
2224 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_5_mod_c088e282-3f15-11f1-9a87-12e0191876fd.jpg"
2225 + alt="unit image" width=100% height=116px>
2226 + </div>
2227 + </div>
2228 +
2229 + </div>
2230 +
2231 +
2232 +
2233 +</div>
2234 +
2235 +
2236 +
2237 +
2238 +
2239 +<div class="row mt-4">
2240 + <div class="col-12">
2241 + <div class="card-body p-0 text-left">
2242 + <h5 class="apartment-borough">Appartements &middot; Beauport</h5>
2243 + <p class="apartment-address mb-1">555, avenue du Fleuve</p>
2244 +
2245 +
2246 + <div class="row">
2247 + <div class="col-7">
2248 + <p class="apartment-infos mb-0">
2249 +
2250 + 1½ à partir de 799$
2251 +
2252 + </p>
2253 + <p class="apartment-availability footnotes">
2254 + Libre immédiatement
2255 + </p>
2256 + </div>
2257 + <div class="col-5 text-right">
2258 +
2259 +
2260 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_light.png" alt="Électricité" height=18px width=18px>
2261 +
2262 +
2263 +
2264 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2265 +
2266 +
2267 +
2268 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_heat.png" alt="Chauffage" height=18px width=18px>
2269 +
2270 +
2271 +
2272 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2273 +
2274 +
2275 +
2276 +
2277 +
2278 +
2279 +
2280 + <p class="footnotes d-inline"> +2</p>
2281 +
2282 + </div>
2283 + </div>
2284 +
2285 +
2286 +
2287 + </div>
2288 + </div>
2289 +</div>
2290 +
2291 + </a>
2292 +
2293 + <script type="application/ld+json">
2294 + {
2295 + "@context": "http://schema.org",
2296 + "@type": "ApartmentComplex",
2297 + "description": "Appartements à louer",
2298 + "address": "89, rue Dartois Québec Québec G1C3C8",
2299 + "latitude": "46,884805",
2300 + "longitude": "-71,164130",
2301 + "mainEntityOfPage": {
2302 + "@type": "WebPage",
2303 + "@id": "lafrance-mathieu.com/louer-appartement-quebec/19"
2304 + },
2305 + "photo": {
2306 + "@type": "ImageObject",
2307 + "url": "lafrance-mathieu.comhttps://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/-PPD025_905df678-93b8-11eb-a9b8-0ebd7c1ee107.jpg"
2308 + }
2309 + }
2310 + </script>
2311 + <a
2312 + href="/logement/19"
2313 + class="appartments card border-white col-sm-6 mb-4"
2314 + data-type="3"
2315 + data-borough="3"
2316 + >
2317 +
2318 +
2319 +
2320 +
2321 +<script>
2322 + function displayNowAvailableBubble(buildingId) {
2323 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2324 + nowAvailableBubble.classList.remove("d-none");
2325 + }
2326 +</script>
2327 +
2328 +<div class="row">
2329 +
2330 +
2331 +
2332 + <img src alt="" onerror="displayNowAvailableBubble(19);"></img>
2333 +
2334 +
2335 +
2336 +
2337 + <div class="now-available-bubble d-none" id="now-available-bubble-19">
2338 + <p class="text-white m-0">Disponible</p>
2339 + </div>
2340 +
2341 +
2342 + <div class="col-6 apartment-col">
2343 + <div class="row">
2344 + <div class="col-12 pr-0">
2345 +
2346 + <img
2347 + class="rounded-left apartment-image"
2348 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/-PPD016_64ee21b8-ff5a-11ef-a3ed-123a044ec477.jpg"
2349 + alt="unit image"
2350 + width=100%
2351 + height=232px
2352 + />
2353 +
2354 + </div>
2355 + </div>
2356 + </div>
2357 +
2358 +
2359 + <div class="col-6 apartment-col">
2360 + <div class="row">
2361 + <div class="col-12 pl-0">
2362 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/-PPD014_6591752a-ff5a-11ef-a3ed-123a044ec477.jpg"
2363 + alt="unit image" width="100%" height="116px">
2364 + </div>
2365 + </div>
2366 +
2367 + <div class="row">
2368 + <div class="col-12 pl-0">
2369 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/-PPD015_662c2e4e-ff5a-11ef-a3ed-123a044ec477.jpg"
2370 + alt="unit image" width=100% height=116px>
2371 + </div>
2372 + </div>
2373 +
2374 + </div>
2375 +
2376 +
2377 +
2378 +</div>
2379 +
2380 +
2381 +
2382 +
2383 +
2384 +<div class="row mt-4">
2385 + <div class="col-12">
2386 + <div class="card-body p-0 text-left">
2387 + <h5 class="apartment-borough">Appartements &middot; Beauport</h5>
2388 + <p class="apartment-address mb-1">89, rue Dartois</p>
2389 +
2390 +
2391 + <div class="row">
2392 + <div class="col-7">
2393 + <p class="apartment-infos mb-0">
2394 +
2395 + 4½ à partir de 1090$
2396 +
2397 + </p>
2398 + <p class="apartment-availability footnotes">
2399 + Libre immédiatement
2400 + </p>
2401 + </div>
2402 + <div class="col-5 text-right">
2403 +
2404 +
2405 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_heat.png" alt="Chauffage" height=18px width=18px>
2406 +
2407 +
2408 +
2409 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2410 +
2411 +
2412 +
2413 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2414 +
2415 +
2416 +
2417 + </div>
2418 + </div>
2419 +
2420 +
2421 +
2422 + </div>
2423 + </div>
2424 +</div>
2425 +
2426 + </a>
2427 +
2428 + <script type="application/ld+json">
2429 + {
2430 + "@context": "http://schema.org",
2431 + "@type": "ApartmentComplex",
2432 + "description": "Appartements à louer",
2433 + "address": "3952 boul. Sainte-Anne Québec Québec G1E0M9",
2434 + "latitude": "None",
2435 + "longitude": "None",
2436 + "mainEntityOfPage": {
2437 + "@type": "WebPage",
2438 + "@id": "lafrance-mathieu.com/louer-appartement-quebec/333"
2439 + },
2440 + "photo": {
2441 + "@type": "ImageObject",
2442 + "url": "lafrance-mathieu.comhttps://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/1_585d6a96-4ed5-11f1-ab2a-12d0c5f785c3.png"
2443 + }
2444 + }
2445 + </script>
2446 + <a
2447 + href="/logement/333"
2448 + class="appartments card border-white col-sm-6 mb-4"
2449 + data-type="3"
2450 + data-borough="3"
2451 + >
2452 +
2453 +
2454 +
2455 +
2456 +<script>
2457 + function displayNowAvailableBubble(buildingId) {
2458 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2459 + nowAvailableBubble.classList.remove("d-none");
2460 + }
2461 +</script>
2462 +
2463 +<div class="row">
2464 +
2465 +
2466 +
2467 + <img src alt="" onerror="displayNowAvailableBubble(333);"></img>
2468 +
2469 +
2470 +
2471 +
2472 + <div class="now-available-bubble d-none" id="now-available-bubble-333">
2473 + <p class="text-white m-0">Disponible</p>
2474 + </div>
2475 +
2476 +
2477 + <div class="col-6 apartment-col">
2478 + <div class="row">
2479 + <div class="col-12 pr-0">
2480 +
2481 + <img
2482 + class="rounded-left apartment-image"
2483 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/3952_St-Anne_7_2fb84dca-8bbf-11ef-a152-0e98de9e3805.jpg"
2484 + alt="unit image"
2485 + width=100%
2486 + height=232px
2487 + />
2488 +
2489 + </div>
2490 + </div>
2491 + </div>
2492 +
2493 +
2494 + <div class="col-6 apartment-col">
2495 + <div class="row">
2496 + <div class="col-12 pl-0">
2497 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/3952_St-Anne_9_30d87900-8bbf-11ef-a152-0e98de9e3805.jpg"
2498 + alt="unit image" width="100%" height="116px">
2499 + </div>
2500 + </div>
2501 +
2502 + <div class="row">
2503 + <div class="col-12 pl-0">
2504 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/3952_St-Anne_10_31cf83b2-8bbf-11ef-a152-0e98de9e3805.jpg"
2505 + alt="unit image" width=100% height=116px>
2506 + </div>
2507 + </div>
2508 +
2509 + </div>
2510 +
2511 +
2512 +
2513 +</div>
2514 +
2515 +
2516 +
2517 +
2518 +
2519 +<div class="row mt-4">
2520 + <div class="col-12">
2521 + <div class="card-body p-0 text-left">
2522 + <h5 class="apartment-borough">Appartements &middot; Beauport</h5>
2523 + <p class="apartment-address mb-1">3952 boul. Sainte-Anne </p>
2524 +
2525 +
2526 + <div class="row">
2527 + <div class="col-7">
2528 + <p class="apartment-infos mb-0">
2529 +
2530 + 4½ à partir de 1750$
2531 +
2532 + </p>
2533 + <p class="apartment-availability footnotes">
2534 + Libre immédiatement
2535 + </p>
2536 + </div>
2537 + <div class="col-5 text-right">
2538 +
2539 +
2540 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_light.png" alt="Électricité" height=18px width=18px>
2541 +
2542 +
2543 +
2544 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2545 +
2546 +
2547 +
2548 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_heat.png" alt="Chauffage" height=18px width=18px>
2549 +
2550 +
2551 +
2552 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2553 +
2554 +
2555 +
2556 +
2557 +
2558 +
2559 +
2560 +
2561 +
2562 +
2563 +
2564 + <p class="footnotes d-inline"> +4</p>
2565 +
2566 + </div>
2567 + </div>
2568 +
2569 +
2570 +
2571 + </div>
2572 + </div>
2573 +</div>
2574 +
2575 + </a>
2576 +
2577 +</div>
2578 +
2579 +
2580 +
2581 +
2582 +
2583 +
2584 +
2585 +
2586 +
2587 +<div class="row my-5 ">
2588 + <h1 class="col-12 text-center mb-3 new-title">
2589 + Explorer les logements à louer par secteurs
2590 + </h1>
2591 + <div class="w-100 mb-4"><div class="diamond-separator"><div class="diamond-container"><div class="diamond"></div></div></div></div>
2592 +
2593 + <div class="col-md-12 left-align-slick">
2594 + <div class="centered--left multiple-items-slick-arrow--left"></div>
2595 + <div class="slick-carousel" data-items="4">
2596 +
2597 + <a
2598 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2599 + data-borough="3"
2600 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/799px-Beauport_QC.jpeg');"
2601 + href="/louer-appartement-quebec/?boroughs=3"
2602 + >
2603 + <div class="bottom--middle d-flex flex-column pb-3">
2604 + <p class="thumbnail-title text-white mb-1">Beauport</p>
2605 + <span class="text-white very-small-paragraph">
2606 + 9
2607 + Logements
2608 + </span>
2609 + </div>
2610 + <div class="tile-gradient rounded"></div>
2611 + </a>
2612 +
2613 + <a
2614 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2615 + data-borough="8"
2616 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Quebec-Parc_des_Moulins.jpeg');"
2617 + href="/louer-appartement-quebec/?boroughs=8"
2618 + >
2619 + <div class="bottom--middle d-flex flex-column pb-3">
2620 + <p class="thumbnail-title text-white mb-1">Charlesbourg</p>
2621 + <span class="text-white very-small-paragraph">
2622 + 6
2623 + Logements
2624 + </span>
2625 + </div>
2626 + <div class="tile-gradient rounded"></div>
2627 + </a>
2628 +
2629 + <a
2630 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2631 + data-borough="9"
2632 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Ancienne_Lorette_church_1.jpg');"
2633 + href="/louer-appartement-quebec/?boroughs=9"
2634 + >
2635 + <div class="bottom--middle d-flex flex-column pb-3">
2636 + <p class="thumbnail-title text-white mb-1">L&#x27;Ancienne-Lorette</p>
2637 + <span class="text-white very-small-paragraph">
2638 + 1
2639 + Logement
2640 + </span>
2641 + </div>
2642 + <div class="tile-gradient rounded"></div>
2643 + </a>
2644 +
2645 + <a
2646 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2647 + data-borough="10"
2648 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/825-Lebourgneuf-3.jpg');"
2649 + href="/louer-appartement-quebec/?boroughs=10"
2650 + >
2651 + <div class="bottom--middle d-flex flex-column pb-3">
2652 + <p class="thumbnail-title text-white mb-1">Lebourgneuf</p>
2653 + <span class="text-white very-small-paragraph">
2654 + 3
2655 + Logements
2656 + </span>
2657 + </div>
2658 + <div class="tile-gradient rounded"></div>
2659 + </a>
2660 +
2661 + <a
2662 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2663 + data-borough="4"
2664 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Rue_de_Duberger.JPG');"
2665 + href="/louer-appartement-quebec/?boroughs=4"
2666 + >
2667 + <div class="bottom--middle d-flex flex-column pb-3">
2668 + <p class="thumbnail-title text-white mb-1">Les Saules</p>
2669 + <span class="text-white very-small-paragraph">
2670 + 9
2671 + Logements
2672 + </span>
2673 + </div>
2674 + <div class="tile-gradient rounded"></div>
2675 + </a>
2676 +
2677 + <a
2678 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2679 + data-borough="14"
2680 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/');"
2681 + href="/louer-appartement-quebec/?boroughs=14"
2682 + >
2683 + <div class="bottom--middle d-flex flex-column pb-3">
2684 + <p class="thumbnail-title text-white mb-1">Lévis</p>
2685 + <span class="text-white very-small-paragraph">
2686 + 4
2687 + Logements
2688 + </span>
2689 + </div>
2690 + <div class="tile-gradient rounded"></div>
2691 + </a>
2692 +
2693 + <a
2694 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2695 + data-borough="1"
2696 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/photo1web.jpg');"
2697 + href="/louer-appartement-quebec/?boroughs=1"
2698 + >
2699 + <div class="bottom--middle d-flex flex-column pb-3">
2700 + <p class="thumbnail-title text-white mb-1">Limoilou</p>
2701 + <span class="text-white very-small-paragraph">
2702 + 3
2703 + Logements
2704 + </span>
2705 + </div>
2706 + <div class="tile-gradient rounded"></div>
2707 + </a>
2708 +
2709 + <a
2710 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2711 + data-borough="15"
2712 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Capture_Loretteville_62833718-00b7-11ee-b4cd-0aa8d57fe613.JPG');"
2713 + href="/louer-appartement-quebec/?boroughs=15"
2714 + >
2715 + <div class="bottom--middle d-flex flex-column pb-3">
2716 + <p class="thumbnail-title text-white mb-1">Loretteville</p>
2717 + <span class="text-white very-small-paragraph">
2718 + 1
2719 + Logement
2720 + </span>
2721 + </div>
2722 + <div class="tile-gradient rounded"></div>
2723 + </a>
2724 +
2725 + <a
2726 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2727 + data-borough="6"
2728 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/McDo-Neufchatel-LOrmiere-100319.jpg');"
2729 + href="/louer-appartement-quebec/?boroughs=6"
2730 + >
2731 + <div class="bottom--middle d-flex flex-column pb-3">
2732 + <p class="thumbnail-title text-white mb-1">Neufchatel</p>
2733 + <span class="text-white very-small-paragraph">
2734 + 6
2735 + Logements
2736 + </span>
2737 + </div>
2738 + <div class="tile-gradient rounded"></div>
2739 + </a>
2740 +
2741 + <a
2742 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2743 + data-borough="12"
2744 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/49d7b304030f13d829218118b51cfaa6.jpg_1200x630.jpg');"
2745 + href="/louer-appartement-quebec/?boroughs=12"
2746 + >
2747 + <div class="bottom--middle d-flex flex-column pb-3">
2748 + <p class="thumbnail-title text-white mb-1">Québec</p>
2749 + <span class="text-white very-small-paragraph">
2750 + 2
2751 + Logements
2752 + </span>
2753 + </div>
2754 + <div class="tile-gradient rounded"></div>
2755 + </a>
2756 +
2757 + <a
2758 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2759 + data-borough="16"
2760 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/00000000667_9c1dd4e2-00b7-11ee-b4cd-0aa8d57fe613.jpg');"
2761 + href="/louer-appartement-quebec/?boroughs=16"
2762 + >
2763 + <div class="bottom--middle d-flex flex-column pb-3">
2764 + <p class="thumbnail-title text-white mb-1">Saint-Augustin-de-Desmaures</p>
2765 + <span class="text-white very-small-paragraph">
2766 + 10
2767 + Logements
2768 + </span>
2769 + </div>
2770 + <div class="tile-gradient rounded"></div>
2771 + </a>
2772 +
2773 + <a
2774 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2775 + data-borough="13"
2776 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/');"
2777 + href="/louer-appartement-quebec/?boroughs=13"
2778 + >
2779 + <div class="bottom--middle d-flex flex-column pb-3">
2780 + <p class="thumbnail-title text-white mb-1">St-Roch</p>
2781 + <span class="text-white very-small-paragraph">
2782 + 1
2783 + Logement
2784 + </span>
2785 + </div>
2786 + <div class="tile-gradient rounded"></div>
2787 + </a>
2788 +
2789 + <a
2790 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2791 + data-borough="5"
2792 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/photo-Place-ste-foy-01_3c5c9397-5056-a36a-072cdccbffa30859.jpg');"
2793 + href="/louer-appartement-quebec/?boroughs=5"
2794 + >
2795 + <div class="bottom--middle d-flex flex-column pb-3">
2796 + <p class="thumbnail-title text-white mb-1">Ste-Foy</p>
2797 + <span class="text-white very-small-paragraph">
2798 + 14
2799 + Logements
2800 + </span>
2801 + </div>
2802 + <div class="tile-gradient rounded"></div>
2803 + </a>
2804 +
2805 + <a
2806 + class="borough-filter hoverable d-flex mr-2 justify-content-center cursor-pointer home-tile-borough rounded position-relative"
2807 + data-borough="17"
2808 + style="background-image: url('https://gilm-site-vitrine-production.s3.amazonaws.com/media/');"
2809 + href="/louer-appartement-quebec/?boroughs=17"
2810 + >
2811 + <div class="bottom--middle d-flex flex-column pb-3">
2812 + <p class="thumbnail-title text-white mb-1">Val-Bélair</p>
2813 + <span class="text-white very-small-paragraph">
2814 + 2
2815 + Logements
2816 + </span>
2817 + </div>
2818 + <div class="tile-gradient rounded"></div>
2819 + </a>
2820 +
2821 + </div>
2822 + <div class="centered--right multiple-items-slick-arrow--right"></div>
2823 + </div>
2824 +</div>
2825 +
2826 +
2827 +
2828 +
2829 +
2830 +
2831 +
2832 + <div class="row mt-5 ">
2833 + <h2 class="col-12 text-center mb-4 text-primary">Nos logements en vedette</h2>
2834 + <div class="col-12 mb-3">
2835 +
2836 +
2837 +
2838 +<div class="row">
2839 +
2840 + <a
2841 + href="/logement/18"
2842 + class="appartments card border-white col-sm-6 mb-4 col-md-6 "
2843 + data-type="3"
2844 + data-borough="3"
2845 + >
2846 +
2847 +
2848 +
2849 +
2850 +<script>
2851 + function displayNowAvailableBubble(buildingId) {
2852 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2853 + nowAvailableBubble.classList.remove("d-none");
2854 + }
2855 +</script>
2856 +
2857 +<div class="row">
2858 +
2859 +
2860 +
2861 + <img src alt="" onerror="displayNowAvailableBubble(18 + '-recommendation');"></img>
2862 +
2863 +
2864 +
2865 +
2866 + <div class="now-available-bubble d-none" id="now-available-bubble-18-recommendation">
2867 + <p class="text-white m-0">En vedette</p>
2868 + </div>
2869 +
2870 +
2871 + <div class="col-6 apartment-col">
2872 + <div class="row">
2873 + <div class="col-12 pr-0">
2874 +
2875 + <img
2876 + class="rounded-left apartment-image"
2877 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_3_bf11e94e-3f15-11f1-9a87-12e0191876fd.jpg"
2878 + alt="unit image"
2879 + width=100%
2880 + height=232px
2881 + />
2882 +
2883 + </div>
2884 + </div>
2885 + </div>
2886 +
2887 +
2888 + <div class="col-6 apartment-col">
2889 + <div class="row">
2890 + <div class="col-12 pl-0">
2891 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_2_bfb756f4-3f15-11f1-9a87-12e0191876fd.jpg"
2892 + alt="unit image" width="100%" height="116px">
2893 + </div>
2894 + </div>
2895 +
2896 + <div class="row">
2897 + <div class="col-12 pl-0">
2898 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_5_mod_c088e282-3f15-11f1-9a87-12e0191876fd.jpg"
2899 + alt="unit image" width=100% height=116px>
2900 + </div>
2901 + </div>
2902 +
2903 + </div>
2904 +
2905 +
2906 +
2907 +</div>
2908 +
2909 +
2910 +
2911 +
2912 +
2913 +<div class="row mt-4">
2914 + <div class="col-12">
2915 + <div class="card-body p-0 text-left">
2916 + <h5 class="apartment-borough">Appartements &middot; Beauport</h5>
2917 + <p class="apartment-address mb-1">555, avenue du Fleuve</p>
2918 +
2919 +
2920 + <div class="row">
2921 + <div class="col-7">
2922 + <p class="apartment-infos mb-0">
2923 +
2924 + 1½ à partir de 799$
2925 +
2926 + </p>
2927 + <p class="apartment-availability footnotes">
2928 + Libre immédiatement
2929 + </p>
2930 + </div>
2931 + <div class="col-5 text-right">
2932 +
2933 +
2934 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_light.png" alt="Électricité" height=18px width=18px>
2935 +
2936 +
2937 +
2938 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2939 +
2940 +
2941 +
2942 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_heat.png" alt="Chauffage" height=18px width=18px>
2943 +
2944 +
2945 +
2946 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2947 +
2948 +
2949 +
2950 +
2951 +
2952 +
2953 +
2954 + <p class="footnotes d-inline"> +2</p>
2955 +
2956 + </div>
2957 + </div>
2958 +
2959 +
2960 +
2961 + </div>
2962 + </div>
2963 +</div>
2964 +
2965 + </a>
2966 +
2967 + <a
2968 + href="/logement/312"
2969 + class="appartments card border-white col-sm-6 mb-4 col-md-6 "
2970 + data-type="3"
2971 + data-borough="10"
2972 + >
2973 +
2974 +
2975 +
2976 +
2977 +<script>
2978 + function displayNowAvailableBubble(buildingId) {
2979 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2980 + nowAvailableBubble.classList.remove("d-none");
2981 + }
2982 +</script>
2983 +
2984 +<div class="row">
2985 +
2986 +
2987 +
2988 + <img src alt="" onerror="displayNowAvailableBubble(312 + '-recommendation');"></img>
2989 +
2990 +
2991 +
2992 +
2993 + <div class="now-available-bubble d-none" id="now-available-bubble-312-recommendation">
2994 + <p class="text-white m-0">En vedette</p>
2995 + </div>
2996 +
2997 +
2998 + <div class="col-6 apartment-col">
2999 + <div class="row">
3000 + <div class="col-12 pr-0">
3001 +
3002 + <img
3003 + class="rounded-left apartment-image"
3004 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/CUISINE_2_a8e2db9c-5811-11f0-8a5b-0e9b4be91035.jpg"
3005 + alt="unit image"
3006 + width=100%
3007 + height=232px
3008 + />
3009 +
3010 + </div>
3011 + </div>
3012 + </div>
3013 +
3014 +
3015 + <div class="col-6 apartment-col">
3016 + <div class="row">
3017 + <div class="col-12 pl-0">
3018 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/CUISINE_a99b01fe-5811-11f0-8a5b-0e9b4be91035.jpg"
3019 + alt="unit image" width="100%" height="116px">
3020 + </div>
3021 + </div>
3022 +
3023 + <div class="row">
3024 + <div class="col-12 pl-0">
3025 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/SALON_aa37903c-5811-11f0-8a5b-0e9b4be91035.jpg"
3026 + alt="unit image" width=100% height=116px>
3027 + </div>
3028 + </div>
3029 +
3030 + </div>
3031 +
3032 +
3033 +
3034 +</div>
3035 +
3036 +
3037 +
3038 +
3039 +
3040 +<div class="row mt-4">
3041 + <div class="col-12">
3042 + <div class="card-body p-0 text-left">
3043 + <h5 class="apartment-borough">Appartements &middot; Lebourgneuf</h5>
3044 + <p class="apartment-address mb-1">5900 boul. St-Jacques</p>
3045 +
3046 +
3047 + <div class="row">
3048 + <div class="col-7">
3049 + <p class="apartment-infos mb-0">
3050 +
3051 + 4½ à partir de 1595$
3052 +
3053 + </p>
3054 + <p class="apartment-availability footnotes">
3055 + octobre 2026
3056 + </p>
3057 + </div>
3058 + <div class="col-5 text-right">
3059 +
3060 +
3061 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
3062 +
3063 +
3064 +
3065 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_ac.png" alt="Climatiseur" height=18px width=18px>
3066 +
3067 +
3068 +
3069 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
3070 +
3071 +
3072 +
3073 + </div>
3074 + </div>
3075 +
3076 +
3077 +
3078 + </div>
3079 + </div>
3080 +</div>
3081 +
3082 + </a>
3083 +
3084 + <a
3085 + href="/logement/160"
3086 + class="appartments card border-white col-sm-6 mb-4 col-md-6 "
3087 + data-type="3"
3088 + data-borough="6"
3089 + >
3090 +
3091 +
3092 +
3093 +
3094 +<script>
3095 + function displayNowAvailableBubble(buildingId) {
3096 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
3097 + nowAvailableBubble.classList.remove("d-none");
3098 + }
3099 +</script>
3100 +
3101 +<div class="row">
3102 +
3103 +
3104 +
3105 + <img src alt="" onerror="displayNowAvailableBubble(160 + '-recommendation');"></img>
3106 +
3107 +
3108 +
3109 +
3110 + <div class="now-available-bubble d-none" id="now-available-bubble-160-recommendation">
3111 + <p class="text-white m-0">En vedette</p>
3112 + </div>
3113 +
3114 +
3115 + <div class="col-6 apartment-col">
3116 + <div class="row">
3117 + <div class="col-12 pr-0">
3118 +
3119 + <img
3120 + class="rounded-left apartment-image"
3121 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD1_54749d22-bfa3-11ea-9b14-0e226705be53.jpg"
3122 + alt="unit image"
3123 + width=100%
3124 + height=232px
3125 + />
3126 +
3127 + </div>
3128 + </div>
3129 + </div>
3130 +
3131 +
3132 + <div class="col-6 apartment-col">
3133 + <div class="row">
3134 + <div class="col-12 pl-0">
3135 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD2_5554869e-bfa3-11ea-9b14-0e226705be53.jpg"
3136 + alt="unit image" width="100%" height="116px">
3137 + </div>
3138 + </div>
3139 +
3140 + <div class="row">
3141 + <div class="col-12 pl-0">
3142 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD3_562eca5c-bfa3-11ea-9b14-0e226705be53.jpg"
3143 + alt="unit image" width=100% height=116px>
3144 + </div>
3145 + </div>
3146 +
3147 + </div>
3148 +
3149 +
3150 +
3151 +</div>
3152 +
3153 +
3154 +
3155 +
3156 +
3157 +<div class="row mt-4">
3158 + <div class="col-12">
3159 + <div class="card-body p-0 text-left">
3160 + <h5 class="apartment-borough">Appartements &middot; Neufchatel</h5>
3161 + <p class="apartment-address mb-1">1573, rue Pierre-Corneille</p>
3162 +
3163 +
3164 + <div class="row">
3165 + <div class="col-7">
3166 + <p class="apartment-infos mb-0">
3167 +
3168 + 4½ à partir de 1250$
3169 +
3170 + </p>
3171 + <p class="apartment-availability footnotes">
3172 + Libre immédiatement
3173 + </p>
3174 + </div>
3175 + <div class="col-5 text-right">
3176 +
3177 +
3178 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
3179 +
3180 +
3181 +
3182 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
3183 +
3184 +
3185 +
3186 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
3187 +
3188 +
3189 +
3190 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_appliances_alt.png" alt="Lave-vaisselle" height=18px width=18px>
3191 +
3192 +
3193 +
3194 + </div>
3195 + </div>
3196 +
3197 +
3198 +
3199 + </div>
3200 + </div>
3201 +</div>
3202 +
3203 + </a>
3204 +
3205 +</div>
3206 +
3207 + </div>
3208 +
3209 + </div>
3210 +
3211 +
3212 +
3213 + </div>
3214 +
3215 + <div class="col-md-6 pt-4">
3216 +
3217 +
3218 +<script id="building-coordinates" type="application/json">[{"loc": ["46.852647", "-71.226767"], "id": 15}, {"loc": ["46.853479", "-71.191040"], "id": 18}, {"loc": ["46.884805", "-71.164130"], "id": 19}]</script>
3219 +
3220 +<div id="map-container" class=" mb-2 mt-1">
3221 + <div id="interactive-map" style="height: 100%;" class="rounded">
3222 + </div>
3223 +</div>
3224 +
3225 + </div>
3226 +
3227 + </div>
3228 + </div>
3229 + </div>
3230 +</div>
3231 +
3232 + </main>
3233 + <footer>
3234 +
3235 +
3236 +
3237 +<div class="footer row m-0 p-5 justify-content-center bg-black">
3238 + <div class="container m-0">
3239 + <div class="row mb-3">
3240 + <img src="/static/images/logos/sansfond_horizontal_blanc.png" alt="L&M Logo" width="auto"
3241 + height="80px" class="footer-logo">
3242 + </div>
3243 + <div class="row">
3244 + <div class="col-12 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pr-sm-4 d-flex flex-column">
3245 + <p class="footer-title mb-2">Contactez-nous</p>
3246 + <p class="footer-text mb-3">Pour toute question concercant nos services de gestion immobilière, nos logements à louer ou pour en savoir plus sur nos offres et services.</p>
3247 + <a href="tel:14186265500" class="mb-3 d-flex align-items-center">
3248 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-3" />
3249 + <span class="footer-phone">418 626-5500</span>
3250 + </a>
3251 + <a href="/cdn-cgi/l/email-protection#6d04030b022d010c0b1f0c030e0840000c1905040818430e0200" target="_blank" class="mb-3 d-flex align-items-center">
3252 + <img src=/static/images/icons/email.svg alt="email icon" class="footer-icon mr-3" />
3253 + <span><span class="__cf_email__" data-cfemail="fd94939b92bd919c9b8f9c939e98d0909c8995949888d39e9290">[email&#160;protected]</span></span>
3254 + </a>
3255 + <a href="https://g.page/Lafrance-Mathieu?share" target="_blank" class="mb-4 d-flex align-items-center">
3256 + 1220 Boulevard Lebourgneuf<br>Québec, QC G2K 2G4
3257 + </a>
3258 + <p class="footer-title mb-2">Suivez-nous sur les réseaux</p>
3259 + <div class="d-flex">
3260 + <a href="https://ca.linkedin.com/company/gestion-immobilière-lafrance-et-mathieu-inc">
3261 + <img src=/static/images/icons/linkedin.svg alt="linkedin icon"
3262 + class="footer-social-icon mr-3" />
3263 + </a>
3264 + <a href="https://fr-ca.facebook.com/lafrance.mathieu">
3265 + <img src=/static/images/icons/facebook.svg alt="facebook icon"
3266 + class="footer-social-icon" />
3267 + </a>
3268 + </div>
3269 + </div>
3270 + <div class="col-10 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pl-sm-4 px-md-4 d-flex flex-column">
3271 + <p class="footer-title mb-2">Soutien aux résidents (24/7)</p>
3272 + <p class="footer-text mb-3">Pour toute urgence n’hésitez pas à nous contacter ou connectez vous à l’Espace client pour toute question ou demande moins urgente.</p>
3273 + <a href="tel:14186265500" class="mb-3 d-flex align-items-center">
3274 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-3" />
3275 + <span class="footer-phone">418-626-5500</span>
3276 + </a>
3277 + <a href="https://espace-client.lafrance-mathieu.com" target="_blank" class="d-flex align-items-center mb-3">
3278 + <img src=/static/images/icons/ticket.svg alt="client space icon" class="footer-icon mr-3" />
3279 + <span>Se connecter à l’Espace client</span>
3280 + </a>
3281 + <a href="https://doma.lafrance-mathieu.com:444/DocRoom/Auth/Login.aspx" target="_blank" class="d-flex align-items-center">
3282 + <img src=/static/images/icons/ticket.svg alt="intranet icon" class="footer-icon mr-3" />
3283 + <span>Se connecter à Sensaas</span>
3284 + </a>
3285 + </div>
3286 + <div class="col-10 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pr-sm-4 px-md-4">
3287 + <ul class="navbar-nav">
3288 +
3289 +
3290 +
3291 +<li class="nav-item ">
3292 + <a class="nav-link py-0 footer-main-navigation mb-3"
3293 + href="/">Accueil</a>
3294 + <hr class="my-1 border-gray-medium d-none">
3295 +</li>
3296 +
3297 +
3298 +
3299 +
3300 +
3301 +<li class="nav-item ">
3302 + <a class="nav-link py-0 footer-main-navigation mb-3"
3303 + href="/services-de-gestion-immobiliere">Services de gestion <br class='nav-item-translation'>immobilière</a>
3304 + <hr class="my-1 border-gray-medium d-none">
3305 +</li>
3306 +
3307 +
3308 +
3309 +
3310 +
3311 +<li class="nav-item active ">
3312 + <a class="nav-link py-0 footer-main-navigation mb-3"
3313 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
3314 + <hr class="my-1 border-gray-medium d-none">
3315 +</li>
3316 +
3317 +
3318 +
3319 +
3320 +
3321 +<li class="nav-item ">
3322 + <a class="nav-link py-0 footer-main-navigation mb-3"
3323 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
3324 + <hr class="my-1 border-gray-medium d-none">
3325 +</li>
3326 +
3327 +
3328 +
3329 +
3330 +
3331 +<li class="nav-item ">
3332 + <a class="nav-link py-0 footer-main-navigation mb-3"
3333 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
3334 + <hr class="my-1 border-gray-medium d-none">
3335 +</li>
3336 +
3337 +
3338 +
3339 +
3340 +
3341 +<li class="nav-item ">
3342 + <a class="nav-link py-0 footer-main-navigation mb-3"
3343 + href="/qui-sommes-nous/">À propos de <br class='nav-item-translation'>Lafrance & Mathieu</a>
3344 + <hr class="my-1 border-gray-medium d-none">
3345 +</li>
3346 +
3347 +
3348 +
3349 + </ul>
3350 + </div>
3351 + <div class="col-10 col-sm-6 col-md-3 p-0 pl-sm-4">
3352 + <ul class="navbar-nav">
3353 +
3354 +
3355 +
3356 +<li class="nav-item ">
3357 + <a class="nav-link py-0 footer-main-navigation mb-3"
3358 + href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
3359 + <hr class="my-1 border-gray-medium d-none">
3360 +</li>
3361 +
3362 +
3363 +
3364 +
3365 +
3366 +<li class="nav-item ">
3367 + <a class="nav-link py-0 footer-main-navigation mb-3"
3368 + href="/blog">Blogue</a>
3369 + <hr class="my-1 border-gray-medium d-none">
3370 +</li>
3371 +
3372 +
3373 +
3374 +
3375 +
3376 +<li class="nav-item ">
3377 + <a class="nav-link py-0 footer-main-navigation mb-3"
3378 + href="/faire-carriere/">Carrières</a>
3379 + <hr class="my-1 border-gray-medium d-none">
3380 +</li>
3381 +
3382 +
3383 +
3384 + </ul>
3385 + </div>
3386 + </div>
3387 + </div>
3388 +</div>
3389 +
3390 +
3391 +
3392 +
3393 +<div class="footer-notices d-flex flex-column w-100 m-0 px-5 py-4 align-items-start align-items-sm-center bg-darker">
3394 + <div class="d-flex justify-content-center">
3395 + <ul class="list-inline mb-1">
3396 +
3397 + <li class="list-inline-item">
3398 + <a href=/conditions-utilisation>
3399 + Conditions d'utilisation
3400 + </a>
3401 + </li>
3402 +
3403 +
3404 + <li class="list-inline-item">
3405 + <a href=/politique-confidentialite>
3406 + Politique de confidentialité
3407 + </a>
3408 + </li>
3409 +
3410 +
3411 + <li class="list-inline-item">
3412 + <a href=/protection-renseignements-personnels>
3413 + Protection des renseignements personnels
3414 + </a>
3415 + </li>
3416 +
3417 +
3418 + <li class="list-inline-item">
3419 + <a href=/temoins-navigation>
3420 + Gérer vos témoins de navigation
3421 + </a>
3422 + </li>
3423 +
3424 + </ul>
3425 + </div>
3426 + <div class="d-flex justify-content-center">
3427 + <p class="">© Gestion immobilière Lafrance & Mathieu</p>
3428 + </div>
3429 +</div>
3430 +
3431 + </footer>
3432 +
3433 +
3434 +<!-- Cookie Banner -->
3435 +<div id="gilm-cookie-banner" class="alert alert-dark hidden" role="alert">
3436 + <div class="gilm-cookie-banner-container">
3437 + <div class="gilm-cookie-banner-text">
3438 + <p>
3439 + Nous utilisons les témoins de navigation (cookies) afin de mesurer et d’améliorer l’efficacité de nos
3440 + sites
3441 + Web
3442 + ou de rehausser l’expérience client. En utilisant notre site Web, vous consentez à l’utilisation de
3443 + témoins,
3444 + comme l’explique notre <a href=/protection-renseignements-personnels> protection des
3445 + renseignements personnels</a>. Si vous n'êtes pas à l'aise avec
3446 + l'utilisation
3447 + de ces informations, veuillez revoir vos paramètres avant de poursuivre votre visite.
3448 + </p>
3449 + <p class="d-sm-none">
3450 + <a href=/temoins-navigation>
3451 + Gérer vos témoins de navigation
3452 + </a>
3453 + <br/>
3454 + <a href=/politique-confidentialite>
3455 + Politique de confidentialité
3456 + </a>
3457 + <br/>
3458 + <a href=/conditions-utilisation>
3459 + Conditions d'utilisation
3460 + </a>
3461 + </p>
3462 + <p class="d-none d-sm-block">
3463 + <a href=/temoins-navigation>
3464 + Gérer vos témoins de navigation
3465 + </a>
3466 + -
3467 + <a href=/politique-confidentialite>
3468 + Politique de confidentialité
3469 + </a>
3470 + -
3471 + <a href=/conditions-utilisation>
3472 + Conditions d'utilisation
3473 + </a>
3474 + </p>
3475 + </div>
3476 + <button type="button" class="gilm-cookie-banner-button btn btn-primary btn-sm ms-3"
3477 + onclick="window.gilm_hideCookieBanner()">
3478 + <img src=/static/images/icons/close.svg alt="closing icon" class="close-icon"/>
3479 + </button>
3480 + </div>
3481 +</div>
3482 +<!-- End of Cookie Banner -->
3483 + </div>
3484 + <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous">
3485 + </script>
3486 + <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js" integrity="sha256-eGE6blurk5sHj+rmkfsGYeKyZx3M4bG+ZlFyA7Kns7E=" crossorigin="anonymous">
3487 + </script>
3488 + <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js" crossorigin="anonymous"></script>
3489 + <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous">
3490 + </script>
3491 + <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous">
3492 + </script>
3493 + <script type="text/javascript" src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js">
3494 + </script>
3495 + <script type="text/javascript" src="/static/js/carousel.js">
3496 + </script>
3497 + <script type="text/javascript" src="/static/js/cookie_banner.js">
3498 + </script>
3499 + <script id="search-script" type="text/javascript" src="/static/js/search.js">
3500 + </script>
3501 + <script type="text/javascript" src="/static/js/jssocials.min.js">
3502 + </script>
3503 + <script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin="">
3504 + </script>
3505 + <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js" integrity="sha256-bqVeqGdJ7h/lYPq6xrPv/YGzMEb6dNxlfiTUHSgRCp8=" crossorigin="anonymous">
3506 + </script>
3507 + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/locales/bootstrap-datepicker.fr.min.js" charset="UTF-8">
3508 + </script>
3509 + <script async src="https://www.googletagmanager.com/gtag/js?id=UA-20687227-3"></script>
3510 + <script>
3511 + window.dataLayer = window.dataLayer || [];
3512 +
3513 + function gtag() {
3514 + dataLayer.push(arguments);
3515 + }
3516 + gtag('js', new Date());
3517 + gtag('config', 'UA-20687227-3');
3518 + </script>
3519 +
3520 +<script type="text/javascript" src="/static/js/leaflet.js">
3521 +</script>
3522 +
3523 +
3524 + </body>
3525 +
3526 + </html>
added tests/fixtures/lafrance_mathieu/1976cdb7c39f28d237bc.html +2788 −0
@@ -0,0 +1,2788 @@
1 +
2 +
3 +
4 +
5 + <!DOCTYPE html>
6 + <html lang="fr" class="building-detail">
7 +
8 + <head>
9 +
10 + <meta charset="utf-8">
11 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
12 + <meta name="format-detection" content="telephone=no" />
13 + <link rel="alternate" href="https://lafrance-mathieu.com" hreflang="fr-ca" />
14 + <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css" />
15 + <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
16 + <link rel="stylesheet" href="/static/styling/index.css" />
17 + <script src="https://kit.fontawesome.com/72880f5a8c.js" crossorigin="anonymous"></script>
18 + <link rel="stylesheet" href="/static/styling/vendor/jssocials.css" />
19 + <link rel="stylesheet" href="/static/styling/vendor/jssocials-theme-flat.css" />
20 + <link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin="" />
21 + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css" integrity="sha256-siyOpF/pBWUPgIcQi17TLBkjvNgNQArcmwJB8YvkAgg=" crossorigin="anonymous" />
22 +
23 +<link rel="alternate" hreflang="fr-ca" href="/logement/137" />
24 +<meta name="title" content="Logement a louer - 1520, rue de la Pente">
25 +<meta name="description" content="Trouvez votre appartement chez Lafrance et Mathieu. Louez un logement.">
26 +<meta name="keywords"
27 + content="appartement a louer,logement a louer, alouer, studio a louer, appartement meublé, appartement, louer, logement vacant, condo à louer,condo locatif, condo a louer lebourgneuf, condo a louer neufchatel, condo a louer charlesbourg, condo locatif Québec, logement, Québec, ville de québec, limoilou, charlesbourg, beauport, location, lafrance, mathieu, 1 et demi, 2 et demi, 3 et demi, 4 et demi, 5 et demi, 6 et demi, 7 et demi">
28 +<meta name="robots" content="index, follow">
29 +<title>1520, rue de la Pente - Lafrance & Mathieu</title>
30 +<script src="https://www.google.com/recaptcha/api.js?hl=fr" async defer></script>
31 +
32 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
33 + <meta name="language" content="French">
34 + <link rel="icon" type="image/ico" href="/static/images/favicon.ico" />
35 +
36 +
37 + <!-- Google Tag Manager -->
38 + <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
39 + new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
40 + j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
41 + 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
42 + })(window,document,'script','dataLayer','GTM-T675TG3');</script>
43 + <!-- End Google Tag Manager -->
44 + </head>
45 +
46 + <body>
47 + <!-- Google Tag Manager (noscript) -->
48 + <noscript><iframe src=https://www.googletagmanager.com/ns.html?id=GTM-T675TG3
49 + height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
50 + <!-- End Google Tag Manager (noscript) -->
51 +
52 + <div class="main-container">
53 + <header id="gilm-header" class>
54 +
55 +
56 +
57 +
58 +<nav class="nav desktop-nav">
59 + <div class="desktop-nav-top">
60 + <a class="desktop-nav-top-link" href="/faire-carriere/">
61 + <p>Carrières</p>
62 + </a>
63 +
64 + <a class="desktop-nav-top-link" href="/blog">
65 + <p>Lafrance et Mathieu: Blogue</p>
66 + </a>
67 +
68 + <a class="desktop-nav-top-link" href="https://espace-client.lafrance-mathieu.com" target="_blank">
69 + <p class="text-primary">Connexion</p>
70 + </a>
71 + </div>
72 + <div class="desktop-nav-bottom ">
73 + <ul class="desktop-nav-bottom-content left">
74 +
75 +
76 +
77 +
78 +
79 +
80 +
81 +<li
82 + class="nav-item dropdown "
83 + href="#"
84 +>
85 + <a
86 + class="nav-link py-0 dropdown-toggle header-main-navigation"
87 + href="#"
88 + id="navbardrop"
89 + data-toggle="dropdown"
90 + >
91 + Services de gestion <br class='nav-item-translation'>immobilière
92 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
93 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
94 +</svg>
95 +
96 + </a>
97 + <ul
98 + class="dropdown-menu dark dropdown-submenu"
99 + >
100 +
101 +
102 + <li class="nav-item">
103 + <a
104 + class="dropdown-item header-main-navigation text-wrap "
105 + href="/services-de-gestion-immobiliere"
106 + >
107 + Présentation de nos services
108 + </a>
109 + </li>
110 +
111 +
112 +
113 + <li class="nav-item">
114 + <a
115 + class="dropdown-item header-main-navigation text-wrap "
116 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
117 + >
118 + Gestion d’immeubles en copropriété
119 + </a>
120 + </li>
121 +
122 +
123 +
124 + <li class="nav-item">
125 + <a
126 + class="dropdown-item header-main-navigation text-wrap "
127 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
128 + >
129 + Gestion immobilière d&#x27;appartements en location
130 + </a>
131 + </li>
132 +
133 +
134 +
135 + <li class="nav-item">
136 + <a
137 + class="dropdown-item header-main-navigation text-wrap "
138 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
139 + >
140 + Gestion immobilière commerciale
141 + </a>
142 + </li>
143 +
144 +
145 +
146 + <li class="nav-item">
147 + <a
148 + class="dropdown-item header-main-navigation text-wrap "
149 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
150 + >
151 + Service de courtage immobilier
152 + </a>
153 + </li>
154 +
155 +
156 +
157 + <li class="nav-item">
158 + <a
159 + class="dropdown-item header-main-navigation text-wrap "
160 + href="/services-de-gestion-immobiliere/gilm-renovation"
161 + >
162 + GILM Rénovation
163 + </a>
164 + </li>
165 +
166 +
167 + </ul>
168 + <hr class="my-1 border-gray-medium d-none">
169 +</li>
170 +
171 +
172 +
173 +
174 +
175 +
176 +
177 +
178 +<li class="nav-item ">
179 + <a class="nav-link py-0 header-main-navigation"
180 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
181 + <hr class="my-1 border-gray-medium d-none">
182 +</li>
183 +
184 +
185 +
186 +
187 +
188 +
189 +
190 +<li class="nav-item ">
191 + <a class="nav-link py-0 header-main-navigation"
192 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
193 + <hr class="my-1 border-gray-medium d-none">
194 +</li>
195 +
196 +
197 +
198 +
199 + </ul>
200 +
201 + <ul class="desktop-nav-bottom-content">
202 + <li class="desktop-nav-logo">
203 + <a href="/">
204 + <img src="/static/images/logos/sansfond_horizontal_noir.png" alt="L&M Logo" class="desktop-nav-logo-horizontal " />
205 + <img src="/static/images/logos/sansfond_vertical_blanc.png" alt="L&M Logo" class="desktop-nav-logo-vertical d-none" />
206 + </a>
207 + </li>
208 + </ul>
209 +
210 + <ul class="desktop-nav-bottom-content right">
211 +
212 +
213 +
214 +
215 +<li class="nav-item order-5">
216 + <a class="nav-link py-0 header-main-navigation"
217 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
218 + <hr class="my-1 border-gray-medium d-none">
219 +</li>
220 +
221 +
222 +
223 +
224 +
225 +
226 +
227 +
228 +
229 +
230 +<li
231 + class="nav-item dropdown order-6"
232 + href="#"
233 +>
234 + <a
235 + class="nav-link py-0 dropdown-toggle header-main-navigation"
236 + href="#"
237 + id="navbardrop"
238 + data-toggle="dropdown"
239 + >
240 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
241 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
242 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
243 +</svg>
244 +
245 + </a>
246 + <ul
247 + class="dropdown-menu dark dropdown-submenu"
248 + >
249 +
250 +
251 + <li class="nav-item">
252 + <a
253 + class="dropdown-item header-main-navigation text-wrap "
254 + href="/qui-sommes-nous/?tab=1"
255 + >
256 + Qui sommes-nous
257 + </a>
258 + </li>
259 +
260 +
261 +
262 + <li class="nav-item">
263 + <a
264 + class="dropdown-item header-main-navigation text-wrap "
265 + href="/qui-sommes-nous/?tab=2"
266 + >
267 + Mission et valeurs
268 + </a>
269 + </li>
270 +
271 +
272 +
273 + <li class="nav-item">
274 + <a
275 + class="dropdown-item header-main-navigation text-wrap "
276 + href="/qui-sommes-nous/?tab=3"
277 + >
278 + Équipe de direction
279 + </a>
280 + </li>
281 +
282 +
283 + </ul>
284 + <hr class="my-1 border-gray-medium d-none">
285 +</li>
286 +
287 +
288 +
289 +
290 +
291 +
292 +
293 +
294 +<li class="nav-item order-7">
295 + <a class="nav-link py-0 header-main-navigation"
296 + href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
297 + <hr class="my-1 border-gray-medium d-none">
298 +</li>
299 +
300 +
301 +
302 +
303 + </ul>
304 + </div>
305 +</nav>
306 +<nav class="nav mobile-nav">
307 + <div class="nav-bottom nav-d-none order-2" id="navbarSupportedContent">
308 + <ul class="nav-main-links">
309 +
310 +
311 +
312 +
313 +<li class="nav-item ">
314 + <a class="nav-link py-0 header-main-navigation"
315 + href="/">Accueil</a>
316 + <hr class="my-1 border-gray-medium d-none">
317 +</li>
318 +
319 +
320 +
321 +
322 +
323 +
324 +
325 +
326 +
327 +
328 +<li
329 + class="nav-item dropdown "
330 + href="#"
331 +>
332 + <a
333 + class="nav-link py-0 dropdown-toggle header-main-navigation"
334 + href="#"
335 + id="navbardrop"
336 + data-toggle="dropdown"
337 + >
338 + Services de gestion <br class='nav-item-translation'>immobilière
339 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
340 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
341 +</svg>
342 +
343 + </a>
344 + <ul
345 + class="dropdown-menu bg-gray-blue dropdown-submenu"
346 + >
347 +
348 +
349 + <li class="nav-item">
350 + <a
351 + class="dropdown-item header-main-navigation text-wrap "
352 + href="/services-de-gestion-immobiliere"
353 + >
354 + Présentation de nos services
355 + </a>
356 + </li>
357 +
358 +
359 +
360 + <li class="nav-item">
361 + <a
362 + class="dropdown-item header-main-navigation text-wrap "
363 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
364 + >
365 + Gestion d’immeubles en copropriété
366 + </a>
367 + </li>
368 +
369 +
370 +
371 + <li class="nav-item">
372 + <a
373 + class="dropdown-item header-main-navigation text-wrap "
374 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
375 + >
376 + Gestion immobilière d&#x27;appartements en location
377 + </a>
378 + </li>
379 +
380 +
381 +
382 + <li class="nav-item">
383 + <a
384 + class="dropdown-item header-main-navigation text-wrap "
385 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
386 + >
387 + Gestion immobilière commerciale
388 + </a>
389 + </li>
390 +
391 +
392 +
393 + <li class="nav-item">
394 + <a
395 + class="dropdown-item header-main-navigation text-wrap "
396 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
397 + >
398 + Service de courtage immobilier
399 + </a>
400 + </li>
401 +
402 +
403 +
404 + <li class="nav-item">
405 + <a
406 + class="dropdown-item header-main-navigation text-wrap "
407 + href="/services-de-gestion-immobiliere/gilm-renovation"
408 + >
409 + GILM Rénovation
410 + </a>
411 + </li>
412 +
413 +
414 + </ul>
415 + <hr class="my-1 border-gray-medium d-none">
416 +</li>
417 +
418 +
419 +
420 +
421 +
422 +
423 +
424 +
425 +<li class="nav-item ">
426 + <a class="nav-link py-0 header-main-navigation"
427 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
428 + <hr class="my-1 border-gray-medium d-none">
429 +</li>
430 +
431 +
432 +
433 +
434 +
435 +
436 +
437 +<li class="nav-item ">
438 + <a class="nav-link py-0 header-main-navigation"
439 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
440 + <hr class="my-1 border-gray-medium d-none">
441 +</li>
442 +
443 +
444 +
445 +
446 +
447 +
448 +
449 +<li class="nav-item ">
450 + <a class="nav-link py-0 header-main-navigation"
451 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
452 + <hr class="my-1 border-gray-medium d-none">
453 +</li>
454 +
455 +
456 +
457 +
458 +
459 +
460 +
461 +
462 +
463 +
464 +<li
465 + class="nav-item dropdown "
466 + href="#"
467 +>
468 + <a
469 + class="nav-link py-0 dropdown-toggle header-main-navigation"
470 + href="#"
471 + id="navbardrop"
472 + data-toggle="dropdown"
473 + >
474 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
475 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
476 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
477 +</svg>
478 +
479 + </a>
480 + <ul
481 + class="dropdown-menu bg-gray-blue dropdown-submenu"
482 + >
483 +
484 +
485 + <li class="nav-item">
486 + <a
487 + class="dropdown-item header-main-navigation text-wrap "
488 + href="/qui-sommes-nous/?tab=1"
489 + >
490 + Qui sommes-nous
491 + </a>
492 + </li>
493 +
494 +
495 +
496 + <li class="nav-item">
497 + <a
498 + class="dropdown-item header-main-navigation text-wrap "
499 + href="/qui-sommes-nous/?tab=2"
500 + >
501 + Mission et valeurs
502 + </a>
503 + </li>
504 +
505 +
506 +
507 + <li class="nav-item">
508 + <a
509 + class="dropdown-item header-main-navigation text-wrap "
510 + href="/qui-sommes-nous/?tab=3"
511 + >
512 + Équipe de direction
513 + </a>
514 + </li>
515 +
516 +
517 + </ul>
518 + <hr class="my-1 border-gray-medium d-none">
519 +</li>
520 +
521 +
522 +
523 +
524 +
525 + </ul>
526 + <ul class="nav-quick-links mobile d-flex d-lg-none">
527 +
528 +
529 +<div class="nav-item">
530 + <a class="header-secondary-navigation" href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
531 +</div>
532 +
533 +
534 +
535 +
536 +<div class="nav-item">
537 + <a class="header-secondary-navigation" href="/blog">Blogue</a>
538 +</div>
539 +
540 +
541 +
542 +
543 +<div class="nav-item">
544 + <a class="header-secondary-navigation" href="/faire-carriere/">Carrières</a>
545 +</div>
546 +
547 +
548 +
549 + <li class="nav-item nav-client-space">
550 +
551 +
552 +<a class="btn btn-primary header-button-navigation text-white" href="https://espace-client.lafrance-mathieu.com">Connexion à l’Espace client</a>
553 + </li>
554 + </ul>
555 + <div class="w-100 my-3 d-flex d-lg-none flex-wrap">
556 + <div class="mb-4 p-0 pr-4 d-flex flex-column">
557 + <a href="tel:14186265500" class="mb-2 d-flex align-items-center">
558 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-2" />
559 + <span class="text-gray-light">418 626-5500</span>
560 + </a>
561 + <a href="/cdn-cgi/l/email-protection#86efe8e0e9c6eae7e0f4e7e8e5e3abebe7f2eeefe3f3a8e5e9eb" target="_blank" class="mb-3 d-flex align-items-center">
562 + <img src=/static/images/icons/call.svg alt="email icon" class="footer-icon mr-2" />
563 + <span><span class="__cf_email__" data-cfemail="bfd6d1d9d0ffd3ded9cdded1dcda92d2decbd7d6daca91dcd0d2">[email&#160;protected]</span></span>
564 + </a>
565 + <p class="footer-text text-uppercase text-white text-bold">Suivez-nous sur les réseaux</p>
566 + <div class="d-flex">
567 + <a href="https://ca.linkedin.com/company/gestion-immobilière-lafrance-et-mathieu-inc">
568 + <img src=/static/images/icons/linkedin.svg alt="linkedin icon"
569 + class="footer-social-icon mr-3" />
570 + </a>
571 + <a href="https://fr-ca.facebook.com/lafrance.mathieu">
572 + <img src=/static/images/icons/facebook.svg alt="facebook icon"
573 + class="footer-social-icon" />
574 + </a>
575 + </div>
576 + </div>
577 + <div class="mb-4 mb-md-0 p-0 pl-sm-4 px-md-4 d-flex flex-column">
578 + <p class="footer-text text-uppercase text-white text-bold">Soutien aux résidents (24/7)</p>
579 + <a href="tel:14186265500" class="mb-2 d-flex align-items-center">
580 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-2" />
581 + <span class="text-gray-light">418 626-5500</span>
582 + </a>
583 + </div>
584 + </div>
585 + </div>
586 + <div class="nav-top order-1">
587 + <ul class="nav-main-links nav-main-links-top">
588 +
589 +
590 +
591 +
592 +<li class="nav-item ">
593 + <a class="nav-link py-0 header-main-navigation"
594 + href="/">Accueil</a>
595 + <hr class="my-1 border-gray-medium d-none">
596 +</li>
597 +
598 +
599 +
600 +
601 +
602 +
603 +
604 +
605 +
606 +
607 +<li
608 + class="nav-item dropdown "
609 + href="#"
610 +>
611 + <a
612 + class="nav-link py-0 dropdown-toggle header-main-navigation"
613 + href="#"
614 + id="navbardrop"
615 + data-toggle="dropdown"
616 + >
617 + Services de gestion <br class='nav-item-translation'>immobilière
618 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
619 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
620 +</svg>
621 +
622 + </a>
623 + <ul
624 + class="dropdown-menu bg-gray-blue dropdown-submenu"
625 + >
626 +
627 +
628 + <li class="nav-item">
629 + <a
630 + class="dropdown-item header-main-navigation text-wrap "
631 + href="/services-de-gestion-immobiliere"
632 + >
633 + Présentation de nos services
634 + </a>
635 + </li>
636 +
637 +
638 +
639 + <li class="nav-item">
640 + <a
641 + class="dropdown-item header-main-navigation text-wrap "
642 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
643 + >
644 + Gestion d’immeubles en copropriété
645 + </a>
646 + </li>
647 +
648 +
649 +
650 + <li class="nav-item">
651 + <a
652 + class="dropdown-item header-main-navigation text-wrap "
653 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
654 + >
655 + Gestion immobilière d&#x27;appartements en location
656 + </a>
657 + </li>
658 +
659 +
660 +
661 + <li class="nav-item">
662 + <a
663 + class="dropdown-item header-main-navigation text-wrap "
664 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
665 + >
666 + Gestion immobilière commerciale
667 + </a>
668 + </li>
669 +
670 +
671 +
672 + <li class="nav-item">
673 + <a
674 + class="dropdown-item header-main-navigation text-wrap "
675 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
676 + >
677 + Service de courtage immobilier
678 + </a>
679 + </li>
680 +
681 +
682 +
683 + <li class="nav-item">
684 + <a
685 + class="dropdown-item header-main-navigation text-wrap "
686 + href="/services-de-gestion-immobiliere/gilm-renovation"
687 + >
688 + GILM Rénovation
689 + </a>
690 + </li>
691 +
692 +
693 + </ul>
694 + <hr class="my-1 border-gray-medium d-none">
695 +</li>
696 +
697 +
698 +
699 +
700 +
701 +
702 +
703 +
704 +<li class="nav-item ">
705 + <a class="nav-link py-0 header-main-navigation"
706 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
707 + <hr class="my-1 border-gray-medium d-none">
708 +</li>
709 +
710 +
711 +
712 +
713 +
714 +
715 +
716 +<li class="nav-item ">
717 + <a class="nav-link py-0 header-main-navigation"
718 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
719 + <hr class="my-1 border-gray-medium d-none">
720 +</li>
721 +
722 +
723 +
724 +
725 +
726 +
727 +
728 +<li class="nav-item ">
729 + <a class="nav-link py-0 header-main-navigation"
730 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
731 + <hr class="my-1 border-gray-medium d-none">
732 +</li>
733 +
734 +
735 +
736 +
737 +
738 +
739 +
740 +
741 +
742 +
743 +<li
744 + class="nav-item dropdown "
745 + href="#"
746 +>
747 + <a
748 + class="nav-link py-0 dropdown-toggle header-main-navigation"
749 + href="#"
750 + id="navbardrop"
751 + data-toggle="dropdown"
752 + >
753 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
754 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
755 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
756 +</svg>
757 +
758 + </a>
759 + <ul
760 + class="dropdown-menu bg-gray-blue dropdown-submenu"
761 + >
762 +
763 +
764 + <li class="nav-item">
765 + <a
766 + class="dropdown-item header-main-navigation text-wrap "
767 + href="/qui-sommes-nous/?tab=1"
768 + >
769 + Qui sommes-nous
770 + </a>
771 + </li>
772 +
773 +
774 +
775 + <li class="nav-item">
776 + <a
777 + class="dropdown-item header-main-navigation text-wrap "
778 + href="/qui-sommes-nous/?tab=2"
779 + >
780 + Mission et valeurs
781 + </a>
782 + </li>
783 +
784 +
785 +
786 + <li class="nav-item">
787 + <a
788 + class="dropdown-item header-main-navigation text-wrap "
789 + href="/qui-sommes-nous/?tab=3"
790 + >
791 + Équipe de direction
792 + </a>
793 + </li>
794 +
795 +
796 + </ul>
797 + <hr class="my-1 border-gray-medium d-none">
798 +</li>
799 +
800 +
801 +
802 +
803 +
804 + </ul>
805 + <button class="nav-toggle d-block d-lg-none" type="button" onclick="toggleMenu();">
806 + <img class="nav-toggle-icon icon-top d-none" src="/static/images/menu.svg" alt="menu">
807 + <img class="nav-toggle-icon icon-sticky" src="/static/images/menu-dark.svg" alt="menu">
808 + </button>
809 + <ul class="nav-quick-links">
810 +
811 +
812 +<div class="nav-item">
813 + <a class="header-secondary-navigation" href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
814 +</div>
815 +
816 +
817 +
818 +
819 +<div class="nav-item">
820 + <a class="header-secondary-navigation" href="/blog">Blogue</a>
821 +</div>
822 +
823 +
824 +
825 +
826 +<div class="nav-item">
827 + <a class="header-secondary-navigation" href="/faire-carriere/">Carrières</a>
828 +</div>
829 +
830 +
831 +
832 + <li class="nav-item nav-client-space">
833 +
834 +
835 +<a class="btn btn-primary header-button-navigation text-white" href="https://espace-client.lafrance-mathieu.com">Connexion à l’Espace client</a>
836 + </li>
837 + </ul>
838 + <a class="nav-logo-link" href="/">
839 + <img id="logo-white" class="nav-logo-img icon-top d-none" src="/static/images/logos/sansfond_horizontal_blanc.png"
840 + alt="L&M Logo">
841 + <img id="logo-dark" class="nav-logo-img icon-sticky" src="/static/images/logos/sansfond_horizontal_noir.png"
842 + alt="L&M Logo">
843 + </a>
844 + </div>
845 +
846 +
847 +
848 +
849 +
850 +
851 +
852 +
853 +</nav>
854 +
855 +<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
856 + function toggleMenu() {
857 + scrollPosition = window.scrollY;
858 +
859 + const menu = document.getElementById("navbarSupportedContent");
860 + menu.classList.toggle("nav-d-none");
861 +
862 + const mobileTabs = document.getElementsByClassName("mobile-tabs")[0];
863 + if (mobileTabs && mobileTabs.classList) {
864 + mobileTabs.classList.toggle("d-none");
865 + }
866 +
867 + if (!menu.classList.contains("nav-d-none")) {
868 + makeHeaderDark();
869 + } else {
870 + makeHeaderClear();
871 + }
872 + }
873 +
874 + window.addEventListener('touchmove', function (_e) {
875 + onScroll();
876 + });
877 + window.addEventListener('scroll', function (_e) {
878 + onScroll();
879 + });
880 +
881 + function makeHeaderDark() {
882 + const header = document.getElementById("gilm-header");
883 + if (!header.classList.contains("top")) header.classList.add("top");
884 +
885 + const lightIcons = document.getElementsByClassName("icon-top");
886 + const darkIcons = document.getElementsByClassName("icon-sticky");
887 + for (icon of lightIcons) {
888 + icon.classList.contains("d-none") && icon.classList.remove("d-none");
889 + }
890 + for (icon of darkIcons) {
891 + !icon.classList.contains("d-none") && icon.classList.add("d-none");
892 + }
893 + }
894 +
895 + function makeHeaderClear() {
896 + const header = document.getElementById("gilm-header");
897 + if (header.classList.contains("top")) header.classList.remove("top");
898 +
899 + const lightIcons = document.getElementsByClassName("icon-top");
900 + const darkIcons = document.getElementsByClassName("icon-sticky");
901 + for (icon of lightIcons) {
902 + !icon.classList.contains("d-none") && icon.classList.add("d-none");
903 + }
904 + for (icon of darkIcons) {
905 + icon.classList.contains("d-none") && icon.classList.remove("d-none");
906 + }
907 + }
908 +
909 + function onScroll() {
910 +
911 + }
912 +</script>
913 +
914 + </header>
915 + <main class="overflow-y-hidden ">
916 +
917 +
918 +<div class="container">
919 + <nav class="mb-4 pt-4" aria-label="breadcrumb">
920 + <a class="breadcrumb-primary" href="/">Accueil</a>
921 + <a class="breadcrumb-primary" href="/louer-appartement-quebec/">Logements à louer</a>
922 + </nav>
923 +
924 +
925 +
926 +
927 +<div class="row">
928 + <div class="col-md-10">
929 + <p class="text-gray-light">Appartements &middot; L&#x27;Ancienne-Lorette</p>
930 + <h2 id="building-address-1">1520, rue de la Pente</h2>
931 + <p id="building-address-2" class="subtext">
932 + L&#x27;Ancienne-Lorette,
933 + (Québec),
934 + G2E5H8
935 + </p>
936 + </div>
937 + <div class="col-md-2 col-sm-12 d-flex align-items-end flex-row-reverse pb-3">
938 +
939 +
940 +
941 +
942 + <button
943 + class="btn text-primary "
944 + data-toggle="modal"
945 + data-target="#modal-share"
946 + onclick="configureShareWidget(`Logements à louer - 1520, rue de la Pente`, `https://lafrance-mathieu.com/logement/137`)">
947 + <i class="fas fa-share-square mr-1"></i>
948 + <span>Partager</span>
949 +</button>
950 +
951 +
952 +
953 + </div>
954 +</div>
955 +<div class="row">
956 + <div class="col-lg-8 d-none d-md-block">
957 +
958 +
959 +
960 +<div class="building-slideshow">
961 + <div class="slider slider-for">
962 +
963 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD3_d0927d8c-80c1-11ea-97c5-1275881fc0b8.jpg" alt="Façade">
964 +
965 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD4_d0b97252-80c1-11ea-97c5-1275881fc0b8.jpg" alt="Façade2">
966 +
967 + </div>
968 + <div class="slider slider-nav mt-2">
969 +
970 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD3_d0927d8c-80c1-11ea-97c5-1275881fc0b8.jpg" alt="Façade">
971 +
972 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD4_d0b97252-80c1-11ea-97c5-1275881fc0b8.jpg" alt="Façade2">
973 +
974 + </div>
975 +</div>
976 +
977 +
978 + </div>
979 + <div class="col-lg-8 d-block d-md-none">
980 +
981 +
982 +
983 +
984 +
985 +<div class="">
986 + <div class="single-item-arrow--left ml-3"></div>
987 + <div class="single-item">
988 +
989 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD3_d0927d8c-80c1-11ea-97c5-1275881fc0b8.jpg" alt="Façade" style="object-fit: cover" height="auto">
990 +
991 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD4_d0b97252-80c1-11ea-97c5-1275881fc0b8.jpg" alt="Façade2" style="object-fit: cover" height="auto">
992 +
993 + </div>
994 + <div class="single-item-arrow--right mr-3"></div>
995 +</div>
996 +
997 +
998 + </div>
999 +
1000 + <div class="col-12 col-lg-4 order-lg-2">
1001 + <div class="border border-light rounded p-3 w-100 d-none d-lg-block shadow-sm position-relative" id="inquire-form">
1002 + <div style="position: absolute; top: -134px;" id="inquire-form-anchor"></div>
1003 +
1004 +
1005 +
1006 +
1007 +<div class="inquire-step-1 container p-0 mb-5 position-relative">
1008 + <div id="inquire-step-1" style="position: absolute; top: -134px;"></div>
1009 + <h2 class="mb-4" style="font-size: 1.6rem;">S'informer sur ce logement</h2>
1010 + <p>418-626-3070</p>
1011 + <p class="text-primary"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="3f53505c5e4b5650517f535e594d5e515c5a12525e4b57565a4a115c5052">[email&#160;protected]</a></p>
1012 + <p class="mb-4">Dites-nous quelles unités vous intéressent ainsi que votre date de déménagement prévue.</p>
1013 + <p class="text-gray-light">Intéressé par ces unités</p>
1014 +
1015 + <div class="d-inline-flex flex-wrap">
1016 +
1017 +
1018 + <button
1019 + class="inquire-room btn btn-normal mb-3"
1020 + data-unit_room="4½"
1021 + data-toggle="button"
1022 + >
1023 +
1024 + </button>
1025 +
1026 +
1027 + </div>
1028 +
1029 + <div class="dropdown mb-4">
1030 + <div class="dropdown-toggle inquire-units-button rounded p-3 text-left" type="button"
1031 + id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
1032 + <p class="inquire-units-label-title text-uppercase mb-0">
1033 + Unité(s) spécifique(s)
1034 + </p>
1035 + <p id="inquire-units-label-noselected" class="inquire-units-label-selection m-0">
1036 + Aucune choisie
1037 + </p>
1038 + <p id="inquire-units-label-selected" class="inquire-units-label-selection d-none m-0"></p>
1039 + </div>
1040 + <div class="dropdown-menu inquire-units-choices rounded border-gray-very-light" aria-labelledby="dropdownMenuButton">
1041 +
1042 +
1043 + <button class="inquire-units-choice dropdown-item" data-unit="104"
1044 + data-unit_room="4½">
1045 + 104
1046 + </button>
1047 +
1048 +
1049 + </div>
1050 + </div>
1051 +
1052 +
1053 + <p class="text-gray-light">Date de déménagement prévue</p>
1054 + <div id="inquire-datepicker" class="input-group date mt-1">
1055 + <input id="inquire-datepicker-input" class="form-control" onfocus="blur();" placeholder="Sélectionner une date">
1056 + <div class="input-group-addon">
1057 + <span class="glyphicon glyphicon-th"></span>
1058 + </div>
1059 + </div>
1060 +</div>
1061 +
1062 +<div class="inquire-step-2 container p-0 mb-5 d-none position-relative">
1063 + <div id="inquire-step-2" style="position: absolute; top: -134px;"></div>
1064 + <h2 class="my-4" style="font-size: 1.6rem;">Comment peut-on vous rejoindre?</h2>
1065 + <p>Inscrivez vos coordonnées afin que notre équipe puisse vous rejoindre et vous conseiller.</p>
1066 + <form id="inquire-form">
1067 + <div class="form-group">
1068 + <input name="firstName" type="text" class="form-control" id="inquireForm-firstName"
1069 + placeholder="Prénom"></input>
1070 + </div>
1071 + <div class="form-group">
1072 + <input name="lastName" type="text" class="form-control" id="inquireForm-lastName"
1073 + placeholder="Nom de famille"></input>
1074 + </div>
1075 + <div class="form-group">
1076 + <select name="contactMethod" class="form-control" id="inquireForm-contactMethod">
1077 + <option id="email" value="email" selected>Courriel</option>
1078 + <option id="phone" value="phone">Téléphone</option>
1079 + </select>
1080 + </div>
1081 + <div id="inquireForm-contact-email" class="form-group">
1082 + <input name="contactEmail" type="email" class="form-control" id="inquireForm-email"
1083 + placeholder="Adresse courriel"></input>
1084 + </div>
1085 + <div id="inquireForm-contact-phone" class="form-group d-none">
1086 + <input name="contactPhone" type="tel" class="form-control" id="inquireForm-phone"
1087 + placeholder="Numéro de téléphone"></input>
1088 + </div>
1089 + <div class="form-group">
1090 + <textarea name="comments" type="text" class="form-control" id="inquireForm-comments"
1091 + placeholder="Questions ou notes"></textarea>
1092 + </div>
1093 + <div id="g-recaptcha-error"></div>
1094 + <div class="mb-3 g-recaptcha" data-sitekey="6LdkNyIpAAAAAD7KhL3DhvgxSocY-78gAmvXBzoe" data-callback="verifyCaptcha"></div>
1095 + </form>
1096 +</div>
1097 +
1098 +<div class="inquire-step-3 d-none position-relative">
1099 + <div id="inquire-confirmation" style="position: absolute; top: -134px;"></div>
1100 + <img class="mt-4" src="/static/images/logos/sansfond_horizontal_noir.png" alt="L&M Logo" width="auto"
1101 + height="66px">
1102 + <h2 class="my-4" style="font-size: 1.6rem;">Votre demande a été envoyée à l’équipe de Lafrance et Mathieu.</h2>
1103 + <p>Nous répondons à toutes les demandes dans un délai de 24 à 48 heures (jours ouvrables).</p>
1104 +</div>
1105 +
1106 +<button id="inquire-btn-1" class="inquire-continue inquire-step-1 btn btn-primary w-100" disabled onclick="scrollToTopOfForm();">
1107 + Continuer
1108 +</button>
1109 +<button id="inquire-btn-2" class="inquire-submit inquire-step-2 btn btn-primary w-100 d-none" onclick="submitForm();" disabled>
1110 + Soumettre
1111 +</button>
1112 +<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
1113 + var recaptcha_response = '';
1114 + window.isCondo = "False" == "True";
1115 + document.getElementById("inquire-datepicker-input").value = "";
1116 +
1117 + function scrollToTopOfForm() {
1118 + const top = document.getElementById("inquire-step-1");
1119 + top.scrollIntoView();
1120 + }
1121 + function submitForm() {
1122 + if (recaptcha_response && recaptcha_response.length !== 0 && recaptcha_response !== ''){
1123 + onContinue2Click('RHdB3tccjAjRpBgAHHxmAg8y172zukmu9CKtfRKG10yfMne57dOFR99BIdCk9gvc');
1124 + const confirmation = document.getElementById("inquire-confirmation");
1125 + confirmation.scrollIntoView();
1126 + }
1127 + else {
1128 + document.getElementById('g-recaptcha-error').innerHTML = '<span style="color:red;">Ceci est obligatoire.</span>';
1129 + }
1130 + }
1131 +
1132 + function verifyCaptcha(token) {
1133 + recaptcha_response = token;
1134 + document.getElementById('g-recaptcha-error').innerHTML = '';
1135 + }
1136 +</script>
1137 +
1138 + </div>
1139 + </div>
1140 +
1141 +</div>
1142 +
1143 +<div class="row mt-4">
1144 + <div class="col-md-8">
1145 + <h2 class="convenience-header">Commodités de l'immeuble</h2>
1146 + <div class="row mb-4">
1147 + <div class="col-md-12">
1148 +
1149 +
1150 +
1151 +
1152 +
1153 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1154 +
1155 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1156 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1157 + <p class="attribute-description mb-0">Équipe de maintenance 24h</p>
1158 + </li>
1159 +
1160 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1161 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1162 + <p class="attribute-description mb-0">Stationnement</p>
1163 + </li>
1164 +
1165 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1166 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1167 + <p class="attribute-description mb-0">Secteur paisible</p>
1168 + </li>
1169 +
1170 + </ul>
1171 +
1172 +
1173 + </div>
1174 + </div>
1175 + </div>
1176 +</div>
1177 +
1178 +
1179 +</div>
1180 +
1181 +
1182 +
1183 +
1184 +
1185 +<script>
1186 +function scrollToId(unitRoomId) {
1187 + removeAllActive();
1188 +
1189 + const scrollOptions = {
1190 + behavior: "smooth",
1191 + block: "start"
1192 + };
1193 +
1194 + const defaultFilter = document.getElementById("unit-room-filter-all");
1195 + if (unitRoomId === "all") {
1196 + defaultFilter.classList.add("active");
1197 + defaultFilter.scrollIntoView(scrollOptions);
1198 + } else {
1199 + const element = document.getElementById(`unit-room-${unitRoomId}`);
1200 + if (!!element) {
1201 + element.scrollIntoView(scrollOptions);
1202 + const defaultFilter = document.getElementById("unit-room-filter-all");
1203 + defaultFilter.classList.remove("active");
1204 + const filter = document.getElementById(`unit-room-filter-${unitRoomId}`);
1205 + filter.classList.add("active");
1206 +
1207 + }
1208 + }
1209 +}
1210 +
1211 +function removeAllActive() {
1212 + const elements = document.getElementsByClassName("unit-room-filter");
1213 + for (element of elements) element.classList.remove("active");
1214 +}
1215 +</script>
1216 +
1217 +<div class="container">
1218 + <div class="row mt-5">
1219 + <div class="col-md-12">
1220 + <h2 id="anchor-units" class="mb-3">Unités</h2>
1221 +
1222 + <ul class="list-inline mb-0 position-relative">
1223 + <li class="list-inline-item mr-4 pb-2 unit-room-filter active" id="unit-room-filter-all">
1224 + <button onclick="scrollToId('all');" class="unit-room-filter-button btn btn-no-outline">
1225 + <span>Toutes</span>
1226 + </button>
1227 + </li>
1228 +
1229 + <li class="list-inline-item mr-4 mb-0 pb-2 unit-room-filter" id="unit-room-filter-262">
1230 + <button onclick="scrollToId('262');" class="unit-room-filter-button btn btn-no-outline">
1231 + <span class="text-primary">4½</span> <span class="text-gray-light">(1)</span>
1232 + </button>
1233 + </li>
1234 +
1235 + </ul>
1236 +
1237 + </div>
1238 + </div>
1239 +</div>
1240 +<div class="bg-background-gray pb-3">
1241 + <div class="container">
1242 + <div class="row">
1243 + <div class="col-12 p-0">
1244 +
1245 + <div class="bg-white rounded mt-3 p-3 p-md-5 mx-3 position-relative">
1246 + <div style="position: absolute; top: -134px;" id="unit-room-262"></div>
1247 + <div id="modal-details-262" class="modal">
1248 +
1249 +
1250 +
1251 +<div class="container mt-5">
1252 + <div class="col-md-8 offset-md-2 bg-white p-5 rounded shadow">
1253 +
1254 +
1255 +<div class="row">
1256 + <div class="col-9">
1257 + <h2>
1258 +
1259 + 4½ from $1190 to $1190
1260 +
1261 + </h2>
1262 + </div>
1263 + <div class="col-3 text-right">
1264 + <button class="btn-close" data-toggle="modal" data-target="#modal-details-262"></button>
1265 + </div>
1266 +</div>
1267 +<div class="row">
1268 + <div class="col-9">
1269 +
1270 +
1271 +<p class="">
1272 + 1
1273 + <span class="text-lowercase">
1274 +
1275 + unité
1276 +
1277 + </span>
1278 +</p>
1279 + </div>
1280 + <div class="col-3 text-right">
1281 +
1282 + </div>
1283 +</div>
1284 +<div class="row">
1285 + <div class="col-12" id="unit-modal-carousel-262">
1286 +
1287 +
1288 +<div class="unit-detail-carousel">
1289 + <div class="slider slider-for">
1290 +
1291 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD14_fb8e605c-80ce-11ea-8747-1275881fc0b8.jpg" alt="cuisine">
1292 +
1293 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/2_fbae2400-80ce-11ea-8747-1275881fc0b8.jpg" alt="cuisine2">
1294 +
1295 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/4_fbc21816-80ce-11ea-8747-1275881fc0b8.jpg" alt="cuisine2">
1296 +
1297 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/cuisine_2_fbe32c86-80ce-11ea-8747-1275881fc0b8.jpg" alt="suiine3">
1298 +
1299 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/salle_de_bain_fc0f06e4-80ce-11ea-8747-1275881fc0b8.jpg" alt="sb">
1300 +
1301 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD11_fc76edae-80ce-11ea-8747-1275881fc0b8.jpg" alt="chambre">
1302 +
1303 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD6_fc9ff136-80ce-11ea-8747-1275881fc0b8.jpg" alt="salon">
1304 +
1305 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD8_fcc321c4-80ce-11ea-8747-1275881fc0b8.jpg" alt="chambre">
1306 +
1307 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/air_ouverte_fce25a12-80ce-11ea-8747-1275881fc0b8.jpg" alt="salon">
1308 +
1309 + </div>
1310 + <div class="slider slider-nav mt-2">
1311 +
1312 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD14_fb8e605c-80ce-11ea-8747-1275881fc0b8.jpg" alt="cuisine">
1313 +
1314 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/2_fbae2400-80ce-11ea-8747-1275881fc0b8.jpg" alt="cuisine2">
1315 +
1316 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/4_fbc21816-80ce-11ea-8747-1275881fc0b8.jpg" alt="cuisine2">
1317 +
1318 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/cuisine_2_fbe32c86-80ce-11ea-8747-1275881fc0b8.jpg" alt="suiine3">
1319 +
1320 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/salle_de_bain_fc0f06e4-80ce-11ea-8747-1275881fc0b8.jpg" alt="sb">
1321 +
1322 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD11_fc76edae-80ce-11ea-8747-1275881fc0b8.jpg" alt="chambre">
1323 +
1324 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD6_fc9ff136-80ce-11ea-8747-1275881fc0b8.jpg" alt="salon">
1325 +
1326 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD8_fcc321c4-80ce-11ea-8747-1275881fc0b8.jpg" alt="chambre">
1327 +
1328 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/air_ouverte_fce25a12-80ce-11ea-8747-1275881fc0b8.jpg" alt="salon">
1329 +
1330 + </div>
1331 +</div>
1332 +
1333 + </div>
1334 +</div>
1335 +<div class="row mt-3">
1336 + <div class="col-12 unit-commodities">
1337 +
1338 +
1339 +
1340 +
1341 +
1342 +
1343 + <p class="small-header pb-1">
1344 + Commodités de l'unité
1345 + </p>
1346 +
1347 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1348 +
1349 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1350 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="icon" height="15px" width="15px">
1351 + <p class="attribute-description mb-0">Équipe de maintenance 24h</p>
1352 + </li>
1353 +
1354 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1355 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1356 + <p class="attribute-description mb-0">Stationnement extérieur</p>
1357 + </li>
1358 +
1359 + </ul>
1360 +
1361 +
1362 + </div>
1363 +</div>
1364 +<div class="row mt-3">
1365 + <div class="col-12 unit-characteristics">
1366 +
1367 +
1368 +
1369 +
1370 +
1371 +
1372 + </div>
1373 +</div>
1374 +
1375 +
1376 + <div class="units-detail mt-5">
1377 + <h2>Unités</h2>
1378 +
1379 +
1380 +
1381 +
1382 +<div class="row" id="units-for-unit-room-262">
1383 +
1384 +
1385 + <div class="col-12 h-100 ">
1386 + <div class="h-100 border-bottom">
1387 + <div class="row mt-3">
1388 + <div class="col-sm-6 col-md-4">
1389 + <p class="small-header">unité</p>
1390 + <p>
1391 + 104
1392 +
1393 + <span>&middot; 1er étage</span>
1394 +
1395 + </p>
1396 + </div>
1397 + <div class="col-sm-6 col-md-4">
1398 + <p class="small-header">Disponibilité</p>
1399 + <p class="">
1400 + octobre 2026
1401 + </p>
1402 + </div>
1403 + <div class="col-sm-6 col-md-4">
1404 + <p class="small-header">À partir de</p>
1405 + <p>1190,00$</p>
1406 + </div>
1407 +
1408 + </div>
1409 + <div class="row">
1410 + </div>
1411 +
1412 + </div>
1413 + </div>
1414 +
1415 +
1416 +</div>
1417 +
1418 + </div>
1419 +
1420 + </div>
1421 +</div>
1422 + </div>
1423 + <div class="row">
1424 + <div class="col-6">
1425 + <h4>
1426 +
1427 + 4½ à partir de 1190,00$
1428 +
1429 + </h4>
1430 + </div>
1431 + <div class="col-6 d-flex justify-content-end">
1432 +
1433 +
1434 +
1435 + <button
1436 + class="btn text-primary share-button-small"
1437 + data-toggle="modal"
1438 + data-target="#modal-share"
1439 + onclick="configureShareWidget(`4½ à louer - 1520, rue de la Pente`, `https://lafrance-mathieu.com/logement/137`)">
1440 + <i class="fas fa-share-square mr-1"></i>
1441 + <span>Partager</span>
1442 +</button>
1443 +
1444 +
1445 + </div>
1446 + </div>
1447 + <div class="row">
1448 + <div class="col-md-4">
1449 + <div class="row">
1450 + <div class="col-12">
1451 +
1452 +
1453 +
1454 +
1455 +
1456 +<div class="unit-image-counter d-flex align-items-center">
1457 + <img class="ml-1" src="/static/images/logos/camera.png" height="14px" width="auto" alt="unit image">
1458 + <span class="ml-1 text-white small">9</span>
1459 +</div>
1460 +
1461 +
1462 +<div class="single-item-small">
1463 + <div class="single-item-arrow--left ml-3"></div>
1464 + <div class="single-item">
1465 +
1466 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD14_fb8e605c-80ce-11ea-8747-1275881fc0b8.jpg" alt="cuisine" style="object-fit: cover" height="auto">
1467 +
1468 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/2_fbae2400-80ce-11ea-8747-1275881fc0b8.jpg" alt="cuisine2" style="object-fit: cover" height="auto">
1469 +
1470 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/4_fbc21816-80ce-11ea-8747-1275881fc0b8.jpg" alt="cuisine2" style="object-fit: cover" height="auto">
1471 +
1472 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/cuisine_2_fbe32c86-80ce-11ea-8747-1275881fc0b8.jpg" alt="suiine3" style="object-fit: cover" height="auto">
1473 +
1474 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/salle_de_bain_fc0f06e4-80ce-11ea-8747-1275881fc0b8.jpg" alt="sb" style="object-fit: cover" height="auto">
1475 +
1476 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD11_fc76edae-80ce-11ea-8747-1275881fc0b8.jpg" alt="chambre" style="object-fit: cover" height="auto">
1477 +
1478 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD6_fc9ff136-80ce-11ea-8747-1275881fc0b8.jpg" alt="salon" style="object-fit: cover" height="auto">
1479 +
1480 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD8_fcc321c4-80ce-11ea-8747-1275881fc0b8.jpg" alt="chambre" style="object-fit: cover" height="auto">
1481 +
1482 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/air_ouverte_fce25a12-80ce-11ea-8747-1275881fc0b8.jpg" alt="salon" style="object-fit: cover" height="auto">
1483 +
1484 + </div>
1485 + <div class="single-item-arrow--right mr-3"></div>
1486 +</div>
1487 +
1488 +
1489 + </div>
1490 + </div>
1491 +
1492 + </div>
1493 + <div class="col-md-8 mt-4 mt-md-0 d-flex flex-column">
1494 + <div class="row flex-grow-1">
1495 +
1496 + <div class="unit-commodities unit-specs col-sm-6">
1497 +
1498 +
1499 +
1500 +
1501 +
1502 +
1503 + <p class="small-header pb-1">
1504 + Commodités de l'unité
1505 + </p>
1506 +
1507 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1508 +
1509 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1510 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="icon" height="15px" width="15px">
1511 + <p class="attribute-description mb-0">Équipe de maintenance 24h</p>
1512 + </li>
1513 +
1514 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1515 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1516 + <p class="attribute-description mb-0">Stationnement extérieur</p>
1517 + </li>
1518 +
1519 + </ul>
1520 +
1521 +
1522 + </div>
1523 +
1524 +
1525 + <div class="unit-characteristics unit-specs mt-3 mt-sm-0 col-sm-6">
1526 +
1527 +
1528 +
1529 +
1530 +
1531 +
1532 + <p class="small-header pb-1">
1533 + Caractéristiques de l'unité
1534 + </p>
1535 +
1536 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1537 +
1538 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1539 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_4afd9f16-7ff5-11ea-8747-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1540 + <p class="attribute-description mb-0">Chat accepté</p>
1541 + </li>
1542 +
1543 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1544 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_5d2b8d60-7ff5-11ea-8747-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1545 + <p class="attribute-description mb-0">Balcon</p>
1546 + </li>
1547 +
1548 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1549 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_dca93cae-7ff5-11ea-b282-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1550 + <p class="attribute-description mb-0">Entrée laveuse-sécheuse</p>
1551 + </li>
1552 +
1553 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1554 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_e4ecf7a2-7ff5-11ea-abd0-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1555 + <p class="attribute-description mb-0">Entrée lave-vaisselle</p>
1556 + </li>
1557 +
1558 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1559 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_f86ba210-7ff5-11ea-b282-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1560 + <p class="attribute-description mb-0">Conciergerie sur place</p>
1561 + </li>
1562 +
1563 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1564 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_94300a9a-7ff8-11ea-b282-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1565 + <p class="attribute-description mb-0">Espace de rangement</p>
1566 + </li>
1567 +
1568 + </ul>
1569 +
1570 +
1571 + </div>
1572 +
1573 + </div>
1574 +
1575 + </div>
1576 + </div>
1577 + <div class="row mt-3">
1578 + <div class="col-md-4">
1579 + <button
1580 + class="inquire-room-and-scroll btn btn-outline-primary btn-block unit-detail d-none d-lg-block"
1581 + data-unit_room="4½">
1582 + S'informer
1583 + </button>
1584 + <button
1585 + class="inquire-room-and-scroll btn btn-outline-primary btn-block unit-detail d-block d-lg-none"
1586 + data-unit_room="4½" onclick="displayInquiryAndScroll();">
1587 + S'informer
1588 + </button>
1589 + </div>
1590 + </div>
1591 + <div class="units-detail">
1592 +
1593 +
1594 +<p class="mb-0 mt-4">
1595 + 1
1596 + <span class="text-lowercase">
1597 +
1598 + unité
1599 +
1600 + </span>
1601 +</p>
1602 +
1603 +
1604 +
1605 +
1606 +<div class="row" id="units-for-unit-room-262">
1607 +
1608 +
1609 + <div class="col-12 h-100 ">
1610 + <div class="h-100 border-bottom">
1611 + <div class="row mt-3">
1612 + <div class="col-sm-6 col-md-4">
1613 + <p class="small-header">unité</p>
1614 + <p>
1615 + 104
1616 +
1617 + <span>&middot; 1er étage</span>
1618 +
1619 + </p>
1620 + </div>
1621 + <div class="col-sm-6 col-md-4">
1622 + <p class="small-header">Disponibilité</p>
1623 + <p class="">
1624 + octobre 2026
1625 + </p>
1626 + </div>
1627 + <div class="col-sm-6 col-md-4">
1628 + <p class="small-header">À partir de</p>
1629 + <p>1190,00$</p>
1630 + </div>
1631 +
1632 + </div>
1633 + <div class="row">
1634 + </div>
1635 +
1636 + </div>
1637 + </div>
1638 +
1639 +
1640 +</div>
1641 +
1642 + </div>
1643 +
1644 + </div>
1645 +
1646 + </div>
1647 + </div>
1648 + </div>
1649 +</div>
1650 +
1651 +<div id="modal-video" class="modal">
1652 + <div class="modal-dialog modal-lg" role="document">
1653 + <div class="modal-content">
1654 + <div id="modal-video-body" class="modal-body">
1655 + </div>
1656 + </div>
1657 + </div>
1658 +</div>
1659 +
1660 +<script type="text/javascript">
1661 + const toggleHiddenUnits = (unitRoomId) => {
1662 + if (unitRoomId) {
1663 + const hiddenUnits = document.getElementsByClassName(`hidden-unit-${unitRoomId}`);
1664 + for (unit of hiddenUnits) {
1665 + unit.classList.toggle("d-none");
1666 + }
1667 +
1668 + const seeMoreButton = document.getElementById(`see-more-units-${unitRoomId}`);
1669 + if (seeMoreButton.textContent === "Voir plus")
1670 + seeMoreButton.textContent = "Voir moins";
1671 + else
1672 + seeMoreButton.textContent = "Voir plus";
1673 + }
1674 + }
1675 +
1676 + const playVideo = (el) => {
1677 + const list = el.getElementsByTagName('video');
1678 + if (!list || !list.length)
1679 + return;
1680 +
1681 + const video = list[0];
1682 + const container = document.getElementById('modal-video-body');
1683 + container.appendChild(video);
1684 + video.play();
1685 +
1686 + el.classList.add('show-placeholder');
1687 +
1688 + $("#modal-video").modal();
1689 + $("#modal-video").on('hidden.bs.modal', () => {
1690 + el.classList.remove('show-placeholder');
1691 + el.insertBefore(video, el.children[0]);
1692 + video.currentTime = 0;
1693 + video.pause();
1694 + });
1695 + }
1696 +
1697 + function displayInquiryAndScroll() {
1698 + displayInquiry();
1699 + const form = document.getElementById("inquire-form-anchor");
1700 + form.scrollIntoView();
1701 + }
1702 +</script>
1703 +
1704 +
1705 +<div class="container">
1706 + <div class="row mt-5">
1707 + <div class="col-md-6">
1708 + <div class="row">
1709 + <div class="col-12">
1710 + <h2>À propos de l'immeuble</h2>
1711 + </div>
1712 + </div>
1713 + <div class="row">
1714 + <div class="col-12">
1715 + <p class="mb-1"><strong>Adresse</strong></p>
1716 +
1717 +
1718 +<script id="building-coordinates" type="application/json">[{"loc": ["46.790795", "-71.355625"], "id": 137}]</script>
1719 +
1720 +<div id="map-container" class="footer mb-2 mt-1">
1721 + <div id="interactive-map" style="height: 100%;" class="rounded">
1722 + </div>
1723 +</div>
1724 +
1725 + <p class="mb-0">1520, rue de la Pente</p>
1726 + <p class="mb-0">L&#x27;Ancienne-Lorette, Québec</p>
1727 + <p class="mb-3">G2E5H8</p>
1728 + <a href="https://www.google.com/maps/search/?api=1&amp;query=%201520%20rue%20de%20la%20Pente%20L&#x27;Ancienne-Lorette%20G2E5H8" target="_blank">
1729 + Ouvrir sur Google Maps
1730 + </a>
1731 + </div>
1732 + </div>
1733 + <hr>
1734 + <div class="row">
1735 + <div class="col-12">
1736 + <p><strong>Plus d'informations</strong></p>
1737 + <div class="row">
1738 +
1739 + <div class="col-md-4">
1740 + <p class="subtext">Nombre d'étages</p>
1741 + <p class="d-md-none">
1742 +
1743 + 2 étage(s)
1744 +
1745 + </p>
1746 + </div>
1747 +
1748 + <div class="col-md-4">
1749 + <p class="subtext">Nombre total d'unités</p>
1750 + <p class="d-md-none">
1751 +
1752 + 12 unités
1753 +
1754 + </p>
1755 + </div>
1756 +
1757 + <div class="col-md-4">
1758 + <p class="subtext">Année de construction</p>
1759 + <p class="d-md-none">1983</p>
1760 + </div>
1761 +
1762 + </div>
1763 + <div class="row mb-3 d-none d-md-flex">
1764 +
1765 + <div class="col-md-4">
1766 + <p class="">
1767 +
1768 + 2 étage(s)
1769 +
1770 + </p>
1771 + </div>
1772 +
1773 + <div class="col-md-4">
1774 + <p class="">
1775 +
1776 + 12 unités
1777 +
1778 + </p>
1779 + </div>
1780 +
1781 + <div class="col-md-4">
1782 + <p class="">1983</p>
1783 + </div>
1784 +
1785 + </div>
1786 +
1787 + </div>
1788 + </div>
1789 +
1790 + <hr>
1791 + <div class="row">
1792 + <div class="col-12">
1793 + <p><strong>Commodités de l'immeuble</strong></p>
1794 + <div class="row">
1795 + <div class="col-12">
1796 +
1797 +
1798 +
1799 +
1800 +
1801 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1802 +
1803 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1804 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1805 + <p class="attribute-description mb-0">Équipe de maintenance 24h</p>
1806 + </li>
1807 +
1808 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1809 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1810 + <p class="attribute-description mb-0">Stationnement</p>
1811 + </li>
1812 +
1813 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1814 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1815 + <p class="attribute-description mb-0">Secteur paisible</p>
1816 + </li>
1817 +
1818 + </ul>
1819 +
1820 +
1821 + </div>
1822 + </div>
1823 + </div>
1824 + </div>
1825 +
1826 +
1827 + <hr>
1828 + <div class="row">
1829 + <div class="col-12">
1830 + <p><strong>Frais additionnels</strong></p>
1831 + <div class="row">
1832 + <div class="col-12">
1833 +
1834 +
1835 +
1836 +
1837 +
1838 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1839 +
1840 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1841 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1842 + <p class="attribute-description mb-0">Stationnement supplémentaire</p>
1843 + </li>
1844 +
1845 + </ul>
1846 +
1847 +
1848 + </div>
1849 + </div>
1850 + </div>
1851 + </div>
1852 +
1853 +
1854 + <hr>
1855 + <div class="row">
1856 + <div class="col-12">
1857 + <p><strong>Accès et services</strong></p>
1858 + <div class="row">
1859 + <div class="col-12">
1860 +
1861 +
1862 +
1863 +
1864 +
1865 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1866 +
1867 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1868 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1869 + <p class="attribute-description mb-0">Épicerie</p>
1870 + </li>
1871 +
1872 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1873 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1874 + <p class="attribute-description mb-0">Commerces</p>
1875 + </li>
1876 +
1877 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1878 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1879 + <p class="attribute-description mb-0">Accès facile aux autoroutes</p>
1880 + </li>
1881 +
1882 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1883 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1884 + <p class="attribute-description mb-0">Service d&#x27;autobus</p>
1885 + </li>
1886 +
1887 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1888 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1889 + <p class="attribute-description mb-0">Dépanneur</p>
1890 + </li>
1891 +
1892 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1893 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1894 + <p class="attribute-description mb-0">Banque</p>
1895 + </li>
1896 +
1897 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1898 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1899 + <p class="attribute-description mb-0">Pharmacie</p>
1900 + </li>
1901 +
1902 + </ul>
1903 +
1904 +
1905 + </div>
1906 + </div>
1907 + </div>
1908 + </div>
1909 +
1910 + </div>
1911 +
1912 + <div class="offset-lg-1 col-lg-5 col-md-6 mt-4 mt-md-0">
1913 + <div class="shadow">
1914 + <img
1915 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Ancienne_Lorette_church_1.jpg"
1916 + alt="Borough image"
1917 + width="100%"
1918 + height="200px"
1919 + class="object-fit-cover">
1920 + <div class="row p-4">
1921 + <div class="col-12">
1922 + <p class="small-header">À propos du quartier</p>
1923 + <h3>L&#x27;Ancienne-Lorette</h3>
1924 + <p>À L’Ancienne-Lorette, grâce aux nombreux services de proximité, les résidents sont unis par un fort sentiment d’appartenance.</p>
1925 + <p>La ville abrite deux écoles primaires, une école secondaire, un centre d’éducation aux adultes, plusieurs commerces ainsi que l’aéroport international Jean-Lesage. Avec un complexe sportif exceptionnel, comptant plus d’une quinzaine de parcs et espaces verts, trois centres communautaires, un C.L.S.C. et une maison de la culture, la ville offre un milieu de vie dynamique où il fait bon vivre.</p>
1926 + <a href="/louer-appartement-quebec/lancienne-lorette">
1927 +
1928 + Voir les appartements à L&#x27;Ancienne-Lorette
1929 +
1930 + </a>
1931 + </div>
1932 + </div>
1933 + </div>
1934 + </div>
1935 +
1936 + </div>
1937 + <div class="row">
1938 + <div class="col-12">
1939 +
1940 +
1941 +
1942 +
1943 + <div class="row mt-5 ">
1944 + <h2 class="col-12 text-center mb-4 text-primary">Nos logements en vedette</h2>
1945 + <div class="col-12 mb-3">
1946 +
1947 +
1948 +
1949 +<div class="row">
1950 +
1951 + <a
1952 + href="/logement/160"
1953 + class="appartments card border-white col-sm-6 mb-4 col-md-4 "
1954 + data-type="3"
1955 + data-borough="6"
1956 + >
1957 +
1958 +
1959 +
1960 +
1961 +<script>
1962 + function displayNowAvailableBubble(buildingId) {
1963 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
1964 + nowAvailableBubble.classList.remove("d-none");
1965 + }
1966 +</script>
1967 +
1968 +<div class="row">
1969 +
1970 +
1971 +
1972 + <img src alt="" onerror="displayNowAvailableBubble(160 + '-recommendation');"></img>
1973 +
1974 +
1975 +
1976 +
1977 + <div class="now-available-bubble d-none" id="now-available-bubble-160-recommendation">
1978 + <p class="text-white m-0">En vedette</p>
1979 + </div>
1980 +
1981 +
1982 + <div class="col-6 apartment-col">
1983 + <div class="row">
1984 + <div class="col-12 pr-0">
1985 +
1986 + <img
1987 + class="rounded-left apartment-image"
1988 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD1_54749d22-bfa3-11ea-9b14-0e226705be53.jpg"
1989 + alt="unit image"
1990 + width=100%
1991 + height=232px
1992 + />
1993 +
1994 + </div>
1995 + </div>
1996 + </div>
1997 +
1998 +
1999 + <div class="col-6 apartment-col">
2000 + <div class="row">
2001 + <div class="col-12 pl-0">
2002 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD2_5554869e-bfa3-11ea-9b14-0e226705be53.jpg"
2003 + alt="unit image" width="100%" height="116px">
2004 + </div>
2005 + </div>
2006 +
2007 + <div class="row">
2008 + <div class="col-12 pl-0">
2009 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD3_562eca5c-bfa3-11ea-9b14-0e226705be53.jpg"
2010 + alt="unit image" width=100% height=116px>
2011 + </div>
2012 + </div>
2013 +
2014 + </div>
2015 +
2016 +
2017 +
2018 +</div>
2019 +
2020 +
2021 +
2022 +
2023 +
2024 +<div class="row mt-4">
2025 + <div class="col-12">
2026 + <div class="card-body p-0 text-left">
2027 + <h5 class="apartment-borough">Appartements &middot; Neufchatel</h5>
2028 + <p class="apartment-address mb-1">1573, rue Pierre-Corneille</p>
2029 +
2030 +
2031 + <div class="row">
2032 + <div class="col-7">
2033 + <p class="apartment-infos mb-0">
2034 +
2035 + 4½ à partir de 1250$
2036 +
2037 + </p>
2038 + <p class="apartment-availability footnotes">
2039 + Libre immédiatement
2040 + </p>
2041 + </div>
2042 + <div class="col-5 text-right">
2043 +
2044 +
2045 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2046 +
2047 +
2048 +
2049 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2050 +
2051 +
2052 +
2053 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2054 +
2055 +
2056 +
2057 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_appliances_alt.png" alt="Lave-vaisselle" height=18px width=18px>
2058 +
2059 +
2060 +
2061 + </div>
2062 + </div>
2063 +
2064 +
2065 +
2066 + </div>
2067 + </div>
2068 +</div>
2069 +
2070 + </a>
2071 +
2072 + <a
2073 + href="/logement/18"
2074 + class="appartments card border-white col-sm-6 mb-4 col-md-4 "
2075 + data-type="3"
2076 + data-borough="3"
2077 + >
2078 +
2079 +
2080 +
2081 +
2082 +<script>
2083 + function displayNowAvailableBubble(buildingId) {
2084 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2085 + nowAvailableBubble.classList.remove("d-none");
2086 + }
2087 +</script>
2088 +
2089 +<div class="row">
2090 +
2091 +
2092 +
2093 + <img src alt="" onerror="displayNowAvailableBubble(18 + '-recommendation');"></img>
2094 +
2095 +
2096 +
2097 +
2098 + <div class="now-available-bubble d-none" id="now-available-bubble-18-recommendation">
2099 + <p class="text-white m-0">En vedette</p>
2100 + </div>
2101 +
2102 +
2103 + <div class="col-6 apartment-col">
2104 + <div class="row">
2105 + <div class="col-12 pr-0">
2106 +
2107 + <img
2108 + class="rounded-left apartment-image"
2109 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_3_bf11e94e-3f15-11f1-9a87-12e0191876fd.jpg"
2110 + alt="unit image"
2111 + width=100%
2112 + height=232px
2113 + />
2114 +
2115 + </div>
2116 + </div>
2117 + </div>
2118 +
2119 +
2120 + <div class="col-6 apartment-col">
2121 + <div class="row">
2122 + <div class="col-12 pl-0">
2123 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_2_bfb756f4-3f15-11f1-9a87-12e0191876fd.jpg"
2124 + alt="unit image" width="100%" height="116px">
2125 + </div>
2126 + </div>
2127 +
2128 + <div class="row">
2129 + <div class="col-12 pl-0">
2130 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_5_mod_c088e282-3f15-11f1-9a87-12e0191876fd.jpg"
2131 + alt="unit image" width=100% height=116px>
2132 + </div>
2133 + </div>
2134 +
2135 + </div>
2136 +
2137 +
2138 +
2139 +</div>
2140 +
2141 +
2142 +
2143 +
2144 +
2145 +<div class="row mt-4">
2146 + <div class="col-12">
2147 + <div class="card-body p-0 text-left">
2148 + <h5 class="apartment-borough">Appartements &middot; Beauport</h5>
2149 + <p class="apartment-address mb-1">555, avenue du Fleuve</p>
2150 +
2151 +
2152 + <div class="row">
2153 + <div class="col-7">
2154 + <p class="apartment-infos mb-0">
2155 +
2156 + 1½ à partir de 799$
2157 +
2158 + </p>
2159 + <p class="apartment-availability footnotes">
2160 + Libre immédiatement
2161 + </p>
2162 + </div>
2163 + <div class="col-5 text-right">
2164 +
2165 +
2166 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_light.png" alt="Électricité" height=18px width=18px>
2167 +
2168 +
2169 +
2170 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2171 +
2172 +
2173 +
2174 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_heat.png" alt="Chauffage" height=18px width=18px>
2175 +
2176 +
2177 +
2178 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2179 +
2180 +
2181 +
2182 +
2183 +
2184 +
2185 +
2186 + <p class="footnotes d-inline"> +2</p>
2187 +
2188 + </div>
2189 + </div>
2190 +
2191 +
2192 +
2193 + </div>
2194 + </div>
2195 +</div>
2196 +
2197 + </a>
2198 +
2199 + <a
2200 + href="/logement/312"
2201 + class="appartments card border-white col-sm-6 mb-4 col-md-4 "
2202 + data-type="3"
2203 + data-borough="10"
2204 + >
2205 +
2206 +
2207 +
2208 +
2209 +<script>
2210 + function displayNowAvailableBubble(buildingId) {
2211 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2212 + nowAvailableBubble.classList.remove("d-none");
2213 + }
2214 +</script>
2215 +
2216 +<div class="row">
2217 +
2218 +
2219 +
2220 + <img src alt="" onerror="displayNowAvailableBubble(312 + '-recommendation');"></img>
2221 +
2222 +
2223 +
2224 +
2225 + <div class="now-available-bubble d-none" id="now-available-bubble-312-recommendation">
2226 + <p class="text-white m-0">En vedette</p>
2227 + </div>
2228 +
2229 +
2230 + <div class="col-6 apartment-col">
2231 + <div class="row">
2232 + <div class="col-12 pr-0">
2233 +
2234 + <img
2235 + class="rounded-left apartment-image"
2236 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/CUISINE_2_a8e2db9c-5811-11f0-8a5b-0e9b4be91035.jpg"
2237 + alt="unit image"
2238 + width=100%
2239 + height=232px
2240 + />
2241 +
2242 + </div>
2243 + </div>
2244 + </div>
2245 +
2246 +
2247 + <div class="col-6 apartment-col">
2248 + <div class="row">
2249 + <div class="col-12 pl-0">
2250 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/CUISINE_a99b01fe-5811-11f0-8a5b-0e9b4be91035.jpg"
2251 + alt="unit image" width="100%" height="116px">
2252 + </div>
2253 + </div>
2254 +
2255 + <div class="row">
2256 + <div class="col-12 pl-0">
2257 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/SALON_aa37903c-5811-11f0-8a5b-0e9b4be91035.jpg"
2258 + alt="unit image" width=100% height=116px>
2259 + </div>
2260 + </div>
2261 +
2262 + </div>
2263 +
2264 +
2265 +
2266 +</div>
2267 +
2268 +
2269 +
2270 +
2271 +
2272 +<div class="row mt-4">
2273 + <div class="col-12">
2274 + <div class="card-body p-0 text-left">
2275 + <h5 class="apartment-borough">Appartements &middot; Lebourgneuf</h5>
2276 + <p class="apartment-address mb-1">5900 boul. St-Jacques</p>
2277 +
2278 +
2279 + <div class="row">
2280 + <div class="col-7">
2281 + <p class="apartment-infos mb-0">
2282 +
2283 + 4½ à partir de 1595$
2284 +
2285 + </p>
2286 + <p class="apartment-availability footnotes">
2287 + octobre 2026
2288 + </p>
2289 + </div>
2290 + <div class="col-5 text-right">
2291 +
2292 +
2293 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2294 +
2295 +
2296 +
2297 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_ac.png" alt="Climatiseur" height=18px width=18px>
2298 +
2299 +
2300 +
2301 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2302 +
2303 +
2304 +
2305 + </div>
2306 + </div>
2307 +
2308 +
2309 +
2310 + </div>
2311 + </div>
2312 +</div>
2313 +
2314 + </a>
2315 +
2316 +</div>
2317 +
2318 + </div>
2319 +
2320 + </div>
2321 +
2322 +
2323 + </div>
2324 + </div>
2325 +</div>
2326 +<div class="bg-primary py-5 mt-5">
2327 + <div class="container">
2328 + <div class="row justify-content-center">
2329 + <div class="col-sm-8 col-md-5 col-lg-11 d-flex flex-column align-items-center">
2330 + <h1 class="text-white text-center small-title">Ce logement vous intéresse? Contactez-nous!</h1>
2331 + <a href="#building-address-1" class="btn btn-dark border-white d-none d-lg-block">Nous joindre</a>
2332 + <a href="/nous-joindre" class="btn btn-dark border-white d-block d-lg-none">Nous joindre</a>
2333 + </div>
2334 + </div>
2335 + </div>
2336 +</div>
2337 +<div id="modal-inquire" class="modal">
2338 +
2339 +
2340 +
2341 +
2342 +<div class="inquire-step-1 container p-0 mb-5 position-relative">
2343 + <div id="inquire-step-1" style="position: absolute; top: -134px;"></div>
2344 + <h2 class="mb-4" style="font-size: 1.6rem;">S'informer sur ce logement</h2>
2345 + <p>418-626-3070</p>
2346 + <p class="text-primary"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f995969a988d909697b995989f8b98979a9cd494988d91909c8cd79a9694">[email&#160;protected]</a></p>
2347 + <p class="mb-4">Dites-nous quelles unités vous intéressent ainsi que votre date de déménagement prévue.</p>
2348 + <p class="text-gray-light">Intéressé par ces unités</p>
2349 +
2350 + <div class="d-inline-flex flex-wrap">
2351 +
2352 +
2353 + <button
2354 + class="inquire-room btn btn-normal mb-3"
2355 + data-unit_room="4½"
2356 + data-toggle="button"
2357 + >
2358 +
2359 + </button>
2360 +
2361 +
2362 + </div>
2363 +
2364 + <div class="dropdown mb-4">
2365 + <div class="dropdown-toggle inquire-units-button rounded p-3 text-left" type="button"
2366 + id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
2367 + <p class="inquire-units-label-title text-uppercase mb-0">
2368 + Unité(s) spécifique(s)
2369 + </p>
2370 + <p id="inquire-units-label-noselected" class="inquire-units-label-selection m-0">
2371 + Aucune choisie
2372 + </p>
2373 + <p id="inquire-units-label-selected" class="inquire-units-label-selection d-none m-0"></p>
2374 + </div>
2375 + <div class="dropdown-menu inquire-units-choices rounded border-gray-very-light" aria-labelledby="dropdownMenuButton">
2376 +
2377 +
2378 + <button class="inquire-units-choice dropdown-item" data-unit="104"
2379 + data-unit_room="4½">
2380 + 104
2381 + </button>
2382 +
2383 +
2384 + </div>
2385 + </div>
2386 +
2387 +
2388 + <p class="text-gray-light">Date de déménagement prévue</p>
2389 + <div id="inquire-datepicker" class="input-group date mt-1">
2390 + <input id="inquire-datepicker-input" class="form-control" onfocus="blur();" placeholder="Sélectionner une date">
2391 + <div class="input-group-addon">
2392 + <span class="glyphicon glyphicon-th"></span>
2393 + </div>
2394 + </div>
2395 +</div>
2396 +
2397 +<div class="inquire-step-2 container p-0 mb-5 d-none position-relative">
2398 + <div id="inquire-step-2" style="position: absolute; top: -134px;"></div>
2399 + <h2 class="my-4" style="font-size: 1.6rem;">Comment peut-on vous rejoindre?</h2>
2400 + <p>Inscrivez vos coordonnées afin que notre équipe puisse vous rejoindre et vous conseiller.</p>
2401 + <form id="inquire-form">
2402 + <div class="form-group">
2403 + <input name="firstName" type="text" class="form-control" id="inquireForm-firstName"
2404 + placeholder="Prénom"></input>
2405 + </div>
2406 + <div class="form-group">
2407 + <input name="lastName" type="text" class="form-control" id="inquireForm-lastName"
2408 + placeholder="Nom de famille"></input>
2409 + </div>
2410 + <div class="form-group">
2411 + <select name="contactMethod" class="form-control" id="inquireForm-contactMethod">
2412 + <option id="email" value="email" selected>Courriel</option>
2413 + <option id="phone" value="phone">Téléphone</option>
2414 + </select>
2415 + </div>
2416 + <div id="inquireForm-contact-email" class="form-group">
2417 + <input name="contactEmail" type="email" class="form-control" id="inquireForm-email"
2418 + placeholder="Adresse courriel"></input>
2419 + </div>
2420 + <div id="inquireForm-contact-phone" class="form-group d-none">
2421 + <input name="contactPhone" type="tel" class="form-control" id="inquireForm-phone"
2422 + placeholder="Numéro de téléphone"></input>
2423 + </div>
2424 + <div class="form-group">
2425 + <textarea name="comments" type="text" class="form-control" id="inquireForm-comments"
2426 + placeholder="Questions ou notes"></textarea>
2427 + </div>
2428 + <div id="g-recaptcha-error"></div>
2429 + <div class="mb-3 g-recaptcha" data-sitekey="6LdkNyIpAAAAAD7KhL3DhvgxSocY-78gAmvXBzoe" data-callback="verifyCaptcha"></div>
2430 + </form>
2431 +</div>
2432 +
2433 +<div class="inquire-step-3 d-none position-relative">
2434 + <div id="inquire-confirmation" style="position: absolute; top: -134px;"></div>
2435 + <img class="mt-4" src="/static/images/logos/sansfond_horizontal_noir.png" alt="L&M Logo" width="auto"
2436 + height="66px">
2437 + <h2 class="my-4" style="font-size: 1.6rem;">Votre demande a été envoyée à l’équipe de Lafrance et Mathieu.</h2>
2438 + <p>Nous répondons à toutes les demandes dans un délai de 24 à 48 heures (jours ouvrables).</p>
2439 +</div>
2440 +
2441 +<button id="inquire-btn-1" class="inquire-continue inquire-step-1 btn btn-primary w-100" disabled onclick="scrollToTopOfForm();">
2442 + Continuer
2443 +</button>
2444 +<button id="inquire-btn-2" class="inquire-submit inquire-step-2 btn btn-primary w-100 d-none" onclick="submitForm();" disabled>
2445 + Soumettre
2446 +</button>
2447 +<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
2448 + var recaptcha_response = '';
2449 + window.isCondo = "False" == "True";
2450 + document.getElementById("inquire-datepicker-input").value = "";
2451 +
2452 + function scrollToTopOfForm() {
2453 + const top = document.getElementById("inquire-step-1");
2454 + top.scrollIntoView();
2455 + }
2456 + function submitForm() {
2457 + if (recaptcha_response && recaptcha_response.length !== 0 && recaptcha_response !== ''){
2458 + onContinue2Click('RHdB3tccjAjRpBgAHHxmAg8y172zukmu9CKtfRKG10yfMne57dOFR99BIdCk9gvc');
2459 + const confirmation = document.getElementById("inquire-confirmation");
2460 + confirmation.scrollIntoView();
2461 + }
2462 + else {
2463 + document.getElementById('g-recaptcha-error').innerHTML = '<span style="color:red;">Ceci est obligatoire.</span>';
2464 + }
2465 + }
2466 +
2467 + function verifyCaptcha(token) {
2468 + recaptcha_response = token;
2469 + document.getElementById('g-recaptcha-error').innerHTML = '';
2470 + }
2471 +</script>
2472 +
2473 +</div>
2474 +
2475 +
2476 +
2477 +<div id="modal-share" class="modal">
2478 + <div class="modal-dialog h-75 d-flex justify-content-center align-items-center" role="document">
2479 + <div class="modal-content">
2480 + <div class="modal-body">
2481 + Partager ce logement
2482 + <div id="share-widget-container" class="d-flex justify-content-center"></div>
2483 + </div>
2484 + </div>
2485 + </div>
2486 +</div>
2487 +
2488 +
2489 +<script src="/static/js/share.js" defer></script>
2490 +
2491 +
2492 +
2493 +
2494 + </main>
2495 + <footer>
2496 +
2497 +
2498 +
2499 +<div class="footer row m-0 p-5 justify-content-center bg-black">
2500 + <div class="container m-0">
2501 + <div class="row mb-3">
2502 + <img src="/static/images/logos/sansfond_horizontal_blanc.png" alt="L&M Logo" width="auto"
2503 + height="80px" class="footer-logo">
2504 + </div>
2505 + <div class="row">
2506 + <div class="col-12 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pr-sm-4 d-flex flex-column">
2507 + <p class="footer-title mb-2">Contactez-nous</p>
2508 + <p class="footer-text mb-3">Pour toute question concercant nos services de gestion immobilière, nos logements à louer ou pour en savoir plus sur nos offres et services.</p>
2509 + <a href="tel:14186265500" class="mb-3 d-flex align-items-center">
2510 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-3" />
2511 + <span class="footer-phone">418 626-5500</span>
2512 + </a>
2513 + <a href="/cdn-cgi/l/email-protection#355c5b535a7559545347545b5650185854415d5c50401b565a58" target="_blank" class="mb-3 d-flex align-items-center">
2514 + <img src=/static/images/icons/email.svg alt="email icon" class="footer-icon mr-3" />
2515 + <span><span class="__cf_email__" data-cfemail="355c5b535a7559545347545b5650185854415d5c50401b565a58">[email&#160;protected]</span></span>
2516 + </a>
2517 + <a href="https://g.page/Lafrance-Mathieu?share" target="_blank" class="mb-4 d-flex align-items-center">
2518 + 1220 Boulevard Lebourgneuf<br>Québec, QC G2K 2G4
2519 + </a>
2520 + <p class="footer-title mb-2">Suivez-nous sur les réseaux</p>
2521 + <div class="d-flex">
2522 + <a href="https://ca.linkedin.com/company/gestion-immobilière-lafrance-et-mathieu-inc">
2523 + <img src=/static/images/icons/linkedin.svg alt="linkedin icon"
2524 + class="footer-social-icon mr-3" />
2525 + </a>
2526 + <a href="https://fr-ca.facebook.com/lafrance.mathieu">
2527 + <img src=/static/images/icons/facebook.svg alt="facebook icon"
2528 + class="footer-social-icon" />
2529 + </a>
2530 + </div>
2531 + </div>
2532 + <div class="col-10 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pl-sm-4 px-md-4 d-flex flex-column">
2533 + <p class="footer-title mb-2">Soutien aux résidents (24/7)</p>
2534 + <p class="footer-text mb-3">Pour toute urgence n’hésitez pas à nous contacter ou connectez vous à l’Espace client pour toute question ou demande moins urgente.</p>
2535 + <a href="tel:14186265500" class="mb-3 d-flex align-items-center">
2536 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-3" />
2537 + <span class="footer-phone">418-626-5500</span>
2538 + </a>
2539 + <a href="https://espace-client.lafrance-mathieu.com" target="_blank" class="d-flex align-items-center mb-3">
2540 + <img src=/static/images/icons/ticket.svg alt="client space icon" class="footer-icon mr-3" />
2541 + <span>Se connecter à l’Espace client</span>
2542 + </a>
2543 + <a href="https://doma.lafrance-mathieu.com:444/DocRoom/Auth/Login.aspx" target="_blank" class="d-flex align-items-center">
2544 + <img src=/static/images/icons/ticket.svg alt="intranet icon" class="footer-icon mr-3" />
2545 + <span>Se connecter à Sensaas</span>
2546 + </a>
2547 + </div>
2548 + <div class="col-10 col-sm-6 col-md-3 mb-4 mb-md-0 p-0 pr-sm-4 px-md-4">
2549 + <ul class="navbar-nav">
2550 +
2551 +
2552 +
2553 +<li class="nav-item ">
2554 + <a class="nav-link py-0 footer-main-navigation mb-3"
2555 + href="/">Accueil</a>
2556 + <hr class="my-1 border-gray-medium d-none">
2557 +</li>
2558 +
2559 +
2560 +
2561 +
2562 +
2563 +<li class="nav-item ">
2564 + <a class="nav-link py-0 footer-main-navigation mb-3"
2565 + href="/services-de-gestion-immobiliere">Services de gestion <br class='nav-item-translation'>immobilière</a>
2566 + <hr class="my-1 border-gray-medium d-none">
2567 +</li>
2568 +
2569 +
2570 +
2571 +
2572 +
2573 +<li class="nav-item ">
2574 + <a class="nav-link py-0 footer-main-navigation mb-3"
2575 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
2576 + <hr class="my-1 border-gray-medium d-none">
2577 +</li>
2578 +
2579 +
2580 +
2581 +
2582 +
2583 +<li class="nav-item ">
2584 + <a class="nav-link py-0 footer-main-navigation mb-3"
2585 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
2586 + <hr class="my-1 border-gray-medium d-none">
2587 +</li>
2588 +
2589 +
2590 +
2591 +
2592 +
2593 +<li class="nav-item ">
2594 + <a class="nav-link py-0 footer-main-navigation mb-3"
2595 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
2596 + <hr class="my-1 border-gray-medium d-none">
2597 +</li>
2598 +
2599 +
2600 +
2601 +
2602 +
2603 +<li class="nav-item ">
2604 + <a class="nav-link py-0 footer-main-navigation mb-3"
2605 + href="/qui-sommes-nous/">À propos de <br class='nav-item-translation'>Lafrance & Mathieu</a>
2606 + <hr class="my-1 border-gray-medium d-none">
2607 +</li>
2608 +
2609 +
2610 +
2611 + </ul>
2612 + </div>
2613 + <div class="col-10 col-sm-6 col-md-3 p-0 pl-sm-4">
2614 + <ul class="navbar-nav">
2615 +
2616 +
2617 +
2618 +<li class="nav-item ">
2619 + <a class="nav-link py-0 footer-main-navigation mb-3"
2620 + href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
2621 + <hr class="my-1 border-gray-medium d-none">
2622 +</li>
2623 +
2624 +
2625 +
2626 +
2627 +
2628 +<li class="nav-item ">
2629 + <a class="nav-link py-0 footer-main-navigation mb-3"
2630 + href="/blog">Blogue</a>
2631 + <hr class="my-1 border-gray-medium d-none">
2632 +</li>
2633 +
2634 +
2635 +
2636 +
2637 +
2638 +<li class="nav-item ">
2639 + <a class="nav-link py-0 footer-main-navigation mb-3"
2640 + href="/faire-carriere/">Carrières</a>
2641 + <hr class="my-1 border-gray-medium d-none">
2642 +</li>
2643 +
2644 +
2645 +
2646 + </ul>
2647 + </div>
2648 + </div>
2649 + </div>
2650 +</div>
2651 +
2652 +
2653 +
2654 +
2655 +<div class="footer-notices d-flex flex-column w-100 m-0 px-5 py-4 align-items-start align-items-sm-center bg-darker">
2656 + <div class="d-flex justify-content-center">
2657 + <ul class="list-inline mb-1">
2658 +
2659 + <li class="list-inline-item">
2660 + <a href=/conditions-utilisation>
2661 + Conditions d'utilisation
2662 + </a>
2663 + </li>
2664 +
2665 +
2666 + <li class="list-inline-item">
2667 + <a href=/politique-confidentialite>
2668 + Politique de confidentialité
2669 + </a>
2670 + </li>
2671 +
2672 +
2673 + <li class="list-inline-item">
2674 + <a href=/protection-renseignements-personnels>
2675 + Protection des renseignements personnels
2676 + </a>
2677 + </li>
2678 +
2679 +
2680 + <li class="list-inline-item">
2681 + <a href=/temoins-navigation>
2682 + Gérer vos témoins de navigation
2683 + </a>
2684 + </li>
2685 +
2686 + </ul>
2687 + </div>
2688 + <div class="d-flex justify-content-center">
2689 + <p class="">© Gestion immobilière Lafrance & Mathieu</p>
2690 + </div>
2691 +</div>
2692 +
2693 + </footer>
2694 +
2695 +
2696 +<!-- Cookie Banner -->
2697 +<div id="gilm-cookie-banner" class="alert alert-dark hidden" role="alert">
2698 + <div class="gilm-cookie-banner-container">
2699 + <div class="gilm-cookie-banner-text">
2700 + <p>
2701 + Nous utilisons les témoins de navigation (cookies) afin de mesurer et d’améliorer l’efficacité de nos
2702 + sites
2703 + Web
2704 + ou de rehausser l’expérience client. En utilisant notre site Web, vous consentez à l’utilisation de
2705 + témoins,
2706 + comme l’explique notre <a href=/protection-renseignements-personnels> protection des
2707 + renseignements personnels</a>. Si vous n'êtes pas à l'aise avec
2708 + l'utilisation
2709 + de ces informations, veuillez revoir vos paramètres avant de poursuivre votre visite.
2710 + </p>
2711 + <p class="d-sm-none">
2712 + <a href=/temoins-navigation>
2713 + Gérer vos témoins de navigation
2714 + </a>
2715 + <br/>
2716 + <a href=/politique-confidentialite>
2717 + Politique de confidentialité
2718 + </a>
2719 + <br/>
2720 + <a href=/conditions-utilisation>
2721 + Conditions d'utilisation
2722 + </a>
2723 + </p>
2724 + <p class="d-none d-sm-block">
2725 + <a href=/temoins-navigation>
2726 + Gérer vos témoins de navigation
2727 + </a>
2728 + -
2729 + <a href=/politique-confidentialite>
2730 + Politique de confidentialité
2731 + </a>
2732 + -
2733 + <a href=/conditions-utilisation>
2734 + Conditions d'utilisation
2735 + </a>
2736 + </p>
2737 + </div>
2738 + <button type="button" class="gilm-cookie-banner-button btn btn-primary btn-sm ms-3"
2739 + onclick="window.gilm_hideCookieBanner()">
2740 + <img src=/static/images/icons/close.svg alt="closing icon" class="close-icon"/>
2741 + </button>
2742 + </div>
2743 +</div>
2744 +<!-- End of Cookie Banner -->
2745 + </div>
2746 + <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous">
2747 + </script>
2748 + <script src="https://code.jquery.com/ui/1.12.0/jquery-ui.min.js" integrity="sha256-eGE6blurk5sHj+rmkfsGYeKyZx3M4bG+ZlFyA7Kns7E=" crossorigin="anonymous">
2749 + </script>
2750 + <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui-touch-punch/0.2.3/jquery.ui.touch-punch.min.js" crossorigin="anonymous"></script>
2751 + <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous">
2752 + </script>
2753 + <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous">
2754 + </script>
2755 + <script type="text/javascript" src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js">
2756 + </script>
2757 + <script type="text/javascript" src="/static/js/carousel.js">
2758 + </script>
2759 + <script type="text/javascript" src="/static/js/cookie_banner.js">
2760 + </script>
2761 + <script id="search-script" type="text/javascript" src="/static/js/search.js">
2762 + </script>
2763 + <script type="text/javascript" src="/static/js/jssocials.min.js">
2764 + </script>
2765 + <script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin="">
2766 + </script>
2767 + <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js" integrity="sha256-bqVeqGdJ7h/lYPq6xrPv/YGzMEb6dNxlfiTUHSgRCp8=" crossorigin="anonymous">
2768 + </script>
2769 + <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/locales/bootstrap-datepicker.fr.min.js" charset="UTF-8">
2770 + </script>
2771 + <script async src="https://www.googletagmanager.com/gtag/js?id=UA-20687227-3"></script>
2772 + <script>
2773 + window.dataLayer = window.dataLayer || [];
2774 +
2775 + function gtag() {
2776 + dataLayer.push(arguments);
2777 + }
2778 + gtag('js', new Date());
2779 + gtag('config', 'UA-20687227-3');
2780 + </script>
2781 +
2782 +<script src="/static/js/inquire.js"></script>
2783 +<script src="/static/js/leaflet.js" is-building-details="true"></script>
2784 +
2785 +
2786 + </body>
2787 +
2788 + </html>
added tests/fixtures/lafrance_mathieu/1a9a78cca8e59621965e.html +2464 −0
@@ -0,0 +1,2850 @@
1 +
2 +
3 +
4 +
5 + <!DOCTYPE html>
6 + <html lang="fr" class="building-detail">
7 +
8 + <head>
9 +
10 + <meta charset="utf-8">
11 + <meta name="viewport" content="width=device-width, initial-scale=1.0" />
12 + <meta name="format-detection" content="telephone=no" />
13 + <link rel="alternate" href="https://lafrance-mathieu.com" hreflang="fr-ca" />
14 + <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css" />
15 + <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css" />
16 + <link rel="stylesheet" href="/static/styling/index.css" />
17 + <script src="https://kit.fontawesome.com/72880f5a8c.js" crossorigin="anonymous"></script>
18 + <link rel="stylesheet" href="/static/styling/vendor/jssocials.css" />
19 + <link rel="stylesheet" href="/static/styling/vendor/jssocials-theme-flat.css" />
20 + <link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin="" />
21 + <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css" integrity="sha256-siyOpF/pBWUPgIcQi17TLBkjvNgNQArcmwJB8YvkAgg=" crossorigin="anonymous" />
22 +
23 +<link rel="alternate" hreflang="fr-ca" href="/logement/79" />
24 +<meta name="title" content="Logement a louer - 6910, boulevard de l&#x27;Ormière">
25 +<meta name="description" content="Trouvez votre appartement chez Lafrance et Mathieu. Louez un logement.">
26 +<meta name="keywords"
27 + content="appartement a louer,logement a louer, alouer, studio a louer, appartement meublé, appartement, louer, logement vacant, condo à louer,condo locatif, condo a louer lebourgneuf, condo a louer neufchatel, condo a louer charlesbourg, condo locatif Québec, logement, Québec, ville de québec, limoilou, charlesbourg, beauport, location, lafrance, mathieu, 1 et demi, 2 et demi, 3 et demi, 4 et demi, 5 et demi, 6 et demi, 7 et demi">
28 +<meta name="robots" content="index, follow">
29 +<title>6910, boulevard de l&#x27;Ormière - Lafrance & Mathieu</title>
30 +<script src="https://www.google.com/recaptcha/api.js?hl=fr" async defer></script>
31 +
32 + <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
33 + <meta name="language" content="French">
34 + <link rel="icon" type="image/ico" href="/static/images/favicon.ico" />
35 +
36 +
37 + <!-- Google Tag Manager -->
38 + <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
39 + new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
40 + j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
41 + 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
42 + })(window,document,'script','dataLayer','GTM-T675TG3');</script>
43 + <!-- End Google Tag Manager -->
44 + </head>
45 +
46 + <body>
47 + <!-- Google Tag Manager (noscript) -->
48 + <noscript><iframe src=https://www.googletagmanager.com/ns.html?id=GTM-T675TG3
49 + height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
50 + <!-- End Google Tag Manager (noscript) -->
51 +
52 + <div class="main-container">
53 + <header id="gilm-header" class>
54 +
55 +
56 +
57 +
58 +<nav class="nav desktop-nav">
59 + <div class="desktop-nav-top">
60 + <a class="desktop-nav-top-link" href="/faire-carriere/">
61 + <p>Carrières</p>
62 + </a>
63 +
64 + <a class="desktop-nav-top-link" href="/blog">
65 + <p>Lafrance et Mathieu: Blogue</p>
66 + </a>
67 +
68 + <a class="desktop-nav-top-link" href="https://espace-client.lafrance-mathieu.com" target="_blank">
69 + <p class="text-primary">Connexion</p>
70 + </a>
71 + </div>
72 + <div class="desktop-nav-bottom ">
73 + <ul class="desktop-nav-bottom-content left">
74 +
75 +
76 +
77 +
78 +
79 +
80 +
81 +<li
82 + class="nav-item dropdown "
83 + href="#"
84 +>
85 + <a
86 + class="nav-link py-0 dropdown-toggle header-main-navigation"
87 + href="#"
88 + id="navbardrop"
89 + data-toggle="dropdown"
90 + >
91 + Services de gestion <br class='nav-item-translation'>immobilière
92 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
93 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
94 +</svg>
95 +
96 + </a>
97 + <ul
98 + class="dropdown-menu dark dropdown-submenu"
99 + >
100 +
101 +
102 + <li class="nav-item">
103 + <a
104 + class="dropdown-item header-main-navigation text-wrap "
105 + href="/services-de-gestion-immobiliere"
106 + >
107 + Présentation de nos services
108 + </a>
109 + </li>
110 +
111 +
112 +
113 + <li class="nav-item">
114 + <a
115 + class="dropdown-item header-main-navigation text-wrap "
116 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
117 + >
118 + Gestion d’immeubles en copropriété
119 + </a>
120 + </li>
121 +
122 +
123 +
124 + <li class="nav-item">
125 + <a
126 + class="dropdown-item header-main-navigation text-wrap "
127 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
128 + >
129 + Gestion immobilière d&#x27;appartements en location
130 + </a>
131 + </li>
132 +
133 +
134 +
135 + <li class="nav-item">
136 + <a
137 + class="dropdown-item header-main-navigation text-wrap "
138 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
139 + >
140 + Gestion immobilière commerciale
141 + </a>
142 + </li>
143 +
144 +
145 +
146 + <li class="nav-item">
147 + <a
148 + class="dropdown-item header-main-navigation text-wrap "
149 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
150 + >
151 + Service de courtage immobilier
152 + </a>
153 + </li>
154 +
155 +
156 +
157 + <li class="nav-item">
158 + <a
159 + class="dropdown-item header-main-navigation text-wrap "
160 + href="/services-de-gestion-immobiliere/gilm-renovation"
161 + >
162 + GILM Rénovation
163 + </a>
164 + </li>
165 +
166 +
167 + </ul>
168 + <hr class="my-1 border-gray-medium d-none">
169 +</li>
170 +
171 +
172 +
173 +
174 +
175 +
176 +
177 +
178 +<li class="nav-item ">
179 + <a class="nav-link py-0 header-main-navigation"
180 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
181 + <hr class="my-1 border-gray-medium d-none">
182 +</li>
183 +
184 +
185 +
186 +
187 +
188 +
189 +
190 +<li class="nav-item ">
191 + <a class="nav-link py-0 header-main-navigation"
192 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
193 + <hr class="my-1 border-gray-medium d-none">
194 +</li>
195 +
196 +
197 +
198 +
199 + </ul>
200 +
201 + <ul class="desktop-nav-bottom-content">
202 + <li class="desktop-nav-logo">
203 + <a href="/">
204 + <img src="/static/images/logos/sansfond_horizontal_noir.png" alt="L&M Logo" class="desktop-nav-logo-horizontal " />
205 + <img src="/static/images/logos/sansfond_vertical_blanc.png" alt="L&M Logo" class="desktop-nav-logo-vertical d-none" />
206 + </a>
207 + </li>
208 + </ul>
209 +
210 + <ul class="desktop-nav-bottom-content right">
211 +
212 +
213 +
214 +
215 +<li class="nav-item order-5">
216 + <a class="nav-link py-0 header-main-navigation"
217 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
218 + <hr class="my-1 border-gray-medium d-none">
219 +</li>
220 +
221 +
222 +
223 +
224 +
225 +
226 +
227 +
228 +
229 +
230 +<li
231 + class="nav-item dropdown order-6"
232 + href="#"
233 +>
234 + <a
235 + class="nav-link py-0 dropdown-toggle header-main-navigation"
236 + href="#"
237 + id="navbardrop"
238 + data-toggle="dropdown"
239 + >
240 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
241 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
242 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
243 +</svg>
244 +
245 + </a>
246 + <ul
247 + class="dropdown-menu dark dropdown-submenu"
248 + >
249 +
250 +
251 + <li class="nav-item">
252 + <a
253 + class="dropdown-item header-main-navigation text-wrap "
254 + href="/qui-sommes-nous/?tab=1"
255 + >
256 + Qui sommes-nous
257 + </a>
258 + </li>
259 +
260 +
261 +
262 + <li class="nav-item">
263 + <a
264 + class="dropdown-item header-main-navigation text-wrap "
265 + href="/qui-sommes-nous/?tab=2"
266 + >
267 + Mission et valeurs
268 + </a>
269 + </li>
270 +
271 +
272 +
273 + <li class="nav-item">
274 + <a
275 + class="dropdown-item header-main-navigation text-wrap "
276 + href="/qui-sommes-nous/?tab=3"
277 + >
278 + Équipe de direction
279 + </a>
280 + </li>
281 +
282 +
283 + </ul>
284 + <hr class="my-1 border-gray-medium d-none">
285 +</li>
286 +
287 +
288 +
289 +
290 +
291 +
292 +
293 +
294 +<li class="nav-item order-7">
295 + <a class="nav-link py-0 header-main-navigation"
296 + href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
297 + <hr class="my-1 border-gray-medium d-none">
298 +</li>
299 +
300 +
301 +
302 +
303 + </ul>
304 + </div>
305 +</nav>
306 +<nav class="nav mobile-nav">
307 + <div class="nav-bottom nav-d-none order-2" id="navbarSupportedContent">
308 + <ul class="nav-main-links">
309 +
310 +
311 +
312 +
313 +<li class="nav-item ">
314 + <a class="nav-link py-0 header-main-navigation"
315 + href="/">Accueil</a>
316 + <hr class="my-1 border-gray-medium d-none">
317 +</li>
318 +
319 +
320 +
321 +
322 +
323 +
324 +
325 +
326 +
327 +
328 +<li
329 + class="nav-item dropdown "
330 + href="#"
331 +>
332 + <a
333 + class="nav-link py-0 dropdown-toggle header-main-navigation"
334 + href="#"
335 + id="navbardrop"
336 + data-toggle="dropdown"
337 + >
338 + Services de gestion <br class='nav-item-translation'>immobilière
339 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
340 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
341 +</svg>
342 +
343 + </a>
344 + <ul
345 + class="dropdown-menu bg-gray-blue dropdown-submenu"
346 + >
347 +
348 +
349 + <li class="nav-item">
350 + <a
351 + class="dropdown-item header-main-navigation text-wrap "
352 + href="/services-de-gestion-immobiliere"
353 + >
354 + Présentation de nos services
355 + </a>
356 + </li>
357 +
358 +
359 +
360 + <li class="nav-item">
361 + <a
362 + class="dropdown-item header-main-navigation text-wrap "
363 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
364 + >
365 + Gestion d’immeubles en copropriété
366 + </a>
367 + </li>
368 +
369 +
370 +
371 + <li class="nav-item">
372 + <a
373 + class="dropdown-item header-main-navigation text-wrap "
374 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
375 + >
376 + Gestion immobilière d&#x27;appartements en location
377 + </a>
378 + </li>
379 +
380 +
381 +
382 + <li class="nav-item">
383 + <a
384 + class="dropdown-item header-main-navigation text-wrap "
385 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
386 + >
387 + Gestion immobilière commerciale
388 + </a>
389 + </li>
390 +
391 +
392 +
393 + <li class="nav-item">
394 + <a
395 + class="dropdown-item header-main-navigation text-wrap "
396 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
397 + >
398 + Service de courtage immobilier
399 + </a>
400 + </li>
401 +
402 +
403 +
404 + <li class="nav-item">
405 + <a
406 + class="dropdown-item header-main-navigation text-wrap "
407 + href="/services-de-gestion-immobiliere/gilm-renovation"
408 + >
409 + GILM Rénovation
410 + </a>
411 + </li>
412 +
413 +
414 + </ul>
415 + <hr class="my-1 border-gray-medium d-none">
416 +</li>
417 +
418 +
419 +
420 +
421 +
422 +
423 +
424 +
425 +<li class="nav-item ">
426 + <a class="nav-link py-0 header-main-navigation"
427 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
428 + <hr class="my-1 border-gray-medium d-none">
429 +</li>
430 +
431 +
432 +
433 +
434 +
435 +
436 +
437 +<li class="nav-item ">
438 + <a class="nav-link py-0 header-main-navigation"
439 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
440 + <hr class="my-1 border-gray-medium d-none">
441 +</li>
442 +
443 +
444 +
445 +
446 +
447 +
448 +
449 +<li class="nav-item ">
450 + <a class="nav-link py-0 header-main-navigation"
451 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
452 + <hr class="my-1 border-gray-medium d-none">
453 +</li>
454 +
455 +
456 +
457 +
458 +
459 +
460 +
461 +
462 +
463 +
464 +<li
465 + class="nav-item dropdown "
466 + href="#"
467 +>
468 + <a
469 + class="nav-link py-0 dropdown-toggle header-main-navigation"
470 + href="#"
471 + id="navbardrop"
472 + data-toggle="dropdown"
473 + >
474 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
475 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
476 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
477 +</svg>
478 +
479 + </a>
480 + <ul
481 + class="dropdown-menu bg-gray-blue dropdown-submenu"
482 + >
483 +
484 +
485 + <li class="nav-item">
486 + <a
487 + class="dropdown-item header-main-navigation text-wrap "
488 + href="/qui-sommes-nous/?tab=1"
489 + >
490 + Qui sommes-nous
491 + </a>
492 + </li>
493 +
494 +
495 +
496 + <li class="nav-item">
497 + <a
498 + class="dropdown-item header-main-navigation text-wrap "
499 + href="/qui-sommes-nous/?tab=2"
500 + >
501 + Mission et valeurs
502 + </a>
503 + </li>
504 +
505 +
506 +
507 + <li class="nav-item">
508 + <a
509 + class="dropdown-item header-main-navigation text-wrap "
510 + href="/qui-sommes-nous/?tab=3"
511 + >
512 + Équipe de direction
513 + </a>
514 + </li>
515 +
516 +
517 + </ul>
518 + <hr class="my-1 border-gray-medium d-none">
519 +</li>
520 +
521 +
522 +
523 +
524 +
525 + </ul>
526 + <ul class="nav-quick-links mobile d-flex d-lg-none">
527 +
528 +
529 +<div class="nav-item">
530 + <a class="header-secondary-navigation" href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
531 +</div>
532 +
533 +
534 +
535 +
536 +<div class="nav-item">
537 + <a class="header-secondary-navigation" href="/blog">Blogue</a>
538 +</div>
539 +
540 +
541 +
542 +
543 +<div class="nav-item">
544 + <a class="header-secondary-navigation" href="/faire-carriere/">Carrières</a>
545 +</div>
546 +
547 +
548 +
549 + <li class="nav-item nav-client-space">
550 +
551 +
552 +<a class="btn btn-primary header-button-navigation text-white" href="https://espace-client.lafrance-mathieu.com">Connexion à l’Espace client</a>
553 + </li>
554 + </ul>
555 + <div class="w-100 my-3 d-flex d-lg-none flex-wrap">
556 + <div class="mb-4 p-0 pr-4 d-flex flex-column">
557 + <a href="tel:14186265500" class="mb-2 d-flex align-items-center">
558 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-2" />
559 + <span class="text-gray-light">418 626-5500</span>
560 + </a>
561 + <a href="/cdn-cgi/l/email-protection#a4cdcac2cbe4c8c5c2d6c5cac7c189c9c5d0cccdc1d18ac7cbc9" target="_blank" class="mb-3 d-flex align-items-center">
562 + <img src=/static/images/icons/call.svg alt="email icon" class="footer-icon mr-2" />
563 + <span><span class="__cf_email__" data-cfemail="88e1e6eee7c8e4e9eefae9e6ebeda5e5e9fce0e1edfda6ebe7e5">[email&#160;protected]</span></span>
564 + </a>
565 + <p class="footer-text text-uppercase text-white text-bold">Suivez-nous sur les réseaux</p>
566 + <div class="d-flex">
567 + <a href="https://ca.linkedin.com/company/gestion-immobilière-lafrance-et-mathieu-inc">
568 + <img src=/static/images/icons/linkedin.svg alt="linkedin icon"
569 + class="footer-social-icon mr-3" />
570 + </a>
571 + <a href="https://fr-ca.facebook.com/lafrance.mathieu">
572 + <img src=/static/images/icons/facebook.svg alt="facebook icon"
573 + class="footer-social-icon" />
574 + </a>
575 + </div>
576 + </div>
577 + <div class="mb-4 mb-md-0 p-0 pl-sm-4 px-md-4 d-flex flex-column">
578 + <p class="footer-text text-uppercase text-white text-bold">Soutien aux résidents (24/7)</p>
579 + <a href="tel:14186265500" class="mb-2 d-flex align-items-center">
580 + <img src=/static/images/icons/call.svg alt="phone icon" class="footer-icon mr-2" />
581 + <span class="text-gray-light">418 626-5500</span>
582 + </a>
583 + </div>
584 + </div>
585 + </div>
586 + <div class="nav-top order-1">
587 + <ul class="nav-main-links nav-main-links-top">
588 +
589 +
590 +
591 +
592 +<li class="nav-item ">
593 + <a class="nav-link py-0 header-main-navigation"
594 + href="/">Accueil</a>
595 + <hr class="my-1 border-gray-medium d-none">
596 +</li>
597 +
598 +
599 +
600 +
601 +
602 +
603 +
604 +
605 +
606 +
607 +<li
608 + class="nav-item dropdown "
609 + href="#"
610 +>
611 + <a
612 + class="nav-link py-0 dropdown-toggle header-main-navigation"
613 + href="#"
614 + id="navbardrop"
615 + data-toggle="dropdown"
616 + >
617 + Services de gestion <br class='nav-item-translation'>immobilière
618 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
619 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
620 +</svg>
621 +
622 + </a>
623 + <ul
624 + class="dropdown-menu bg-gray-blue dropdown-submenu"
625 + >
626 +
627 +
628 + <li class="nav-item">
629 + <a
630 + class="dropdown-item header-main-navigation text-wrap "
631 + href="/services-de-gestion-immobiliere"
632 + >
633 + Présentation de nos services
634 + </a>
635 + </li>
636 +
637 +
638 +
639 + <li class="nav-item">
640 + <a
641 + class="dropdown-item header-main-navigation text-wrap "
642 + href="/services-de-gestion-immobiliere/gestion-coproprietes-quebec"
643 + >
644 + Gestion d’immeubles en copropriété
645 + </a>
646 + </li>
647 +
648 +
649 +
650 + <li class="nav-item">
651 + <a
652 + class="dropdown-item header-main-navigation text-wrap "
653 + href="/services-de-gestion-immobiliere/gestion-immeubles-logements"
654 + >
655 + Gestion immobilière d&#x27;appartements en location
656 + </a>
657 + </li>
658 +
659 +
660 +
661 + <li class="nav-item">
662 + <a
663 + class="dropdown-item header-main-navigation text-wrap "
664 + href="/services-de-gestion-immobiliere/gestion-immeubles-bureaux-commercial"
665 + >
666 + Gestion immobilière commerciale
667 + </a>
668 + </li>
669 +
670 +
671 +
672 + <li class="nav-item">
673 + <a
674 + class="dropdown-item header-main-navigation text-wrap "
675 + href="/services-de-gestion-immobiliere/courtage-immobilier-residentiel-locatif-commercial"
676 + >
677 + Service de courtage immobilier
678 + </a>
679 + </li>
680 +
681 +
682 +
683 + <li class="nav-item">
684 + <a
685 + class="dropdown-item header-main-navigation text-wrap "
686 + href="/services-de-gestion-immobiliere/gilm-renovation"
687 + >
688 + GILM Rénovation
689 + </a>
690 + </li>
691 +
692 +
693 + </ul>
694 + <hr class="my-1 border-gray-medium d-none">
695 +</li>
696 +
697 +
698 +
699 +
700 +
701 +
702 +
703 +
704 +<li class="nav-item ">
705 + <a class="nav-link py-0 header-main-navigation"
706 + href="/louer-appartement-quebec/">Logements <br class='nav-item-translation'>à louer</a>
707 + <hr class="my-1 border-gray-medium d-none">
708 +</li>
709 +
710 +
711 +
712 +
713 +
714 +
715 +
716 +<li class="nav-item ">
717 + <a class="nav-link py-0 header-main-navigation"
718 + href="/commercial/">Espaces <br class='nav-item-translation'>commerciaux</a>
719 + <hr class="my-1 border-gray-medium d-none">
720 +</li>
721 +
722 +
723 +
724 +
725 +
726 +
727 +
728 +<li class="nav-item ">
729 + <a class="nav-link py-0 header-main-navigation"
730 + href="/espace-client/">Découvrez <br class='nav-item-translation'>l'Espace client</a>
731 + <hr class="my-1 border-gray-medium d-none">
732 +</li>
733 +
734 +
735 +
736 +
737 +
738 +
739 +
740 +
741 +
742 +
743 +<li
744 + class="nav-item dropdown "
745 + href="#"
746 +>
747 + <a
748 + class="nav-link py-0 dropdown-toggle header-main-navigation"
749 + href="#"
750 + id="navbardrop"
751 + data-toggle="dropdown"
752 + >
753 + À propos de <br class='nav-item-translation'>Lafrance & Mathieu
754 + <svg xmlns="http://www.w3.org/2000/svg" width="11" height="6" viewBox="0 0 11 6">
755 + <path fill="#B5A05F" fill-rule="evenodd" d="M9.43.26a.596.596 0 1 1 .843.843l-4.17 4.17a.596.596 0 0 1-.843 0l-4.17-4.17A.596.596 0 1 1 1.931.26l3.75 3.75L9.43.26z"/>
756 +</svg>
757 +
758 + </a>
759 + <ul
760 + class="dropdown-menu bg-gray-blue dropdown-submenu"
761 + >
762 +
763 +
764 + <li class="nav-item">
765 + <a
766 + class="dropdown-item header-main-navigation text-wrap "
767 + href="/qui-sommes-nous/?tab=1"
768 + >
769 + Qui sommes-nous
770 + </a>
771 + </li>
772 +
773 +
774 +
775 + <li class="nav-item">
776 + <a
777 + class="dropdown-item header-main-navigation text-wrap "
778 + href="/qui-sommes-nous/?tab=2"
779 + >
780 + Mission et valeurs
781 + </a>
782 + </li>
783 +
784 +
785 +
786 + <li class="nav-item">
787 + <a
788 + class="dropdown-item header-main-navigation text-wrap "
789 + href="/qui-sommes-nous/?tab=3"
790 + >
791 + Équipe de direction
792 + </a>
793 + </li>
794 +
795 +
796 + </ul>
797 + <hr class="my-1 border-gray-medium d-none">
798 +</li>
799 +
800 +
801 +
802 +
803 +
804 + </ul>
805 + <button class="nav-toggle d-block d-lg-none" type="button" onclick="toggleMenu();">
806 + <img class="nav-toggle-icon icon-top d-none" src="/static/images/menu.svg" alt="menu">
807 + <img class="nav-toggle-icon icon-sticky" src="/static/images/menu-dark.svg" alt="menu">
808 + </button>
809 + <ul class="nav-quick-links">
810 +
811 +
812 +<div class="nav-item">
813 + <a class="header-secondary-navigation" href="/nous-joindre/">Nous <br class='nav-item-translation'>contacter</a>
814 +</div>
815 +
816 +
817 +
818 +
819 +<div class="nav-item">
820 + <a class="header-secondary-navigation" href="/blog">Blogue</a>
821 +</div>
822 +
823 +
824 +
825 +
826 +<div class="nav-item">
827 + <a class="header-secondary-navigation" href="/faire-carriere/">Carrières</a>
828 +</div>
829 +
830 +
831 +
832 + <li class="nav-item nav-client-space">
833 +
834 +
835 +<a class="btn btn-primary header-button-navigation text-white" href="https://espace-client.lafrance-mathieu.com">Connexion à l’Espace client</a>
836 + </li>
837 + </ul>
838 + <a class="nav-logo-link" href="/">
839 + <img id="logo-white" class="nav-logo-img icon-top d-none" src="/static/images/logos/sansfond_horizontal_blanc.png"
840 + alt="L&M Logo">
841 + <img id="logo-dark" class="nav-logo-img icon-sticky" src="/static/images/logos/sansfond_horizontal_noir.png"
842 + alt="L&M Logo">
843 + </a>
844 + </div>
845 +
846 +
847 +
848 +
849 +
850 +
851 +
852 +
853 +</nav>
854 +
855 +<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
856 + function toggleMenu() {
857 + scrollPosition = window.scrollY;
858 +
859 + const menu = document.getElementById("navbarSupportedContent");
860 + menu.classList.toggle("nav-d-none");
861 +
862 + const mobileTabs = document.getElementsByClassName("mobile-tabs")[0];
863 + if (mobileTabs && mobileTabs.classList) {
864 + mobileTabs.classList.toggle("d-none");
865 + }
866 +
867 + if (!menu.classList.contains("nav-d-none")) {
868 + makeHeaderDark();
869 + } else {
870 + makeHeaderClear();
871 + }
872 + }
873 +
874 + window.addEventListener('touchmove', function (_e) {
875 + onScroll();
876 + });
877 + window.addEventListener('scroll', function (_e) {
878 + onScroll();
879 + });
880 +
881 + function makeHeaderDark() {
882 + const header = document.getElementById("gilm-header");
883 + if (!header.classList.contains("top")) header.classList.add("top");
884 +
885 + const lightIcons = document.getElementsByClassName("icon-top");
886 + const darkIcons = document.getElementsByClassName("icon-sticky");
887 + for (icon of lightIcons) {
888 + icon.classList.contains("d-none") && icon.classList.remove("d-none");
889 + }
890 + for (icon of darkIcons) {
891 + !icon.classList.contains("d-none") && icon.classList.add("d-none");
892 + }
893 + }
894 +
895 + function makeHeaderClear() {
896 + const header = document.getElementById("gilm-header");
897 + if (header.classList.contains("top")) header.classList.remove("top");
898 +
899 + const lightIcons = document.getElementsByClassName("icon-top");
900 + const darkIcons = document.getElementsByClassName("icon-sticky");
901 + for (icon of lightIcons) {
902 + !icon.classList.contains("d-none") && icon.classList.add("d-none");
903 + }
904 + for (icon of darkIcons) {
905 + icon.classList.contains("d-none") && icon.classList.remove("d-none");
906 + }
907 + }
908 +
909 + function onScroll() {
910 +
911 + }
912 +</script>
913 +
914 + </header>
915 + <main class="overflow-y-hidden ">
916 +
917 +
918 +<div class="container">
919 + <nav class="mb-4 pt-4" aria-label="breadcrumb">
920 + <a class="breadcrumb-primary" href="/">Accueil</a>
921 + <a class="breadcrumb-primary" href="/louer-appartement-quebec/">Logements à louer</a>
922 + </nav>
923 +
924 +
925 +
926 +
927 +<div class="row">
928 + <div class="col-md-10">
929 + <p class="text-gray-light">Appartements &middot; Les Saules</p>
930 + <h2 id="building-address-1">6910, boulevard de l&#x27;Ormière</h2>
931 + <p id="building-address-2" class="subtext">
932 + Québec ,
933 + (Québec),
934 + G2C1C1
935 + </p>
936 + </div>
937 + <div class="col-md-2 col-sm-12 d-flex align-items-end flex-row-reverse pb-3">
938 +
939 +
940 +
941 +
942 + <button
943 + class="btn text-primary "
944 + data-toggle="modal"
945 + data-target="#modal-share"
946 + onclick="configureShareWidget(`Logements à louer - 6910, boulevard de l&#x27;Ormière`, `https://lafrance-mathieu.com/logement/79`)">
947 + <i class="fas fa-share-square mr-1"></i>
948 + <span>Partager</span>
949 +</button>
950 +
951 +
952 +
953 + </div>
954 +</div>
955 +<div class="row">
956 + <div class="col-lg-8 d-none d-md-block">
957 +
958 +
959 +
960 +<div class="building-slideshow">
961 + <div class="slider slider-for">
962 +
963 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/facade_33f3a684-d8d4-11ef-bb5a-0ed4545646ed.jpg" alt="Façade">
964 +
965 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/facade_2_352978b2-d8d4-11ef-bb5a-0ed4545646ed.jpg" alt="Façade2">
966 +
967 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/facade_3_35b20696-d8d4-11ef-bb5a-0ed4545646ed.jpg" alt="facade">
968 +
969 + </div>
970 + <div class="slider slider-nav mt-2">
971 +
972 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/facade_33f3a684-d8d4-11ef-bb5a-0ed4545646ed.jpg" alt="Façade">
973 +
974 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/facade_2_352978b2-d8d4-11ef-bb5a-0ed4545646ed.jpg" alt="Façade2">
975 +
976 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/facade_3_35b20696-d8d4-11ef-bb5a-0ed4545646ed.jpg" alt="facade">
977 +
978 + </div>
979 +</div>
980 +
981 +
982 + </div>
983 + <div class="col-lg-8 d-block d-md-none">
984 +
985 +
986 +
987 +
988 +
989 +<div class="">
990 + <div class="single-item-arrow--left ml-3"></div>
991 + <div class="single-item">
992 +
993 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/facade_33f3a684-d8d4-11ef-bb5a-0ed4545646ed.jpg" alt="Façade" style="object-fit: cover" height="auto">
994 +
995 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/facade_2_352978b2-d8d4-11ef-bb5a-0ed4545646ed.jpg" alt="Façade2" style="object-fit: cover" height="auto">
996 +
997 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/facade_3_35b20696-d8d4-11ef-bb5a-0ed4545646ed.jpg" alt="facade" style="object-fit: cover" height="auto">
998 +
999 + </div>
1000 + <div class="single-item-arrow--right mr-3"></div>
1001 +</div>
1002 +
1003 +
1004 + </div>
1005 +
1006 + <div class="col-12 col-lg-4 order-lg-2">
1007 + <div class="border border-light rounded p-3 w-100 d-none d-lg-block shadow-sm position-relative" id="inquire-form">
1008 + <div style="position: absolute; top: -134px;" id="inquire-form-anchor"></div>
1009 +
1010 +
1011 +
1012 +
1013 +<div class="inquire-step-1 container p-0 mb-5 position-relative">
1014 + <div id="inquire-step-1" style="position: absolute; top: -134px;"></div>
1015 + <h2 class="mb-4" style="font-size: 1.6rem;">S'informer sur ce logement</h2>
1016 + <p>418-626-3070</p>
1017 + <p class="text-primary"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f894979b998c919796b894999e8a99969b9dd595998c90919d8dd69b9795">[email&#160;protected]</a></p>
1018 + <p class="mb-4">Dites-nous quelles unités vous intéressent ainsi que votre date de déménagement prévue.</p>
1019 + <p class="text-gray-light">Intéressé par ces unités</p>
1020 +
1021 + <div class="d-inline-flex flex-wrap">
1022 +
1023 +
1024 + <button
1025 + class="inquire-room btn btn-normal mb-3"
1026 + data-unit_room="4½"
1027 + data-toggle="button"
1028 + >
1029 +
1030 + </button>
1031 +
1032 +
1033 + </div>
1034 +
1035 + <div class="dropdown mb-4">
1036 + <div class="dropdown-toggle inquire-units-button rounded p-3 text-left" type="button"
1037 + id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
1038 + <p class="inquire-units-label-title text-uppercase mb-0">
1039 + Unité(s) spécifique(s)
1040 + </p>
1041 + <p id="inquire-units-label-noselected" class="inquire-units-label-selection m-0">
1042 + Aucune choisie
1043 + </p>
1044 + <p id="inquire-units-label-selected" class="inquire-units-label-selection d-none m-0"></p>
1045 + </div>
1046 + <div class="dropdown-menu inquire-units-choices rounded border-gray-very-light" aria-labelledby="dropdownMenuButton">
1047 +
1048 +
1049 + <button class="inquire-units-choice dropdown-item" data-unit="14"
1050 + data-unit_room="4½">
1051 + 14
1052 + </button>
1053 +
1054 +
1055 + </div>
1056 + </div>
1057 +
1058 +
1059 + <p class="text-gray-light">Date de déménagement prévue</p>
1060 + <div id="inquire-datepicker" class="input-group date mt-1">
1061 + <input id="inquire-datepicker-input" class="form-control" onfocus="blur();" placeholder="Sélectionner une date">
1062 + <div class="input-group-addon">
1063 + <span class="glyphicon glyphicon-th"></span>
1064 + </div>
1065 + </div>
1066 +</div>
1067 +
1068 +<div class="inquire-step-2 container p-0 mb-5 d-none position-relative">
1069 + <div id="inquire-step-2" style="position: absolute; top: -134px;"></div>
1070 + <h2 class="my-4" style="font-size: 1.6rem;">Comment peut-on vous rejoindre?</h2>
1071 + <p>Inscrivez vos coordonnées afin que notre équipe puisse vous rejoindre et vous conseiller.</p>
1072 + <form id="inquire-form">
1073 + <div class="form-group">
1074 + <input name="firstName" type="text" class="form-control" id="inquireForm-firstName"
1075 + placeholder="Prénom"></input>
1076 + </div>
1077 + <div class="form-group">
1078 + <input name="lastName" type="text" class="form-control" id="inquireForm-lastName"
1079 + placeholder="Nom de famille"></input>
1080 + </div>
1081 + <div class="form-group">
1082 + <select name="contactMethod" class="form-control" id="inquireForm-contactMethod">
1083 + <option id="email" value="email" selected>Courriel</option>
1084 + <option id="phone" value="phone">Téléphone</option>
1085 + </select>
1086 + </div>
1087 + <div id="inquireForm-contact-email" class="form-group">
1088 + <input name="contactEmail" type="email" class="form-control" id="inquireForm-email"
1089 + placeholder="Adresse courriel"></input>
1090 + </div>
1091 + <div id="inquireForm-contact-phone" class="form-group d-none">
1092 + <input name="contactPhone" type="tel" class="form-control" id="inquireForm-phone"
1093 + placeholder="Numéro de téléphone"></input>
1094 + </div>
1095 + <div class="form-group">
1096 + <textarea name="comments" type="text" class="form-control" id="inquireForm-comments"
1097 + placeholder="Questions ou notes"></textarea>
1098 + </div>
1099 + <div id="g-recaptcha-error"></div>
1100 + <div class="mb-3 g-recaptcha" data-sitekey="6LdkNyIpAAAAAD7KhL3DhvgxSocY-78gAmvXBzoe" data-callback="verifyCaptcha"></div>
1101 + </form>
1102 +</div>
1103 +
1104 +<div class="inquire-step-3 d-none position-relative">
1105 + <div id="inquire-confirmation" style="position: absolute; top: -134px;"></div>
1106 + <img class="mt-4" src="/static/images/logos/sansfond_horizontal_noir.png" alt="L&M Logo" width="auto"
1107 + height="66px">
1108 + <h2 class="my-4" style="font-size: 1.6rem;">Votre demande a été envoyée à l’équipe de Lafrance et Mathieu.</h2>
1109 + <p>Nous répondons à toutes les demandes dans un délai de 24 à 48 heures (jours ouvrables).</p>
1110 +</div>
1111 +
1112 +<button id="inquire-btn-1" class="inquire-continue inquire-step-1 btn btn-primary w-100" disabled onclick="scrollToTopOfForm();">
1113 + Continuer
1114 +</button>
1115 +<button id="inquire-btn-2" class="inquire-submit inquire-step-2 btn btn-primary w-100 d-none" onclick="submitForm();" disabled>
1116 + Soumettre
1117 +</button>
1118 +<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
1119 + var recaptcha_response = '';
1120 + window.isCondo = "False" == "True";
1121 + document.getElementById("inquire-datepicker-input").value = "";
1122 +
1123 + function scrollToTopOfForm() {
1124 + const top = document.getElementById("inquire-step-1");
1125 + top.scrollIntoView();
1126 + }
1127 + function submitForm() {
1128 + if (recaptcha_response && recaptcha_response.length !== 0 && recaptcha_response !== ''){
1129 + onContinue2Click('DGSjkjytqwNMW315Gu4NfCyDulkZS0xbVBpbwH6X8W2ajPZA60l6wvzGbrUKxWGT');
1130 + const confirmation = document.getElementById("inquire-confirmation");
1131 + confirmation.scrollIntoView();
1132 + }
1133 + else {
1134 + document.getElementById('g-recaptcha-error').innerHTML = '<span style="color:red;">Ceci est obligatoire.</span>';
1135 + }
1136 + }
1137 +
1138 + function verifyCaptcha(token) {
1139 + recaptcha_response = token;
1140 + document.getElementById('g-recaptcha-error').innerHTML = '';
1141 + }
1142 +</script>
1143 +
1144 + </div>
1145 + </div>
1146 +
1147 +</div>
1148 +
1149 +<div class="row mt-4">
1150 + <div class="col-md-8">
1151 + <h2 class="convenience-header">Commodités de l'immeuble</h2>
1152 + <div class="row mb-4">
1153 + <div class="col-md-12">
1154 +
1155 +
1156 +
1157 +
1158 +
1159 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1160 +
1161 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1162 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1163 + <p class="attribute-description mb-0">Intercom</p>
1164 + </li>
1165 +
1166 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1167 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1168 + <p class="attribute-description mb-0">Équipe de maintenance 24h</p>
1169 + </li>
1170 +
1171 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1172 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1173 + <p class="attribute-description mb-0">Stationnement</p>
1174 + </li>
1175 +
1176 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1177 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1178 + <p class="attribute-description mb-0">Insonorisation supérieure</p>
1179 + </li>
1180 +
1181 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1182 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1183 + <p class="attribute-description mb-0">Grand espace gazonné</p>
1184 + </li>
1185 +
1186 + </ul>
1187 +
1188 +
1189 + </div>
1190 + </div>
1191 + </div>
1192 +</div>
1193 +
1194 +
1195 +</div>
1196 +
1197 +
1198 +
1199 +
1200 +
1201 +<script>
1202 +function scrollToId(unitRoomId) {
1203 + removeAllActive();
1204 +
1205 + const scrollOptions = {
1206 + behavior: "smooth",
1207 + block: "start"
1208 + };
1209 +
1210 + const defaultFilter = document.getElementById("unit-room-filter-all");
1211 + if (unitRoomId === "all") {
1212 + defaultFilter.classList.add("active");
1213 + defaultFilter.scrollIntoView(scrollOptions);
1214 + } else {
1215 + const element = document.getElementById(`unit-room-${unitRoomId}`);
1216 + if (!!element) {
1217 + element.scrollIntoView(scrollOptions);
1218 + const defaultFilter = document.getElementById("unit-room-filter-all");
1219 + defaultFilter.classList.remove("active");
1220 + const filter = document.getElementById(`unit-room-filter-${unitRoomId}`);
1221 + filter.classList.add("active");
1222 +
1223 + }
1224 + }
1225 +}
1226 +
1227 +function removeAllActive() {
1228 + const elements = document.getElementsByClassName("unit-room-filter");
1229 + for (element of elements) element.classList.remove("active");
1230 +}
1231 +</script>
1232 +
1233 +<div class="container">
1234 + <div class="row mt-5">
1235 + <div class="col-md-12">
1236 + <h2 id="anchor-units" class="mb-3">Unités</h2>
1237 +
1238 + <ul class="list-inline mb-0 position-relative">
1239 + <li class="list-inline-item mr-4 pb-2 unit-room-filter active" id="unit-room-filter-all">
1240 + <button onclick="scrollToId('all');" class="unit-room-filter-button btn btn-no-outline">
1241 + <span>Toutes</span>
1242 + </button>
1243 + </li>
1244 +
1245 + <li class="list-inline-item mr-4 mb-0 pb-2 unit-room-filter" id="unit-room-filter-185">
1246 + <button onclick="scrollToId('185');" class="unit-room-filter-button btn btn-no-outline">
1247 + <span class="text-primary">4½</span> <span class="text-gray-light">(1)</span>
1248 + </button>
1249 + </li>
1250 +
1251 + </ul>
1252 +
1253 + </div>
1254 + </div>
1255 +</div>
1256 +<div class="bg-background-gray pb-3">
1257 + <div class="container">
1258 + <div class="row">
1259 + <div class="col-12 p-0">
1260 +
1261 + <div class="bg-white rounded mt-3 p-3 p-md-5 mx-3 position-relative">
1262 + <div style="position: absolute; top: -134px;" id="unit-room-185"></div>
1263 + <div id="modal-details-185" class="modal">
1264 +
1265 +
1266 +
1267 +<div class="container mt-5">
1268 + <div class="col-md-8 offset-md-2 bg-white p-5 rounded shadow">
1269 +
1270 +
1271 +<div class="row">
1272 + <div class="col-9">
1273 + <h2>
1274 +
1275 + 4½ from $1350 to $1350
1276 +
1277 + </h2>
1278 + </div>
1279 + <div class="col-3 text-right">
1280 + <button class="btn-close" data-toggle="modal" data-target="#modal-details-185"></button>
1281 + </div>
1282 +</div>
1283 +<div class="row">
1284 + <div class="col-9">
1285 +
1286 +
1287 +<p class="">
1288 + 1
1289 + <span class="text-lowercase">
1290 +
1291 + unité
1292 +
1293 + </span>
1294 +</p>
1295 + </div>
1296 + <div class="col-3 text-right">
1297 +
1298 + </div>
1299 +</div>
1300 +<div class="row">
1301 + <div class="col-12" id="unit-modal-carousel-185">
1302 +
1303 +
1304 +<div class="unit-detail-carousel">
1305 + <div class="slider slider-for">
1306 +
1307 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/1_0414d560-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine">
1308 +
1309 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/2_04e41bd6-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine">
1310 +
1311 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/3_05c15460-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine">
1312 +
1313 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/4_067ab522-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine">
1314 +
1315 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/5_07471c8e-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="salon">
1316 +
1317 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/6_07ed50cc-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="salon">
1318 +
1319 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/7_08a429c8-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="sm">
1320 +
1321 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/8_094dc348-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="salon">
1322 +
1323 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/9_09fbdf1e-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine">
1324 +
1325 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/10_0ad14a14-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="chambre">
1326 +
1327 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/11_0bb7f810-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="chambre">
1328 +
1329 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/12_0c6aab72-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="salon">
1330 +
1331 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/13_0d294df2-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="chambre">
1332 +
1333 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/14_0dc24994-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="chambre">
1334 +
1335 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/15_0e660340-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="sb">
1336 +
1337 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/16_0f0f79de-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="sb">
1338 +
1339 + </div>
1340 + <div class="slider slider-nav mt-2">
1341 +
1342 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/1_0414d560-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine">
1343 +
1344 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/2_04e41bd6-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine">
1345 +
1346 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/3_05c15460-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine">
1347 +
1348 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/4_067ab522-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine">
1349 +
1350 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/5_07471c8e-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="salon">
1351 +
1352 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/6_07ed50cc-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="salon">
1353 +
1354 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/7_08a429c8-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="sm">
1355 +
1356 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/8_094dc348-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="salon">
1357 +
1358 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/9_09fbdf1e-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine">
1359 +
1360 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/10_0ad14a14-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="chambre">
1361 +
1362 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/11_0bb7f810-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="chambre">
1363 +
1364 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/12_0c6aab72-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="salon">
1365 +
1366 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/13_0d294df2-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="chambre">
1367 +
1368 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/14_0dc24994-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="chambre">
1369 +
1370 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/15_0e660340-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="sb">
1371 +
1372 + <img class="mr-2 "src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/16_0f0f79de-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="sb">
1373 +
1374 + </div>
1375 +</div>
1376 +
1377 + </div>
1378 +</div>
1379 +<div class="row mt-3">
1380 + <div class="col-12 unit-commodities">
1381 +
1382 +
1383 +
1384 +
1385 +
1386 +
1387 + <p class="small-header pb-1">
1388 + Commodités de l'unité
1389 + </p>
1390 +
1391 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1392 +
1393 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1394 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="icon" height="15px" width="15px">
1395 + <p class="attribute-description mb-0">Équipe de maintenance 24h</p>
1396 + </li>
1397 +
1398 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1399 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_ac.png" alt="icon" height="15px" width="15px">
1400 + <p class="attribute-description mb-0">Climatiseur</p>
1401 + </li>
1402 +
1403 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1404 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1405 + <p class="attribute-description mb-0">Stationnement extérieur</p>
1406 + </li>
1407 +
1408 + </ul>
1409 +
1410 +
1411 + </div>
1412 +</div>
1413 +<div class="row mt-3">
1414 + <div class="col-12 unit-characteristics">
1415 +
1416 +
1417 +
1418 +
1419 +
1420 +
1421 + </div>
1422 +</div>
1423 +
1424 +
1425 + <div class="units-detail mt-5">
1426 + <h2>Unités</h2>
1427 +
1428 +
1429 +
1430 +
1431 +<div class="row" id="units-for-unit-room-185">
1432 +
1433 +
1434 + <div class="col-12 h-100 ">
1435 + <div class="h-100 border-bottom">
1436 + <div class="row mt-3">
1437 + <div class="col-sm-6 col-md-4">
1438 + <p class="small-header">unité</p>
1439 + <p>
1440 + 14
1441 +
1442 + <span>&middot; 3e étage</span>
1443 +
1444 + </p>
1445 + </div>
1446 + <div class="col-sm-6 col-md-4">
1447 + <p class="small-header">Disponibilité</p>
1448 + <p class="">
1449 + septembre 2026
1450 + </p>
1451 + </div>
1452 + <div class="col-sm-6 col-md-4">
1453 + <p class="small-header">À partir de</p>
1454 + <p>1350,00$</p>
1455 + </div>
1456 +
1457 + </div>
1458 + <div class="row">
1459 + </div>
1460 +
1461 + </div>
1462 + </div>
1463 +
1464 +
1465 +</div>
1466 +
1467 + </div>
1468 +
1469 + </div>
1470 +</div>
1471 + </div>
1472 + <div class="row">
1473 + <div class="col-6">
1474 + <h4>
1475 +
1476 + 4½ à partir de 1350,00$
1477 +
1478 + </h4>
1479 + </div>
1480 + <div class="col-6 d-flex justify-content-end">
1481 +
1482 +
1483 +
1484 + <button
1485 + class="btn text-primary share-button-small"
1486 + data-toggle="modal"
1487 + data-target="#modal-share"
1488 + onclick="configureShareWidget(`4½ à louer - 6910, boulevard de l&#x27;Ormière`, `https://lafrance-mathieu.com/logement/79`)">
1489 + <i class="fas fa-share-square mr-1"></i>
1490 + <span>Partager</span>
1491 +</button>
1492 +
1493 +
1494 + </div>
1495 + </div>
1496 + <div class="row">
1497 + <div class="col-md-4">
1498 + <div class="row">
1499 + <div class="col-12">
1500 +
1501 +
1502 +
1503 +
1504 +
1505 +<div class="unit-image-counter d-flex align-items-center">
1506 + <img class="ml-1" src="/static/images/logos/camera.png" height="14px" width="auto" alt="unit image">
1507 + <span class="ml-1 text-white small">16</span>
1508 +</div>
1509 +
1510 +
1511 +<div class="single-item-small">
1512 + <div class="single-item-arrow--left ml-3"></div>
1513 + <div class="single-item">
1514 +
1515 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/1_0414d560-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine" style="object-fit: cover" height="auto">
1516 +
1517 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/2_04e41bd6-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine" style="object-fit: cover" height="auto">
1518 +
1519 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/3_05c15460-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine" style="object-fit: cover" height="auto">
1520 +
1521 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/4_067ab522-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine" style="object-fit: cover" height="auto">
1522 +
1523 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/5_07471c8e-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="salon" style="object-fit: cover" height="auto">
1524 +
1525 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/6_07ed50cc-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="salon" style="object-fit: cover" height="auto">
1526 +
1527 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/7_08a429c8-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="sm" style="object-fit: cover" height="auto">
1528 +
1529 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/8_094dc348-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="salon" style="object-fit: cover" height="auto">
1530 +
1531 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/9_09fbdf1e-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="cuisine" style="object-fit: cover" height="auto">
1532 +
1533 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/10_0ad14a14-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="chambre" style="object-fit: cover" height="auto">
1534 +
1535 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/11_0bb7f810-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="chambre" style="object-fit: cover" height="auto">
1536 +
1537 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/12_0c6aab72-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="salon" style="object-fit: cover" height="auto">
1538 +
1539 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/13_0d294df2-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="chambre" style="object-fit: cover" height="auto">
1540 +
1541 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/14_0dc24994-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="chambre" style="object-fit: cover" height="auto">
1542 +
1543 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/15_0e660340-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="sb" style="object-fit: cover" height="auto">
1544 +
1545 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/16_0f0f79de-d8d3-11ef-a2b2-0ed4545646ed.jpg" alt="sb" style="object-fit: cover" height="auto">
1546 +
1547 + </div>
1548 + <div class="single-item-arrow--right mr-3"></div>
1549 +</div>
1550 +
1551 +
1552 + </div>
1553 + </div>
1554 +
1555 + </div>
1556 + <div class="col-md-8 mt-4 mt-md-0 d-flex flex-column">
1557 + <div class="row flex-grow-1">
1558 +
1559 + <div class="unit-commodities unit-specs col-sm-6">
1560 +
1561 +
1562 +
1563 +
1564 +
1565 +
1566 + <p class="small-header pb-1">
1567 + Commodités de l'unité
1568 + </p>
1569 +
1570 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1571 +
1572 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1573 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="icon" height="15px" width="15px">
1574 + <p class="attribute-description mb-0">Équipe de maintenance 24h</p>
1575 + </li>
1576 +
1577 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1578 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_ac.png" alt="icon" height="15px" width="15px">
1579 + <p class="attribute-description mb-0">Climatiseur</p>
1580 + </li>
1581 +
1582 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1583 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1584 + <p class="attribute-description mb-0">Stationnement extérieur</p>
1585 + </li>
1586 +
1587 + </ul>
1588 +
1589 +
1590 + </div>
1591 +
1592 +
1593 + <div class="unit-characteristics unit-specs mt-3 mt-sm-0 col-sm-6">
1594 +
1595 +
1596 +
1597 +
1598 +
1599 +
1600 + <p class="small-header pb-1">
1601 + Caractéristiques de l'unité
1602 + </p>
1603 +
1604 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1605 +
1606 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1607 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_4afd9f16-7ff5-11ea-8747-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1608 + <p class="attribute-description mb-0">Chat accepté</p>
1609 + </li>
1610 +
1611 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1612 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_5d2b8d60-7ff5-11ea-8747-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1613 + <p class="attribute-description mb-0">Balcon</p>
1614 + </li>
1615 +
1616 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1617 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_dca93cae-7ff5-11ea-b282-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1618 + <p class="attribute-description mb-0">Entrée laveuse-sécheuse</p>
1619 + </li>
1620 +
1621 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1622 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_e4ecf7a2-7ff5-11ea-abd0-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1623 + <p class="attribute-description mb-0">Entrée lave-vaisselle</p>
1624 + </li>
1625 +
1626 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1627 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan_94300a9a-7ff8-11ea-b282-1275881fc0b8.png" alt="icon" height="15px" width="15px">
1628 + <p class="attribute-description mb-0">Espace de rangement</p>
1629 + </li>
1630 +
1631 + </ul>
1632 +
1633 +
1634 + </div>
1635 +
1636 + </div>
1637 +
1638 + </div>
1639 + </div>
1640 + <div class="row mt-3">
1641 + <div class="col-md-4">
1642 + <button
1643 + class="inquire-room-and-scroll btn btn-outline-primary btn-block unit-detail d-none d-lg-block"
1644 + data-unit_room="4½">
1645 + S'informer
1646 + </button>
1647 + <button
1648 + class="inquire-room-and-scroll btn btn-outline-primary btn-block unit-detail d-block d-lg-none"
1649 + data-unit_room="4½" onclick="displayInquiryAndScroll();">
1650 + S'informer
1651 + </button>
1652 + </div>
1653 + </div>
1654 + <div class="units-detail">
1655 +
1656 +
1657 +<p class="mb-0 mt-4">
1658 + 1
1659 + <span class="text-lowercase">
1660 +
1661 + unité
1662 +
1663 + </span>
1664 +</p>
1665 +
1666 +
1667 +
1668 +
1669 +<div class="row" id="units-for-unit-room-185">
1670 +
1671 +
1672 + <div class="col-12 h-100 ">
1673 + <div class="h-100 border-bottom">
1674 + <div class="row mt-3">
1675 + <div class="col-sm-6 col-md-4">
1676 + <p class="small-header">unité</p>
1677 + <p>
1678 + 14
1679 +
1680 + <span>&middot; 3e étage</span>
1681 +
1682 + </p>
1683 + </div>
1684 + <div class="col-sm-6 col-md-4">
1685 + <p class="small-header">Disponibilité</p>
1686 + <p class="">
1687 + septembre 2026
1688 + </p>
1689 + </div>
1690 + <div class="col-sm-6 col-md-4">
1691 + <p class="small-header">À partir de</p>
1692 + <p>1350,00$</p>
1693 + </div>
1694 +
1695 + </div>
1696 + <div class="row">
1697 + </div>
1698 +
1699 + </div>
1700 + </div>
1701 +
1702 +
1703 +</div>
1704 +
1705 + </div>
1706 +
1707 + </div>
1708 +
1709 + </div>
1710 + </div>
1711 + </div>
1712 +</div>
1713 +
1714 +<div id="modal-video" class="modal">
1715 + <div class="modal-dialog modal-lg" role="document">
1716 + <div class="modal-content">
1717 + <div id="modal-video-body" class="modal-body">
1718 + </div>
1719 + </div>
1720 + </div>
1721 +</div>
1722 +
1723 +<script type="text/javascript">
1724 + const toggleHiddenUnits = (unitRoomId) => {
1725 + if (unitRoomId) {
1726 + const hiddenUnits = document.getElementsByClassName(`hidden-unit-${unitRoomId}`);
1727 + for (unit of hiddenUnits) {
1728 + unit.classList.toggle("d-none");
1729 + }
1730 +
1731 + const seeMoreButton = document.getElementById(`see-more-units-${unitRoomId}`);
1732 + if (seeMoreButton.textContent === "Voir plus")
1733 + seeMoreButton.textContent = "Voir moins";
1734 + else
1735 + seeMoreButton.textContent = "Voir plus";
1736 + }
1737 + }
1738 +
1739 + const playVideo = (el) => {
1740 + const list = el.getElementsByTagName('video');
1741 + if (!list || !list.length)
1742 + return;
1743 +
1744 + const video = list[0];
1745 + const container = document.getElementById('modal-video-body');
1746 + container.appendChild(video);
1747 + video.play();
1748 +
1749 + el.classList.add('show-placeholder');
1750 +
1751 + $("#modal-video").modal();
1752 + $("#modal-video").on('hidden.bs.modal', () => {
1753 + el.classList.remove('show-placeholder');
1754 + el.insertBefore(video, el.children[0]);
1755 + video.currentTime = 0;
1756 + video.pause();
1757 + });
1758 + }
1759 +
1760 + function displayInquiryAndScroll() {
1761 + displayInquiry();
1762 + const form = document.getElementById("inquire-form-anchor");
1763 + form.scrollIntoView();
1764 + }
1765 +</script>
1766 +
1767 +
1768 +<div class="container">
1769 + <div class="row mt-5">
1770 + <div class="col-md-6">
1771 + <div class="row">
1772 + <div class="col-12">
1773 + <h2>À propos de l'immeuble</h2>
1774 + </div>
1775 + </div>
1776 + <div class="row">
1777 + <div class="col-12">
1778 + <p class="mb-1"><strong>Adresse</strong></p>
1779 +
1780 +
1781 +<script id="building-coordinates" type="application/json">[{"loc": ["46.824513", "-71.338879"], "id": 79}]</script>
1782 +
1783 +<div id="map-container" class="footer mb-2 mt-1">
1784 + <div id="interactive-map" style="height: 100%;" class="rounded">
1785 + </div>
1786 +</div>
1787 +
1788 + <p class="mb-0">6910, boulevard de l&#x27;Ormière</p>
1789 + <p class="mb-0">Québec , Québec</p>
1790 + <p class="mb-3">G2C1C1</p>
1791 + <a href="https://www.google.com/maps/search/?api=1&amp;query=%206910%20boulevard%20de%20l&#x27;Ormiere%20Quebec%20%20G2C1C1" target="_blank">
1792 + Ouvrir sur Google Maps
1793 + </a>
1794 + </div>
1795 + </div>
1796 + <hr>
1797 + <div class="row">
1798 + <div class="col-12">
1799 + <p><strong>Plus d'informations</strong></p>
1800 + <div class="row">
1801 +
1802 + <div class="col-md-4">
1803 + <p class="subtext">Nombre d'étages</p>
1804 + <p class="d-md-none">
1805 +
1806 + 3 étage(s)
1807 +
1808 + </p>
1809 + </div>
1810 +
1811 + <div class="col-md-4">
1812 + <p class="subtext">Nombre total d'unités</p>
1813 + <p class="d-md-none">
1814 +
1815 + 16 unités
1816 +
1817 + </p>
1818 + </div>
1819 +
1820 + <div class="col-md-4">
1821 + <p class="subtext">Année de construction</p>
1822 + <p class="d-md-none">1988</p>
1823 + </div>
1824 +
1825 + </div>
1826 + <div class="row mb-3 d-none d-md-flex">
1827 +
1828 + <div class="col-md-4">
1829 + <p class="">
1830 +
1831 + 3 étage(s)
1832 +
1833 + </p>
1834 + </div>
1835 +
1836 + <div class="col-md-4">
1837 + <p class="">
1838 +
1839 + 16 unités
1840 +
1841 + </p>
1842 + </div>
1843 +
1844 + <div class="col-md-4">
1845 + <p class="">1988</p>
1846 + </div>
1847 +
1848 + </div>
1849 +
1850 + </div>
1851 + </div>
1852 +
1853 + <hr>
1854 + <div class="row">
1855 + <div class="col-12">
1856 + <p><strong>Commodités de l'immeuble</strong></p>
1857 + <div class="row">
1858 + <div class="col-12">
1859 +
1860 +
1861 +
1862 +
1863 +
1864 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1865 +
1866 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1867 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1868 + <p class="attribute-description mb-0">Intercom</p>
1869 + </li>
1870 +
1871 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1872 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1873 + <p class="attribute-description mb-0">Équipe de maintenance 24h</p>
1874 + </li>
1875 +
1876 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1877 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1878 + <p class="attribute-description mb-0">Stationnement</p>
1879 + </li>
1880 +
1881 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1882 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1883 + <p class="attribute-description mb-0">Insonorisation supérieure</p>
1884 + </li>
1885 +
1886 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1887 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1888 + <p class="attribute-description mb-0">Grand espace gazonné</p>
1889 + </li>
1890 +
1891 + </ul>
1892 +
1893 +
1894 + </div>
1895 + </div>
1896 + </div>
1897 + </div>
1898 +
1899 +
1900 +
1901 + <hr>
1902 + <div class="row">
1903 + <div class="col-12">
1904 + <p><strong>Accès et services</strong></p>
1905 + <div class="row">
1906 + <div class="col-12">
1907 +
1908 +
1909 +
1910 +
1911 +
1912 + <ul class="list-unstyled d-flex flex-wrap mb-1">
1913 +
1914 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1915 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1916 + <p class="attribute-description mb-0">École</p>
1917 + </li>
1918 +
1919 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1920 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1921 + <p class="attribute-description mb-0">Épicerie</p>
1922 + </li>
1923 +
1924 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1925 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1926 + <p class="attribute-description mb-0">Commerces</p>
1927 + </li>
1928 +
1929 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1930 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1931 + <p class="attribute-description mb-0">Accès facile aux autoroutes</p>
1932 + </li>
1933 +
1934 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1935 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1936 + <p class="attribute-description mb-0">Service d&#x27;autobus</p>
1937 + </li>
1938 +
1939 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1940 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1941 + <p class="attribute-description mb-0">Dépanneur</p>
1942 + </li>
1943 +
1944 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1945 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1946 + <p class="attribute-description mb-0">Garderies</p>
1947 + </li>
1948 +
1949 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1950 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1951 + <p class="attribute-description mb-0">Banque</p>
1952 + </li>
1953 +
1954 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1955 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1956 + <p class="attribute-description mb-0">Pharmacie</p>
1957 + </li>
1958 +
1959 + <li class="col-sm-6 col-md-12 col-lg-6 px-0 d-flex mb-2">
1960 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/checkmark-tan.png" alt="icon" height="15px" width="15px">
1961 + <p class="attribute-description mb-0">Parc</p>
1962 + </li>
1963 +
1964 + </ul>
1965 +
1966 +
1967 + </div>
1968 + </div>
1969 + </div>
1970 + </div>
1971 +
1972 + </div>
1973 +
1974 + <div class="offset-lg-1 col-lg-5 col-md-6 mt-4 mt-md-0">
1975 + <div class="shadow">
1976 + <img
1977 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/quartier/Rue_de_Duberger.JPG"
1978 + alt="Borough image"
1979 + width="100%"
1980 + height="200px"
1981 + class="object-fit-cover">
1982 + <div class="row p-4">
1983 + <div class="col-12">
1984 + <p class="small-header">À propos du quartier</p>
1985 + <h3>Les Saules</h3>
1986 + <p>Les Saules</p>
1987 + <p>Les Saules</p>
1988 + <a href="/louer-appartement-quebec/les-saules">
1989 +
1990 + Voir les appartements à Les Saules
1991 +
1992 + </a>
1993 + </div>
1994 + </div>
1995 + </div>
1996 + </div>
1997 +
1998 + </div>
1999 + <div class="row">
2000 + <div class="col-12">
2001 +
2002 +
2003 +
2004 +
2005 + <div class="row mt-5 ">
2006 + <h2 class="col-12 text-center mb-4 text-primary">Nos logements en vedette</h2>
2007 + <div class="col-12 mb-3">
2008 +
2009 +
2010 +
2011 +<div class="row">
2012 +
2013 + <a
2014 + href="/logement/160"
2015 + class="appartments card border-white col-sm-6 mb-4 col-md-4 "
2016 + data-type="3"
2017 + data-borough="6"
2018 + >
2019 +
2020 +
2021 +
2022 +
2023 +<script>
2024 + function displayNowAvailableBubble(buildingId) {
2025 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2026 + nowAvailableBubble.classList.remove("d-none");
2027 + }
2028 +</script>
2029 +
2030 +<div class="row">
2031 +
2032 +
2033 +
2034 + <img src alt="" onerror="displayNowAvailableBubble(160 + '-recommendation');"></img>
2035 +
2036 +
2037 +
2038 +
2039 + <div class="now-available-bubble d-none" id="now-available-bubble-160-recommendation">
2040 + <p class="text-white m-0">En vedette</p>
2041 + </div>
2042 +
2043 +
2044 + <div class="col-6 apartment-col">
2045 + <div class="row">
2046 + <div class="col-12 pr-0">
2047 +
2048 + <img
2049 + class="rounded-left apartment-image"
2050 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD1_54749d22-bfa3-11ea-9b14-0e226705be53.jpg"
2051 + alt="unit image"
2052 + width=100%
2053 + height=232px
2054 + />
2055 +
2056 + </div>
2057 + </div>
2058 + </div>
2059 +
2060 +
2061 + <div class="col-6 apartment-col">
2062 + <div class="row">
2063 + <div class="col-12 pl-0">
2064 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD2_5554869e-bfa3-11ea-9b14-0e226705be53.jpg"
2065 + alt="unit image" width="100%" height="116px">
2066 + </div>
2067 + </div>
2068 +
2069 + <div class="row">
2070 + <div class="col-12 pl-0">
2071 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PPD3_562eca5c-bfa3-11ea-9b14-0e226705be53.jpg"
2072 + alt="unit image" width=100% height=116px>
2073 + </div>
2074 + </div>
2075 +
2076 + </div>
2077 +
2078 +
2079 +
2080 +</div>
2081 +
2082 +
2083 +
2084 +
2085 +
2086 +<div class="row mt-4">
2087 + <div class="col-12">
2088 + <div class="card-body p-0 text-left">
2089 + <h5 class="apartment-borough">Appartements &middot; Neufchatel</h5>
2090 + <p class="apartment-address mb-1">1573, rue Pierre-Corneille</p>
2091 +
2092 +
2093 + <div class="row">
2094 + <div class="col-7">
2095 + <p class="apartment-infos mb-0">
2096 +
2097 + 4½ à partir de 1250$
2098 +
2099 + </p>
2100 + <p class="apartment-availability footnotes">
2101 + Libre immédiatement
2102 + </p>
2103 + </div>
2104 + <div class="col-5 text-right">
2105 +
2106 +
2107 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2108 +
2109 +
2110 +
2111 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2112 +
2113 +
2114 +
2115 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2116 +
2117 +
2118 +
2119 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_appliances_alt.png" alt="Lave-vaisselle" height=18px width=18px>
2120 +
2121 +
2122 +
2123 + </div>
2124 + </div>
2125 +
2126 +
2127 +
2128 + </div>
2129 + </div>
2130 +</div>
2131 +
2132 + </a>
2133 +
2134 + <a
2135 + href="/logement/312"
2136 + class="appartments card border-white col-sm-6 mb-4 col-md-4 "
2137 + data-type="3"
2138 + data-borough="10"
2139 + >
2140 +
2141 +
2142 +
2143 +
2144 +<script>
2145 + function displayNowAvailableBubble(buildingId) {
2146 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2147 + nowAvailableBubble.classList.remove("d-none");
2148 + }
2149 +</script>
2150 +
2151 +<div class="row">
2152 +
2153 +
2154 +
2155 + <img src alt="" onerror="displayNowAvailableBubble(312 + '-recommendation');"></img>
2156 +
2157 +
2158 +
2159 +
2160 + <div class="now-available-bubble d-none" id="now-available-bubble-312-recommendation">
2161 + <p class="text-white m-0">En vedette</p>
2162 + </div>
2163 +
2164 +
2165 + <div class="col-6 apartment-col">
2166 + <div class="row">
2167 + <div class="col-12 pr-0">
2168 +
2169 + <img
2170 + class="rounded-left apartment-image"
2171 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/CUISINE_2_a8e2db9c-5811-11f0-8a5b-0e9b4be91035.jpg"
2172 + alt="unit image"
2173 + width=100%
2174 + height=232px
2175 + />
2176 +
2177 + </div>
2178 + </div>
2179 + </div>
2180 +
2181 +
2182 + <div class="col-6 apartment-col">
2183 + <div class="row">
2184 + <div class="col-12 pl-0">
2185 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/CUISINE_a99b01fe-5811-11f0-8a5b-0e9b4be91035.jpg"
2186 + alt="unit image" width="100%" height="116px">
2187 + </div>
2188 + </div>
2189 +
2190 + <div class="row">
2191 + <div class="col-12 pl-0">
2192 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/SALON_aa37903c-5811-11f0-8a5b-0e9b4be91035.jpg"
2193 + alt="unit image" width=100% height=116px>
2194 + </div>
2195 + </div>
2196 +
2197 + </div>
2198 +
2199 +
2200 +
2201 +</div>
2202 +
2203 +
2204 +
2205 +
2206 +
2207 +<div class="row mt-4">
2208 + <div class="col-12">
2209 + <div class="card-body p-0 text-left">
2210 + <h5 class="apartment-borough">Appartements &middot; Lebourgneuf</h5>
2211 + <p class="apartment-address mb-1">5900 boul. St-Jacques</p>
2212 +
2213 +
2214 + <div class="row">
2215 + <div class="col-7">
2216 + <p class="apartment-infos mb-0">
2217 +
2218 + 4½ à partir de 1595$
2219 +
2220 + </p>
2221 + <p class="apartment-availability footnotes">
2222 + octobre 2026
2223 + </p>
2224 + </div>
2225 + <div class="col-5 text-right">
2226 +
2227 +
2228 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2229 +
2230 +
2231 +
2232 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_ac.png" alt="Climatiseur" height=18px width=18px>
2233 +
2234 +
2235 +
2236 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_parking_exterior_d3a99ad6-b182-11ea-80c6-1275881fc0b8.png" alt="Stationnement extérieur" height=18px width=18px>
2237 +
2238 +
2239 +
2240 + </div>
2241 + </div>
2242 +
2243 +
2244 +
2245 + </div>
2246 + </div>
2247 +</div>
2248 +
2249 + </a>
2250 +
2251 + <a
2252 + href="/logement/18"
2253 + class="appartments card border-white col-sm-6 mb-4 col-md-4 "
2254 + data-type="3"
2255 + data-borough="3"
2256 + >
2257 +
2258 +
2259 +
2260 +
2261 +<script>
2262 + function displayNowAvailableBubble(buildingId) {
2263 + const nowAvailableBubble = document.getElementById(`now-available-bubble-${buildingId}`);
2264 + nowAvailableBubble.classList.remove("d-none");
2265 + }
2266 +</script>
2267 +
2268 +<div class="row">
2269 +
2270 +
2271 +
2272 + <img src alt="" onerror="displayNowAvailableBubble(18 + '-recommendation');"></img>
2273 +
2274 +
2275 +
2276 +
2277 + <div class="now-available-bubble d-none" id="now-available-bubble-18-recommendation">
2278 + <p class="text-white m-0">En vedette</p>
2279 + </div>
2280 +
2281 +
2282 + <div class="col-6 apartment-col">
2283 + <div class="row">
2284 + <div class="col-12 pr-0">
2285 +
2286 + <img
2287 + class="rounded-left apartment-image"
2288 + src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_3_bf11e94e-3f15-11f1-9a87-12e0191876fd.jpg"
2289 + alt="unit image"
2290 + width=100%
2291 + height=232px
2292 + />
2293 +
2294 + </div>
2295 + </div>
2296 + </div>
2297 +
2298 +
2299 + <div class="col-6 apartment-col">
2300 + <div class="row">
2301 + <div class="col-12 pl-0">
2302 + <img class="rounded-top-right pl-1 apartment-image pb-1" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_2_bfb756f4-3f15-11f1-9a87-12e0191876fd.jpg"
2303 + alt="unit image" width="100%" height="116px">
2304 + </div>
2305 + </div>
2306 +
2307 + <div class="row">
2308 + <div class="col-12 pl-0">
2309 + <img class="rounded-bottom-right pl-1 apartment-image" src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/real_estate/PDP_5_mod_c088e282-3f15-11f1-9a87-12e0191876fd.jpg"
2310 + alt="unit image" width=100% height=116px>
2311 + </div>
2312 + </div>
2313 +
2314 + </div>
2315 +
2316 +
2317 +
2318 +</div>
2319 +
2320 +
2321 +
2322 +
2323 +
2324 +<div class="row mt-4">
2325 + <div class="col-12">
2326 + <div class="card-body p-0 text-left">
2327 + <h5 class="apartment-borough">Appartements &middot; Beauport</h5>
2328 + <p class="apartment-address mb-1">555, avenue du Fleuve</p>
2329 +
2330 +
2331 + <div class="row">
2332 + <div class="col-7">
2333 + <p class="apartment-infos mb-0">
2334 +
2335 + 1½ à partir de 799$
2336 +
2337 + </p>
2338 + <p class="apartment-availability footnotes">
2339 + Libre immédiatement
2340 + </p>
2341 + </div>
2342 + <div class="col-5 text-right">
2343 +
2344 +
2345 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_light.png" alt="Électricité" height=18px width=18px>
2346 +
2347 +
2348 +
2349 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_water.png" alt="Eau Chaude" height=18px width=18px>
2350 +
2351 +
2352 +
2353 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_heat.png" alt="Chauffage" height=18px width=18px>
2354 +
2355 +
2356 +
2357 + <img src="https://gilm-site-vitrine-production.s3.amazonaws.com/media/icons/commodity_maintenance.png" alt="Équipe de maintenance 24h" height=18px width=18px>
2358 +
2359 +
2360 +
2361 +
2362 +
2363 +
2364 +
2365 + <p class="footnotes d-inline"> +2</p>
2366 +
2367 + </div>
2368 + </div>
2369 +
2370 +
2371 +
2372 + </div>
2373 + </div>
2374 +</div>
2375 +
2376 + </a>
2377 +
2378 +</div>
2379 +
2380 + </div>
2381 +
2382 + </div>
2383 +
2384 +
2385 + </div>
2386 + </div>
2387 +</div>
2388 +<div class="bg-primary py-5 mt-5">
2389 + <div class="container">
2390 + <div class="row justify-content-center">
2391 + <div class="col-sm-8 col-md-5 col-lg-11 d-flex flex-column align-items-center">
2392 + <h1 class="text-white text-center small-title">Ce logement vous intéresse? Contactez-nous!</h1>
2393 + <a href="#building-address-1" class="btn btn-dark border-white d-none d-lg-block">Nous joindre</a>
2394 + <a href="/nous-joindre" class="btn btn-dark border-white d-block d-lg-none">Nous joindre</a>
2395 + </div>
2396 + </div>
2397 + </div>
2398 +</div>
2399 +<div id="modal-inquire" class="modal">
2400 +
2401 +
2402 +
2403 +
2404 +<div class="inquire-step-1 container p-0 mb-5 position-relative">
2405 + <div id="inquire-step-1" style="position: absolute; top: -134px;"></div>
2406 + <h2 class="mb-4" style="font-size: 1.6rem;">S'informer sur ce logement</h2>
2407 + <p>418-626-3070</p>
2408 + <p class="text-primary"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="204c4f434154494f4e604c414652414e43450d4d4154484945550e434f4d">[email&#160;protected]</a></p>
2409 + <p class="mb-4">Dites-nous quelles unités vous intéressent ainsi que votre date de déménagement prévue.</p>
2410 + <p class="text-gray-light">Intéressé par ces unités</p>
2411 +
2412 + <div class="d-inline-flex flex-wrap">
2413 +
2414 +
2415 + <button
2416 + class="inquire-room btn btn-normal mb-3"
2417 + data-unit_room="4½"
2418 + data-toggle="button"
2419 + >
2420 +
2421 + </button>
2422 +
2423 +
2424 + </div>
2425 +
2426 + <div class="dropdown mb-4">
2427 + <div class="dropdown-toggle inquire-units-button rounded p-3 text-left" type="button"
2428 + id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
2429 + <p class="inquire-units-label-title text-uppercase mb-0">
2430 + Unité(s) spécifique(s)
2431 + </p>
2432 + <p id="inquire-units-label-noselected" class="inquire-units-label-selection m-0">
2433 + Aucune choisie
2434 + </p>
2435 + <p id="inquire-units-label-selected" class="inquire-units-label-selection d-none m-0"></p>
2436 + </div>
2437 + <div class="dropdown-menu inquire-units-choices rounded border-gray-very-light" aria-labelledby="dropdownMenuButton">
2438 +
2439 +
2440 + <button class="inquire-units-choice dropdown-item" data-unit="14"
2441 + data-unit_room="4½">
2442 + 14
2443 + </button>
2444 +
2445 +
2446 + </div>
2447 + </div>
2448 +
2449 +
2450 + <p class="text-gray-light">Date de déménagement prévue</p>
2451 + <div id="inquire-datepicker" class="input-group date mt-1">
2452 + <input id="inquire-datepicker-input" class="form-control" onfocus="blur();" placeholder="Sélectionner une date">
2453 + <div class="input-group-addon">
2454 + <span class="glyphicon glyphicon-th"></span>
2455 + </div>
2456 + </div>
2457 +</div>
2458 +
2459 +<div class="inquire-step-2 container p-0 mb-5 d-none position-relative">
2460 + <div id="inquire-step-2" style="position: absolute; top: -134px;"></div>
2461 + <h2 class="my-4" style="font-size: 1.6rem;">Comment peut-on vous rejoindre?</h2>
2462 + <p>Inscrivez vos coordonnées afin que notre équipe puisse vous rejoindre et vous conseiller.</p>
2463 + <form id="inquire-form">
2464 + <div class="form-group">

Diff truncated — file too large.