PageSourceSearch

https://www.therivesandiego.com/floor-plans/

html therivesandiego.com collected 2026-10-06 13:03:03 UTC 419,269 bytes, 7,737 lines download raw bytes

1
2
3<!doctype html>
4<html lang="en">
5
6<head>
7
8		<meta charset="UTF-8">
9	<title>Floor Plans | The Rive San Diego</title>
10	<meta name="description" content="Here at The Rive San Diego, we offer one-, two-, three-, and four-bedroom apartment floor plans. Contact us today to schedule a tour of our SDSU apartments!">
11	<meta name="robots" content="noodp,noydir">
12	<meta http-equiv="X-UA-Compatible" content="IE=edge">
13	<meta name="viewport" content="width=device-width, initial-scale=1.0">
14	<meta name="mobile-web-app-capable" content="yes">
15
16		<link rel="canonical" href="https://www.therivesandiego.com/floor-plans/">
17
18		<meta property="og:type" content="website">
19	<meta property="og:url" content="https://www.therivesandiego.com/floor-plans/">
20	<meta property="og:title" content="Floor Plans | The Rive San Diego">
21	<meta property="og:description" content="Here at The Rive San Diego, we offer one-, two-, three-, and four-bedroom apartment floor plans. Contact us today to schedule a tour of our SDSU apartments!">
22	<meta property="og:image" content="https://www.therivesandiego.com/wp-content/uploads/2026/07/TheRive_SanDiego_meta.png">
23
24		<meta property="twitter:card" content="summary_large_image">
25	<meta property="twitter:url" content="https://www.therivesandiego.com/floor-plans/">
26	<meta property="twitter:title" content="Floor Plans | The Rive San Diego">
27	<meta property="twitter:description" content="Here at The Rive San Diego, we offer one-, two-, three-, and four-bedroom apartment floor plans. Contact us today to schedule a tour of our SDSU apartments!">
28	<meta property="twitter:image" content="https://www.therivesandiego.com/wp-content/uploads/2026/07/TheRive_SanDiego_meta.png">
29
30	<style>
31		@import url('https://fonts.googleapis.com/css2?family=Zalando+Sans:ital,wght@0,200..900;1,200..900&display=swap');
32@font-face {
33    font-family: 'ABC-Ginto';
34    src: url('https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/fonts/ABC-Ginto/ABCGintoNord-Bold.woff2') format('woff2');
35    font-weight: 700;
36    font-display: swap;
37}
38@font-face {
39    font-family: 'ABC-Ginto';
40    src: url('https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/fonts/ABC-Ginto/ABCGintoNord-Medium.woff2') format('woff2');
41    font-weight: 500;
42    font-display: swap;
43}
44@font-face {
45    font-family: 'ABC-Ginto';
46    src: url('https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/fonts/ABC-Ginto/ABCGintoNord-Regular.woff2') format('woff2');
47    font-weight: 400;
48    font-display: swap;
49}
50
51*:where(:not(iframe, canvas, img, svg, video):not(svg *)) {
52    all:unset;
53    display:revert;
54}
55
56*,
57*::before,
58*::after {
59    box-sizing:border-box;
60}
61
62html {
63    font-size: 16px;
64    --background-color: white;
65    --font-heading: 'ABC-Ginto', sans-serif;
66    --font-body: 'Zalando Sans', sans-serif;
67    --font-size-base: 1rem;
68    --nav-body: 74px;
69    --nav-height: var(--nav-body);
70    --x-gap: 24px;
71    --x-gap-large: var(--x-gap);
72    --indent: 10px;
73    --y-gap: 24px;
74    --y-gap-large: var(--y-gap);
75    --padding-large: 72px;
76    --grid-gap: 20px;
77    --box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
78    --easing: cubic-bezier(.25, 1, .30, 1);
79    --z-index-base: 1;
80    --z-index-overlay: 2;
81    --z-index-menu: 4;
82    --z-index-modal: 5;
83    --z-index-dropdown: 6;
84    --arrow-mask: url("data:image/svg+xml,%3Csvg width='16' height='16' viewBox='0 0 16 16' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cg id='arrow'%3E %3Cg id='Group'%3E %3Cpath id='Vector' fill-rule='evenodd' clip-rule='evenodd' d='M11.3827 8.33377H3.66732C3.57266 8.33377 3.49332 8.30199 3.42932 8.23843C3.36532 8.17488 3.33354 8.09554 3.33399 8.00043C3.33443 7.90532 3.36621 7.82599 3.42932 7.76243C3.49243 7.69888 3.57177 7.6671 3.66732 7.6671H11.3827L8.89266 5.17777C8.82777 5.11243 8.79399 5.03577 8.79132 4.94777C8.78866 4.85977 8.82243 4.7791 8.89266 4.70577C8.96643 4.63199 9.04577 4.59465 9.13066 4.59377C9.21554 4.59288 9.29488 4.62888 9.36866 4.70177L12.2907 7.62377C12.3484 7.68154 12.3891 7.74088 12.4127 7.80177C12.4362 7.86266 12.448 7.92888 12.448 8.00043C12.448 8.07199 12.4362 8.13821 12.4127 8.1991C12.3891 8.25999 12.3484 8.31954 12.2907 8.37777L9.36866 11.2991C9.30377 11.364 9.22666 11.398 9.13732 11.4011C9.04799 11.4042 8.96643 11.3689 8.89266 11.2951C8.82154 11.2218 8.78554 11.1431 8.78466 11.0591C8.78377 10.9751 8.81977 10.8964 8.89266 10.8231L11.3827 8.33377Z' fill='black'/%3E %3C/g%3E %3C/g%3E %3C/svg%3E ");
85    --arrow-mask-2: url("data:image/svg+xml,%3Csvg width='19' height='14' viewBox='0 0 19 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E %3Cg id='arrow'%3E %3Cg id='Group'%3E %3Cpath id='Vector' fill-rule='evenodd' clip-rule='evenodd' d='M16.0973 7.48003H0.666676C0.477343 7.48003 0.318676 7.41648 0.190676 7.28937C0.062676 7.16226 -0.000879694 7.00359 9.19538e-06 6.81337C0.000898084 6.62314 0.0644538 6.46448 0.190676 6.33737C0.316898 6.21025 0.475565 6.1467 0.666676 6.1467H16.0973L11.1173 1.16803C10.9876 1.03737 10.92 0.884032 10.9147 0.708032C10.9093 0.532032 10.9769 0.370699 11.1173 0.224032C11.2649 0.0764769 11.4236 0.00180991 11.5933 3.21284e-05C11.7631 -0.00174565 11.9218 0.0702546 12.0693 0.216032L17.9133 6.06003C18.0289 6.17559 18.1102 6.29425 18.1573 6.41603C18.2045 6.53781 18.228 6.67026 18.228 6.81337C18.228 6.95648 18.2045 7.08892 18.1573 7.2107C18.1102 7.33248 18.0289 7.45159 17.9133 7.56803L12.0693 13.4107C11.9396 13.5405 11.7853 13.6085 11.6067 13.6147C11.428 13.6209 11.2649 13.5503 11.1173 13.4027C10.9751 13.256 10.9031 13.0987 10.9013 12.9307C10.8996 12.7627 10.9716 12.6054 11.1173 12.4587L16.0973 7.48003Z' fill='black'/%3E %3C/g%3E %3C/g%3E %3C/svg%3E ");
86    --color-primary: #2a2a2a;
87    --color-secondary: #b87552;
88    --color-tertiary: #166261;
89    --color-quaternary: #05c596;
90    --color-quinary: #f5efe0;
91    --color-senary: #fed472;
92}
93
94html:has(.navbar__mobile-apply) {
95  --nav-height: calc( var(--nav-body) + 73px );
96}
97
98@media(min-width: 767px) {
99   html {
100    --x-gap: 3rem;
101    --y-gap: 9rem;
102    --indent: 1.875rem;
103    --nav-height: 6.88rem;
104   }
105  html:has(.navbar__mobile-apply) {
106    --nav-height: 6.3125rem;
107  }
108}
109
110body {
111    position: relative;
112    color: #000;
113    background-color: #fff;
114    font-family: var(--font-body);
115    font-weight: 300;
116    line-height: 1.375;
117    margin: 0;
118    overflow-x: hidden;
119}
120@media(min-width: 512px) {
121    html {
122        font-size: calc(12.333px + 3.667 * ((100vw - 512px) / 927));
123    }
124    body {
125        line-height: 1.44444444444;
126    }
127}
128@media(min-width: 1440px) {
129    html {
130        font-size: 16px;
131    }
132}
133
134@media(max-width: 991px) {
135  .no-scroll {
136    padding-right: 0;
137    width: 100%;
138    overflow: hidden;
139  }
140}
141
142h1,
143h2,
144h3,
145h4,
146h5,
147h6,
148.h1,
149.h2,
150.h3,
151.h4,
152.h5,
153.h6 {
154    font-family: var(--font-heading);
155    font-weight: 400;
156    line-height: 1;
157    margin: 0 0 1.3rem;
158    text-wrap: balance;
159}
160
161h1, .h1 { 
162    font-size: 57px;
163}
164h2, .h2 { 
165    font-size: 40px;
166}
167h3, .h3 { 
168    font-size: 37px; 
169}
170h4, .h4 { 
171    font-size: 32px; 
172}
173h5, .h5 { 
174    font-size: 24px; 
175}
176h6, .h6 { 
177    font-size: 20px; 
178}
179
180@media(min-width: 992px) {
181
182    h1, .h1 { 
183        font-size: 5.1875rem;
184    }
185    h2, .h2 { 
186        font-size: 2.5rem;
187    }
188    h3, .h3 { 
189        font-size: 2.0625rem; 
190    }
191    h4, .h4 { 
192        font-size: 1.85rem; 
193    }
194    h5, .h5 { 
195        font-size: 1.5rem; 
196    }
197    h6, .h6 { 
198        font-size: 1.25rem; 
199    }
200
201    h1,
202    h2,
203    h3,
204    h4,
205    h5,
206    h6,
207    .h1,
208    .h2,
209    .h3,
210    .h4,
211    .h5,
212    .h6 {
213        margin: 0 0 .4rem;
214    }
215    h1, .h1 { 
216        margin: 0 0 .6rem;
217    }
218}
219
220.stroke-text {
221    -webkit-text-stroke-width: 1.5px;
222    -webkit-text-stroke-color: var(--color-tertiary);
223    color: white;
224    letter-spacing:4px;
225    line-height: 0.9;
226}
227
228small, .text_small {
229    font-size: 12px;
230}
231
232a {
233    color: inherit;
234    text-decoration: none;
235    text-underline-offset: .2em;
236    cursor: pointer;
237}
238a:hover,
239a:focus,
240a.active {
241    text-decoration: underline;
242}
243a:not([class]) {
244    text-decoration: underline;
245}
246
247:focus { 
248    outline: 5px auto Highlight;
249    outline: 5px auto -webkit-focus-ring-color;
250    outline: 5px auto var(--color-senary);
251}
252:focus:not(:focus-visible) {
253    outline: none;
254}
255
256button { 
257    font-size: inherit; 
258    font-family: inherit; 
259    background: transparent; 
260    border: 0; 
261    -webkit-appearance: none; 
262    appearance: none; 
263    cursor: pointer;
264}
265
266ol,
267ul,
268p, 
269address { 
270    margin-top: 0;
271    font-size: 16px; 
272}
273p {
274    margin-bottom: 1.5rem;
275}
276
277.large-text p {
278    font-size: 1.5rem;
279    font-style: normal;
280    font-weight: 300;
281    line-height: 1.2;
282}
283u {text-decoration:underline;}
284@media(min-width: 992px) {
285  .large-text p {
286    font-size: 1.75rem;
287  }
288}
289
290@media(min-width: 992px) {
291    ol,
292    ul,
293    p, 
294    address { 
295        font-size: 18px; 
296    }
297}
298
299strong {
300    font-weight: 700;
301}
302
303ol,
304ul{
305    list-style: none;
306}
307
308ul:not([class]) {
309    color: inherit;
310    padding-left: 0;
311}
312ul:not([class]) li {
313    position: relative;
314    font-size: 18px;
315    padding-left: 1.5em;
316    margin-bottom: 9px;
317    line-height: 1.5;
318}
319ul:not([class]) li:before {
320  content: '→';
321  display: block;
322  width: 12px;
323  height: 9px;
324  position: absolute;
325  top: 4px;
326  left: 0;
327  margin: auto;
328  -webkit-transform: translateY(-50%);
329  -moz-transform: translateY(-50%);
330  transform: translateY(-50%);
331}
332
333/* Responsive iframe */
334.iframe-fluid {width:100%;height:auto;padding-top:56.25%;position:relative;}
335.iframe-fluid > iframe {position:absolute;top:0;left:0;width:100%;height:100%;}
336
337.container { 
338    position: relative;
339    max-width: 1440px;
340    margin-left: auto;
341    margin-right: auto;
342}
343
344.section {
345    margin-top: var(--y-gap);
346    margin-bottom: var(--y-gap);
347    padding-left: var(--x-gap);
348    padding-right: var(--x-gap);
349}
350
351.img-fluid { 
352    max-width: 100%; 
353    height: auto; 
354    line-height: 0;
355    vertical-align: bottom;
356}
357
358.sr-only { 
359    position: absolute; 
360    width: 1px; 
361    height: 1px; 
362    padding: 0; 
363    margin: -1px; 
364    overflow: hidden; 
365    clip: rect(0,0,0,0); 
366    white-space: nowrap; 
367    border: 0; 
368}
369
370.text-center { 
371    text-align: center; 
372}
373
374.btn {
375    display: inline-flex;
376    justify-content: center;
377    align-items: center;
378    color: white;
379    background-color: black;
380    border: 1px solid black;
381    text-decoration: none;
382    cursor: pointer;
383    -webkit-user-select: none;
384    -moz-user-select: none;
385    user-select: none;
386    font-size: 12px;
387    font-weight: 400;
388    text-transform: uppercase;
389    letter-spacing: 0.0825rem;
390    transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out;
391    min-width: 120px;
392    min-height: 2rem;
393    padding: 0.5rem 1rem;
394    line-height: 1;
395}
396@media(min-width: 992px) {
397  .btn {
398    min-width: 7rem;
399  }
400}
401
402.btn:hover,
403.btn:focus,
404.btn.active {
405  color: white;
406  background-color: var(--color-quaternary);
407  border-color: var(--color-quaternary);
408  text-decoration: none;
409}
410
411.btn-small {
412  min-width: 0;
413  min-height: 0;
414  padding: 4px 8px 5px;
415}
416
417.btn-primary {
418  color: var(--color-primary);
419  background-color: transparent;
420  border: 1px solid var(--color-primary);
421}
422
423.btn-primary-alt {
424  color: var(--color-quinary);
425  background-color: var(--color-primary);
426}
427
428.btn-secondary {
429  color:#fff;
430  background-color: var(--color-primary);
431  border: 1px solid var(--color-primary);
432}
433
434.btn-secondary-alt {
435  color: black;
436  background-color: transparent;
437  border: 1px solid var(--color-secondary);
438}
439
440.btn-quinary-alt {
441  color: var(--color-quinary);
442  background-color: transparent;
443  border-color: var(--color-quinary);
444}
445
446.arrow-link {
447  display: inline-block;
448  text-transform: initial;
449  line-height: 1;
450  text-wrap: pretty;
451  transition: color .15s ease;
452}
453.arrow-link::after {
454    display: inline-block;
455    content: '';
456    mask-image: var(--arrow-mask);
457    mask-repeat: no-repeat;
458    width: 1.33em;
459    height: 1.33em;
460    mask-position: center;
461    mask-size: contain;
462    background-color: currentColor;
463    vertical-align: text-bottom;
464}
465a.arrow-link:hover,
466a.arrow-link:focus,
467a .arrow-link:hover,
468a .arrow-link:focus {
469  color: var(--color-quaternary);
470  text-decoration: none;
471}
472
473.impact {
474    display: block;
475    font-family: 'Zalando Sans', sans-serif;
476    font-size: 12px;
477    font-weight: 400;
478    line-height: 1;
479    color: inherit;
480    letter-spacing: 1.3px;
481    text-transform: uppercase;
482}
483.impact--link {
484    position: relative;
485    padding-right: 0.9em;
486}
487.impact--link::after {
488    display: inline-block;
489    content: '';
490    -webkit-mask-image: var(--arrow-mask);
491    mask-image: var(--arrow-mask);
492    -webkit-mask-repeat: no-repeat;
493    mask-repeat: no-repeat;
494    width: 1rem;
495    height: 1rem;
496    mask-position: center;
497    mask-size: contain;
498    background-color: currentColor;
499    margin-left: 0.375rem;
500    vertical-align: text-bottom;
501}
502
503.impact--link-alt {
504  --impact-link-color: var(--color-primary);
505}
506
507a.impact {
508  transition: color .3s;
509}
510a.impact--link:hover,
511a.impact--link:focus,
512a.impact--link.active {
513  text-decoration: none;
514  cursor: pointer;
515  color: var(--impact-link-color, var(--color-quaternary));
516}
517
518.disclaimer {
519  font-size: 15px;
520  font-weight: 300;
521  font-style: italic;
522  line-height: 1.4;
523}
524
525.theme-scrollbar-sm::-webkit-scrollbar {
526  width: 4px;
527  height: 4px;
528}
529.theme-scrollbar-sm::-webkit-scrollbar-thumb {
530  background-color: black;
531}
532
533.swiper { display: block; margin-left: auto; margin-right: auto; position: relative; overflow: hidden; list-style: none; padding: 0; z-index: 1; }
534.swiper-wrapper { position: relative; width: 100%; height: 100%; display: flex; box-sizing: content-box; z-index: 1; }
535.swiper-slide { display: block; flex-shrink: 0; width: 100%; height: 100%; position: relative; }
536.swiper-pagination { position: absolute; text-align: center; transition: 0.3s opacity; transform: translate3d(0, 0, 0); z-index: 10; }
537.swiper-pagination-bullet { width: 8px; height: 8px; display: inline-block; border-radius: 50%; background: #000; opacity: 0.2 }
538button.swiper-pagination-bullet { border: none; margin: 0; padding: 0; box-shadow: none; -webkit-appearance: none; appearance: none; }
539.swiper-horizontal>.swiper-pagination-bullets,
540.swiper-pagination-bullets.swiper-pagination-horizontal,
541.swiper-pagination-custom, .swiper-pagination-fraction { bottom: 8px; top: auto; left: 0; width: 100%; }
542.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,
543.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet { margin: 0 4px; }
544.swiper-pagination-bullet-active { opacity: 1; background: var(--color-primary); }
545.swiper-pagination-progressbar { background: #9E9E9E; position: absolute; }
546.swiper-pagination-progressbar .swiper-pagination-progressbar-fill { background: var(--color-primary); position: absolute; left: 0; top: 0; width: 100%; height: 100%; transform: scale(0); transform-origin: left top; }
547.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { transform-origin: right top; }
548
549#accessibilityWidget { 
550    display: flex;
551    position: relative;
552}
553#accessibilityWidget img { 
554    position: relative;
555    border-radius: 50%;
556    background-color: #2a68e6;
557    object-fit: contain;
558    transition: background-color .3s, opacity .3s;
559}
560#accessibilityWidget.loading img {
561    opacity: .15;
562}
563#accessibilityWidget svg {
564    position: absolute;
565    top: 0;
566    left: 0;
567    width: 100%;
568    height: inherit;
569    opacity: 0;
570    transition: opacity .3s;
571}
572#accessibilityWidget.loading svg {
573    opacity: 1;
574}
575
576.new-tag-wrap {
577    display: flex;
578    align-items: center;
579    gap: 2.125rem;
580    margin-bottom: 1.25rem;
581}
582.new-tag-wrap h2 {
583    margin-bottom: 0!important;
584}
585.new-tag {
586    display: inline-block;
587    border-left: 4px solid black;
588    background: var(--color-secondary);
589    padding: 8px 8px 8px 12px;
590    color: black;
591    font-size: 14px;
592    font-weight: 500;
593    line-height: 1;
594    letter-spacing: -0.42px;
595    position: relative;
596    top: -0.6em;
597}	</style>
598  
599				
599<script type="text/javascript" src="https://app.termly.io/resource-blocker/ff3ea86e-4f21-411e-a84a-3a5e4d7c2447?autoBlock=on"></script>
599
600	  
601		
602		<meta name='robots' content='max-image-preview:large' />
603<link rel='dns-prefetch' href='//cdnjs.cloudflare.com' />
604<link rel='dns-prefetch' href='//cdn.jsdelivr.net' />
605<style id="wp-img-auto-sizes-contain-inline-css">
606img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
607/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
608</style>
609<style id="wp-block-styles-placeholder-inline-css">
610:root { --wp-internal-comment: "Placeholder for wp_hoist_late_printed_styles() to replace with the block styles printed at wp_footer." }
611/*# sourceURL=wp-block-styles-placeholder-inline-css */
612</style>
613<style id="wp-global-styles-placeholder-inline-css">
614:root { --wp-internal-comment: "Placeholder for wp_hoist_late_printed_styles() to replace with the global-styles printed at wp_footer." }
615/*# sourceURL=wp-global-styles-placeholder-inline-css */
616</style>
617<script id="vue-js" src="https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/js/vue.min.js?ver=2.0.0"></script>
617
618<link rel="preload" href="https://www.therivesandiego.com/wp-content/uploads/2026/07/the-rive-san-diego-floorplan-hero.webp" as="image"><link rel="icon" href="https://www.therivesandiego.com/wp-content/uploads/2026/08/cropped-favicon-32x32.png" sizes="32x32" />
619<link rel="icon" href="https://www.therivesandiego.com/wp-content/uploads/2026/08/cropped-favicon-192x192.png" sizes="192x192" />
620<link rel="apple-touch-icon" href="https://www.therivesandiego.com/wp-content/uploads/2026/08/cropped-favicon-180x180.png" />
621<meta name="msapplication-TileImage" content="https://www.therivesandiego.com/wp-content/uploads/2026/08/cropped-favicon-270x270.png" />
622<style id="wp-custom-css">
623.tape-banner .tape-line {font-family:var(--font-heading);}
624
625.hero__specials .hero__special:nth-child(1):not(:hover) {
626    background-color: var(--color-quaternary);
627    color: var(--color-quinary);
628}
629.hero__specials .hero__special:nth-child(1):not(:hover) .hero__special__title::after {background-color:var(--color-quinary);}
630.hero__specials .hero__special:nth-child(1):not(:hover) .hero__special__title {color:var(--color-quinary);}
631
632.hero__specials .hero__special:nth-child(2):not(:hover) {
633    background-color: var(--color-senary);
634    color: var(--color-primary);
635}
636.hero__specials .hero__special:nth-child(2):not(:hover) .hero__special__title {color:var(--color-primary);}
637
638.hero__specials .hero__special:nth-child(3):not(:hover) {
639    background-color: var(--color-secondary);
640    color: var(--color-quinary);
641}
642
643.fp-app__heading p.fp-app__heading__disclaimer {
644	max-width: 100%;
645	font-style:italic;
646}
647
648.faqs-section-1__topic {
649	scroll-margin-top: 40vh;
650}
651</style>
652<style>
653.specials {
654  --specials-height: 83px;
655  position: relative;
656  color: #000;
657  background-color: var(--color-senary);
658  font-size: 14px;
659  text-align: left;
660  padding: 0 var(--x-gap);
661  transition: all 0.3s ease-in-out;
662  overflow: hidden;
663}
664.specials__container {
665  display: flex;
666  align-items: center;
667  justify-content: space-between;
668  height: var(--specials-height);
669  margin-left:auto;
670  margin-right:auto;
671}
672.specials__messages {
673  display: flex;
674  align-items: center;
675  justify-content: center;
676}
677.specials__message {
678  display: none;width:80%;margin-right:auto;
679  transition: opacity 0.3s ease-in-out, width 0.3s ease-in-out;
680}
681.specials__message strong {
682  display:block;
683}
684.specials__message .specials__message-text {
685  display: inline-block;
686  transition: transform 0.3s ease-in-out;
687}
688.specials__message.active {
689  display: block;
690}
691.specials__message.enter-active {
692  opacity: 0;
693}
694.specials__message.enter-active .specials__message-text {
695  transform: translateX(2rem);
696}
697.specials__message.leave-active {
698  position: absolute;
699  top: 50%;
700  transform: translateY(-50%);
701  opacity: 0;
702}
703.specials__message.leave-active .specials__message-text {
704  transform: translateX(-2rem);
705}
706.specials__message.prev-enter-active {
707  opacity: 0;
708}
709.specials__message.prev-enter-active .specials__message-text {
710  transform: translateX(-2rem);
711}
712.specials__message.prev-leave-active {
713  position: absolute;
714  top: 50%;
715  transform: translateY(-50%);
716  opacity: 0;
717}
718.specials__message.prev-leave-active .specials__message-text {
719  transform: translateX(2rem);
720}
721.specials__prev,
722.specials__next { 
723  width: 32px; 
724  height: 32px;
725  border: none; 
726  outline: none; 
727  color:#000; 
728  cursor: pointer; 
729  -webkit-appearance: none;
730  appearance: none; 
731  background-color: transparent; 
732}
733.specials__prev svg,
734.specials__next svg { 
735  fill: currentColor; 
736}
737.specials__prev {
738  margin-right: 10px; 
739}
740.specials__next { 
741  margin-left: 10px; 
742}
743.specials__close {
744  margin-top:-15px;
745}
746@media(min-width:768px){
747  .specials__message {
748    width:100%;
749    margin:auto;
750  }
751  .specials__close {
752    margin-top:0;
753  }
754}
755@media(min-width: 992px) {
756  .specials {
757    --specials-height: 40px;
758  }
759  .specials strong {
760    display:inline;
761  }
762}
763</style>
764	<style>
765		.navbar {
766			position: sticky;
767			top: 0;
768			left: 0;
769			width: 100%;
770			z-index: 99999;
771			height: var(--nav-height);background-color:var(--color-quinary);
772		}
773		.navbar__inner {
774			display: grid;
775			grid-template-columns: 1fr auto auto;
776			justify-content: end;
777			align-items: center;
778			grid-template-areas: "logo info toggler";
779			padding: 16px 20px;
780			background-color:var(--color-quinary);
781		}
782		.navbar__logo {
783			grid-area: logo;
784			text-decoration: none !important;
785		}
786		.navbar__logo img {
787			max-height: 42px;
788			width: auto;
789			object-fit: contain;
790		}
791		.navbar__logo__title {
792			display: inline-block;
793			font-size: 1.2877rem;
794			font-weight: 700;
795			margin-left: 7.94px;
796			line-height: 1;
797			max-height: 38px;
798			vertical-align: middle;
799			flex-basis: 73.853px;
800		}
801		/* Toggler */
802		.navbar__toggler {
803			grid-area: toggler;
804			justify-self: end;
805			display: flex;
806			flex-direction: column;
807			justify-content: space-between;
808			align-items: flex-end;
809			font-size: 18px;
810			color: currentColor;
811			box-sizing: initial;
812			border: 0;
813			width: 36px;
814			height: 36px;
815			cursor: pointer;
816			z-index: 9999999;
817		}
818		.navbar__toggler svg {
819			width: 100%;
820			height: 100%;
821			fill: currentColor;
822		}
823		.navbar__toggler .navbar-toggle-svg__line {
824			display: inline-block;
825			transition: transform 0.4s ease, opacity 0.4s ease, background-color 0.4s ease;
826		}
827		.navbar-toggle-svg__line-1 {
828			transform-origin: 7px 10px;
829		}
830		.navbar-toggle-svg__line-3 {
831			transform-origin: 8px 14px;
832		}
833		/* Toggler - Open */
834		.navbar--open .navbar__toggler,
835		.navbar--opening .navbar__toggler {
836			color: var(--color-secondary);
837		}
838		.navbar--open .navbar__toggler .navbar-toggle-svg__line-1 {
839			transform: rotate(45deg);
840		}
841		.navbar--open .navbar__toggler .navbar-toggle-svg__line-2 {
842			opacity: 0;
843		}
844		.navbar--open .navbar__toggler .navbar-toggle-svg__line-3 {
845			transform: rotate(-45deg);
846		}
847
848		.navbar__quick-links {
849			grid-area: quicklinks;
850			justify-self: center;
851		}
852		.navbar__quick-links .menu {
853			display: none;
854		}
855		.navbar__info {
856			grid-area: info;
857			margin-left: auto;
858			margin-right: 24px;
859		}
860		.navbar__dropdown {
861			display: none;
862		}
863		.navbar__residents {
864			display: none;
865		}
866		#userway-trigger {
867			display: flex;
868		}
869		.navbar__collapse {
870			position: fixed;
871			top: 0;
872			left: 0;
873			color: white;
874			background: #fff;
875			-webkit-backdrop-filter: blur(7px);
876			backdrop-filter: blur(7px);
877			padding: 4.5rem var(--x-gap);
878			width: 340px;
879			height: 100vh;
880			/*max-height: 100vh;*/
881			/*max-height: 100svh;*/ /* this seems to cause issues on newer iphones */
882			overflow-y: scroll;
883			opacity: 0;
884			z-index: 10000000;
885			transform: translate3d(-15%, 0, 0);
886			visibility: hidden;box-shadow: 0px 19px 41px 0px #0000001A;
887			transition: transform 0.4s ease, opacity 0.4s ease;
888		}
889		.navbar__collapse .navbar__toggler {margin-bottom:20px;margin-left:auto;}
890		/*.navbar__collapse::before {
891			content: '';
892			position: absolute;
893			top: 0;
894			right: 0;
895			width: 100%;
896			height: 100%;
897      background-repeat: no-repeat;
898      background-size: contain;
899      background-position: bottom left;
900			background-image: url('https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/navbar-pattern-1.png');
901		}*/
902		.navbar__collapse__menu .menu {
903			font-size: 19px;
904			font-weight: 400;
905			display: grid;
906			gap: 30px;text-transform:uppercase;
907		}
908		.navbar__collapse__contact {
909			margin-top: 3rem;
910			padding-top: 30px;
911			border-top: 1px solid var(--color-primary);
912		}
913		.navbar__collapse__contact {
914			margin-right: -0.4rem;
915		}
916		.navbar__collapse__label {
917			font-size: 17px;
918			font-weight: 700;
919			color: var(--color-secondary);
920		}
921		.navbar__collapse__contact__list {display:grid;gap:30px;
922			
923		}
924    .navbar__collapse__contact__item:last-child {
925      
926    }
927		.navbar__collapse__contact__link {
928			display: inline-flex;color:var(--color-primary);font-weight:400;
929			align-items: center;
930			font-size: 19px;letter-spacing:1px;text-transform:uppercase;
931			line-height: 1;
932			width: 100%;
933			height: 100%;
934			transition: background-color 0.3s ease, border 0.3s ease, color 0.3s ease;
935		}
936		.navbar__collapse__contact__link img {margin-right:7px;}
937		.navbar__collapse__contact__link:hover,
938		.navbar__collapse__contact__link:focus {
939			/* background-color: var(--color-secondary);
940			border: 1px solid var(--color-secondary);
941			color: black; */
942			text-decoration: underline;
943		}
944		.navbar__collapse__resident {
945			display: flex;
946			justify-content: space-between;
947		}
948		.navbar__collapse__resident__link {
949			display: block;
950			font-size: 17px;
951			font-weight: 700;
952		}
953		.navbar__collapse__apply {margin-top: 30px;}
954		.navbar__collapse__apply__link {display:flex;align-items:center;justify-content:center;height:48px;font-size: 19px;letter-spacing:1px;text-transform:uppercase;width:100%;background-color:var(--color-primary);}
955		/* Navbar - Opening */
956		.navbar--open .navbar__collapse {
957			transform: translate3d(0, 0, 0);
958			opacity: 1;
959			visibility: visible;
960		}
961		.navbar--opening .navbar__collapse {
962			transform: translate3d(0, 0, 0);
963			opacity: 1;
964			visibility: visible;
965		}
966		/* Navbar - Closing */
967		.navbar--collapsing .navbar__collapse {
968			transform: translate3d(-15%, 0, 0);
969			opacity: 0;
970			visibility: visible;
971		}
972
973		.menu__link {
974      padding-left: 15px;
975      letter-spacing: 1.32px;
976    }
977		.navbar .menu__link:hover,
978		.navbar .menu__link:focus {
979      text-decoration: underline;
980		}
981
982		.navbar .menu__link::before {
983			content: '';
984			position: absolute;
985			top: 50%;
986			left: 0;
987      transform:translateY(-50%);
988			width: 6px;
989      height: 6px;
990      border: 1px solid var(--color-primary);
991      border-radius:12px;
992			transition: all 0.3s;
993		}
994		.navbar .menu__link:hover::before,
995		.navbar .menu__link:focus::before{
996      border-color: var(--color-quaternary);
997			background-color: var(--color-quaternary);
998		}
999
1000		.navbar .menu__item--current .menu__link::before {
1001      border-color: var(--color-primary);
1002			background-color: var(--color-primary);
1003		}
1004    
1005		.navbar__collapse .navbar__collapse__menu,
1006		.navbar__collapse__contact,
1007		.navbar__collapse__resident {
1008			opacity: 0;
1009			transform: translate3d(15px, 0, 0);
1010			transition: transform 0.3s ease, opacity 0.3s ease;
1011		}
1012
1013		.navbar--opening .navbar__collapse .navbar__collapse__menu,
1014		.navbar--opening .navbar__collapse__contact,
1015		.navbar--opening .navbar__collapse__resident {
1016			opacity: 1;
1017			transform: translate3d(0, 0, 0);
1018		}
1019		.navbar--open .navbar__collapse .navbar__collapse__menu,
1020		.navbar--open .navbar__collapse__contact,
1021		.navbar--open .navbar__collapse__resident {
1022			opacity: 1;
1023			transform: translate3d(0, 0, 0);
1024		}
1025		.navbar--collapsing .navbar__collapse .navbar__collapse__menu,
1026		.navbar--collapsing .navbar__collapse__contact,
1027		.navbar--collapsing .navbar__collapse__resident {
1028			opacity: 0;
1029			transform: translate3d(-15px, 0, 0);
1030		}
1031    .navbar__mobile-apply {
1032      text-align: center;
1033      grid-row: 2;
1034      grid-column: 1 / -1;
1035      font-size: 12px;
1036      margin-top: 1rem;
1037      min-height: initial;
1038    }
1039
1040    @media(min-width: 767px) {
1041		  .navbar__inner {
1042        height:100%;
1043      }
1044			.navbar__info {
1045				display: grid;
1046				grid-auto-flow: column;
1047				align-items: center;
1048				gap: 1.5rem;
1049				margin: 0 2.5rem 0 0;
1050			}
1051      .navbar__dropdown {
1052        display: block;
1053      }
1054      .navbar__mobile-apply {
1055        display: none;
1056      }
1057    }
1058
1059		@media(min-width: 1100px) {
1060			.navbar {
1061				/*position: fixed;
1062				padding: 0 var(--x-gap);*/
1063			}
1064			.navbar:has(+ .hero) .navbar__logo__title {
1065				display: none;
1066			}
1067			.navbar__inner {
1068				grid-template-columns: 1fr auto auto;
1069				grid-auto-flow: column;
1070				grid-template-areas: "logo quicklinks info";
1071				padding: 1rem var(--x-gap);
1072				max-width: 100%;
1073				-webkit-backdrop-filter: blur(10px);
1074				backdrop-filter: blur(10px);
1075			}
1076			.navbar__logo img {
1077				max-height: 3.375rem;
1078			}
1079			.navbar__logo__title {
1080				font-size: 1.25rem;
1081				margin-left: 15px;
1082				max-height: 38px;
1083				max-width: 130px;
1084				flex-basis: 130px;
1085			}
1086			.navbar__toggler {
1087				display: none;
1088			}
1089			.navbar__quick-links .menu {
1090				display: flex;
1091				gap: 2.85rem;
1092				font-size: 12px;
1093        font-size: clamp(12px, 1.3vw, 12px);
1094				text-transform:uppercase;
1095				letter-spacing: 1px;
1096				margin: 0 2.9rem 0 1.5rem;
1097			}
1098			.navbar__quick-links .menu__item--current .menu__link::after {
1099				width: 100%;
1100			}
1101			.navbar__info {
1102				margin: 0;
1103			}
1104			.navbar__residents {
1105				display: flex;
1106				font-size: 12px;
1107        font-size: clamp(12px, 1.3vw, 12px);
1108				text-transform:uppercase;
1109				letter-spacing: 0.0825rem;
1110				margin-right: 1.4rem;
1111				color:var(--color-primary);
1112				gap: .6rem;
1113				padding-left: 0;
1114				transition: all 0.3s;
1115			}
1116			.navbar__residents::before {
1117				display: none;
1118			}
1119			.navbar__residents svg path {
1120				transition: all 0.3s;
1121			}
1122			.navbar__residents:focus svg path,
1123			.navbar__residents:hover svg path {
1124				fill: var(--color-quaternary);
1125			}
1126			.navbar__collapse {
1127				display: none;
1128			}
1129		}
1130	</style>
1131<style>  
1132  .floor-plans-section-1 {
1133    background: linear-gradient(
1134    0deg,
1135    rgba(255, 255, 255, 0.50) 0%, 
1136    rgba(255, 255, 255, 0.50) 100%), 
1137    var(--rive-cream, #F5EFE0);
1138  }
1139  .floor-plans-section-1__container {
1140    padding: 3rem var(--x-gap);
1141  }
1142
1143  .loader-wrap { display: flex; justify-content: center; align-items: center; width: 100%; aspect-ratio: 1400/691; }
1144  .loader, .loader:before, .loader:after { background: #29b354; -webkit-animation: load 1s infinite ease-in-out; animation: load 1s infinite ease-in-out; width: 6px; height: 30px; margin-right: 20px; }
1145  .loader { color: #29b354; text-indent: -9999em; position: relative; font-size: 6px; -webkit-transform: translateZ(0); -ms-transform: translateZ(0); transform: translateZ(0); -webkit-animation-delay: -0.16s; animation-delay: -0.16s; display: inline-block; }
1146  .loader:before, .loader:after { position: absolute; top: 0; content: ''; }
1147  .loader:before { left: -1.5em; -webkit-animation-delay: -0.32s; animation-delay: -0.32s; }
1148  .loader:after { left: 1.5em; }
1149  @-webkit-keyframes load {
1150    0%, 80%, 100% { box-shadow: 0 0; height: 30px; }
1151    40% { box-shadow: 0 -2em; height: 35px; }
1152  }
1153  @keyframes load {
1154    0%, 80%, 100% { box-shadow: 0 0; height: 30px; }
1155    40% { box-shadow: 0 -2em; height: 35px; }
1156  }
1157  .loader-logo { height: 30px; width: 161px; }
1158
1159  /* Semi Global */
1160  .theme-scrollbar-2::-webkit-scrollbar { width: 7px; height: 7px; }
1161  .theme-scrollbar-2::-webkit-scrollbar-thumb { background-color: #cfcfd1; border-radius: 10px; transition: background-color .2s ease; }
1162  .theme-scrollbar-2::-webkit-scrollbar-thumb:vertical:hover { background-color:  #adadad; }
1163  .theme-scrollbar-2::-webkit-scrollbar-track { background-color: white; }
1164  /* Intro */
1165  .fp-app__heading { text-wrap: balance; }
1166  @media(min-width: 992px) {
1167    .fp-app__intro { 
1168      display: flex; 
1169      justify-content: space-between; 
1170      align-items: flex-end; 
1171      margin-bottom: 3rem;
1172    }
1173    .fp-app__heading { 
1174      flex-grow: 0; 
1175    }
1176    .fp-app__heading h2{ 
1177      max-width: 621px;
1178      margin-bottom: 1rem;
1179    }
1180    .fp-app__heading p { text-wrap: pretty; max-width: 501px; }
1181    .fp-app__heading p:last-child { margin-bottom: 0; }
1182  }
1183  /* View Select Buttons */
1184  .fp-app__views-select { 
1185    display: flex; 
1186    gap: 3rem; 
1187    margin-bottom: 39px; 
1188  }
1189  .fp-app__btn { 
1190    position: relative;
1191    font-size: 1rem;
1192    font-style: normal;
1193    font-weight: 400;
1194    line-height: 100%; /* 1rem */
1195    letter-spacing: 0.11rem;
1196    padding-left: 20px;
1197    min-width: initial; 
1198    text-transform: uppercase;
1199    flex: 1 0 1;
1200    opacity: 0.66;
1201    transition: opacity 0.2s;
1202  }
1203  .fp-app__btn::before {
1204    display: inline-block;
1205    content: '';
1206    position: absolute;
1207    top: 50%;
1208    left: 0;
1209    transform: translateY(-50%);
1210    width: 6px;
1211    height: 6px;
1212    background-color: transparent;
1213    border: 1px solid var(--color-primary);
1214    border-radius: 12px;
1215    transition: border-color 0.2s, background-color 0.2s;
1216  }
1217  .fp-app__btn.active {
1218    opacity: 1;
1219  }
1220  .fp-app__btn.active::before {
1221    background-color: var(--color-quaternary);
1222    border-color: var(--color-quaternary);
1223  }
1224
1225  .fp-fees {
1226    display: inline-block;
1227    font-size: 1rem;
1228    font-weight: 300;
1229    color: #4f4f4f;
1230    margin-left: 5px;
1231    transition: color .2s ease;
1232  }
1233  .fp-fees:hover,
1234  .fp-fees:focus {
1235    color: var(--color-quaternary);
1236  }
1237  @media(min-width: 992px) {
1238    .fp-app__views-select { margin-bottom: 7px; flex-shrink: 0; }
1239    .fp-app__views-select .btn { flex: initial; padding: 10px 34px 13px;  }
1240    .fp-app__views-select .btn svg { display: inline-block; stroke: currentColor; margin-right: 16px; }
1241  }
1242  /* Filters */
1243  .fp-filters { position: relative; grid-column: 1 / -1; order: 4; }
1244  .fp-filters-collapse { 
1245    display: none; 
1246    padding: 2.25rem 2.9189rem 2.9189rem; 
1247    border-radius: var(--border-radius); 
1248    background-color: #f8f6f2;
1249  }
1250  .fp-filters-collapse.open { 
1251    position: absolute;
1252    display: flex; 
1253    flex-direction: column; 
1254    width: 100%;
1255    box-shadow: 0px 15px 14px -10px rgba(0, 0, 0, 0.25); 
1256    border: 1px solid var(--cf-5-c-34, #CF5C34);
1257    z-index: 9999;
1258  }
1259  .fp-filters-inner {
1260    display: grid;
1261    gap: 12px;
1262    margin-top: 12px;
1263  }
1264  .fp-label { 
1265    color: black;
1266    display: block;
1267    font-size: 11px;
1268    font-style: normal;
1269    font-weight: 400;
1270    line-height: 100%; /* 0.75rem */
1271    letter-spacing: 0.0825rem;
1272    text-transform: uppercase;
1273    margin-bottom: 8px;
1274    opacity: 0.77;
1275  }
1276  .fp-select { 
1277    display: flex; 
1278    justify-content: space-between; 
1279    align-items: center; 
1280    align-self: stretch; 
1281    font-size: 12px;
1282    font-weight: 300; 
1283    min-width: 100%; 
1284    background-color: rgba(42, 42, 42, 0.06);
1285    background-image: url("https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/rebrand/keyboard-arrow-down.svg");
1286    background-repeat: no-repeat; 
1287    background-position: right 10px center; 
1288    border-radius: 0.0625rem;
1289    border-bottom: 1px solid var(--rive-vandyke, #2A2A2A);
1290    padding: 7.4px 15px; 
1291    cursor: pointer; 
1292  }
1293  .fp-filters-buttons { 
1294    display: flex; 
1295    gap: 10px; 
1296    justify-content: space-between; 
1297    margin-top: 20px;
1298    order: 3; 
1299  }
1300  .fp-filters-buttons button { 
1301    flex: 1; 
1302    min-width: initial; 
1303  }
1304  .fp-filters-clear,
1305  .fp-filters-done { 
1306    /* font-size: 15px; 
1307    background-color: white; 
1308    font-weight: 700; 
1309    display: flex; 
1310    padding: 7.4px 15px; 
1311    justify-content: center; 
1312    align-items: center; 
1313    gap: 10px; 
1314    border: 1px solid black; 
1315    transition: background-color .2s ease, color .2s ease;  */
1316    font-size: 12px;
1317    font-style: normal;
1318    font-weight: 400;
1319    line-height: 100%; /* 12px */
1320    letter-spacing: 1.32px;
1321    text-transform: uppercase;
1322    padding: 8px;
1323    transition: color .2s ease;
1324  }
1325  .fp-filters-clear:hover,
1326  .fp-filters-clear:focus { 
1327    color: var(--color-quaternary);
1328  }
1329  .fp-filters-clear::before {
1330    content: '';
1331    display: inline-block;
1332    width: 16px;
1333    height: 16px;
1334    background: currentColor;
1335    mask-image: url("https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/rebrand/close-icon.png");
1336    mask-repeat: no-repeat;
1337    mask-size: contain;
1338    margin-right: 10px;
1339    vertical-align: text-top;
1340  }
1341  /* .fp-filters-done {
1342    border-color: var(--color-senary);
1343    background-color: var(--color-senary);
1344    color: white;
1345  }
1346  .fp-filters-clear:hover { 
1347    background-color: black; 
1348    color: white; 
1349  }
1350  .fp-filters-done:hover { 
1351    background-color: white; 
1352    color: var(--color-senary); 
1353    } */
1354
1355  .fp-search { 
1356    order: -1; 
1357  }
1358  .fp-search-input,
1359  .fp-select {
1360    min-height: 12px;
1361  }
1362  .fp-search-input { 
1363    display: flex; 
1364    justify-content: space-between;
1365    align-items: center;
1366    align-self: stretch;
1367    padding: 7.4px 15px; 
1368    min-width: 100%;
1369    background-color: rgba(42, 42, 42, 0.06);
1370    background-image: url("https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/rebrand/search.svg");
1371    background-repeat: no-repeat; 
1372    background-position: right 10px center;
1373    border-radius: 0.0625rem;
1374    border-bottom: 1px solid var(--rive-vandyke, #2A2A2A);
1375  }
1376  .fp-filters-toggle {
1377    display: flex;
1378    gap: 16px;
1379    padding: 16px;
1380    stroke: currentColor;
1381    fill: currentColor;
1382    width: 100%;
1383    font-weight: bold;
1384  }
1385  .fp-filters-toggle svg:last-child {
1386    transform: rotate(180deg);
1387    transition: transform .5s;
1388  }
1389  .fp-filters-toggle.open svg:last-child {
1390    transform: rotate(0deg);
1391  }
1392  .fp-filters-toggle:hover,
1393  .fp-filters-toggle:focus {}
1394  @media(min-width: 992px) {
1395    .fp-filters { order: initial; }
1396    .fp-filters-collapse.open { display: block; }
1397    .fp-filters-collapse {
1398      display: flex;
1399      flex-direction: row;
1400      justify-content: space-between;
1401      align-items: flex-end;
1402      padding: 0;
1403      gap: 1rem;
1404    }
1405    .fp-filters-inner {
1406      display: flex; 
1407      align-items: flex-end;
1408      gap: 10px; 
1409      margin: 0;
1410    }
1411    .fp-filters-buttons {
1412      display: inline-block;
1413      margin-right: auto;
1414      margin-top: 0;
1415      order: initial;
1416    }
1417    .fp-filters-clear { 
1418      min-width: auto; 
1419      background-color: transparent; 
1420    }
1421    .fp-filters-done { 
1422      display: none; 
1423    }
1424    .fp-select { 
1425      min-width: 200px; 
1426    }
1427    .fp-search { 
1428      order: initial; 
1429    }
1430    .fp-search-input {
1431      min-width: 17rem;
1432    }
1433    .fp-filters-toggle {
1434      display: none;
1435    }
1436  }
1437
1438  /* SightMap */
1439  .fp-app-sightmap-wrap {
1440    position: relative;
1441    width: 100%;
1442    aspect-ratio: 373/500;
1443    margin-top: 1.3rem;
1444  }
1445  .fp-app-sightmap {
1446    position: absolute;
1447    top: 0;
1448    left: 0;
1449    width: 100%;
1450    height: 100%;
1451  }
1452  @media(min-width: 767px) {
1453    .fp-app-sightmap-wrap {
1454      aspect-ratio: 1400/691;
1455    }
1456  }
1457
1458  /* Floor Plan Categories */
1459  .fp-categories { display: grid; gap: 50px; margin-top: 34px; }
1460  .fp-category-heading { display: flex; align-items: flex-end; gap: 15px; margin-bottom: 20px; }
1461  .fp-category-title { font-size: 26px; letter-spacing: 1.3px; margin: 0; }
1462  .fp-category-matches { font-size: 16px; font-weight: 300; color: black; letter-spacing: 0.8px; }
1463	.fps { display: grid; gap: var(--grid-gap); }
1464	.fp { 
1465    justify-self: center; 
1466    border-bottom: 1px solid rgba(42, 42, 42, 0.33);
1467    background: #FFF;
1468    cursor: pointer; 
1469    width: 100%;
1470    max-width: 432px; 
1471    transition: border-color .5s; 
1472  }
1473  .fp:hover,
1474  .fp.focus { 
1475    border-color: black; 
1476  }
1477  .fp--soldout {
1478    pointer-events: none;
1479  }
1480  .fp--soldout > *:not(.fp-call-availability) {
1481    filter: grayscale(1);
1482    opacity: 0.5;
1483  }
1484  .fp-disclaimer {
1485    font-size: 0.75rem;
1486    font-style: normal;
1487    font-weight: 400;
1488    line-height: 120%; /* 0.9rem */
1489    text-wrap: balance;
1490    opacity: 0.7;
1491  }
1492  .fp-disclaimer + .fp-disclaimer {
1493    margin-top: 0;
1494  }
1495  .fp-disclaimer p {
1496    font-size: inherit;
1497    margin: 0;
1498  }
1499  .fp--highlight {
1500    position: relative;
1501  }
1502  .fp--highlight::before {
1503    content: 'No Integration Available';
1504    position: absolute;
1505    top: 0;
1506    left: 0;
1507    right: 0;
1508    bottom: 0;
1509    background: red;
1510    color: white;
1511    padding: 30px;
1512    font-size: 12px;
1513    font-weight: 600;
1514    text-transform: uppercase;
1515    display: flex;
1516    justify-content: center;
1517    align-items: center;
1518    text-align: center;
1519    font-size: 2rem;
1520    opacity: .5;
1521  }
1522  .fp-call-availability {
1523    font-weight: 18px;
1524    font-weight: 700;
1525    text-decoration: underline;
1526    pointer-events: all;
1527  }
1528  .fp-image { 
1529    position: relative;
1530    aspect-ratio: 427 / 246;
1531    width: 100%;
1532  }
1533  .fp-text {
1534    padding: 1.5rem;
1535  }
1536  .fp-banner {
1537    display: inline-block;
1538    font-size: 14px;
1539    font-weight: 400;
1540    line-height: 1;
1541    text-transform: uppercase;
1542    color: black;
1543    color: var(--color-quinary);
1544    background-color: var(--color-quaternary);
1545    padding: 8px;
1546    margin-bottom: 5px;
1547  }
1548  .fp-image:has( + .fp-banner) {
1549    margin-bottom: 0;
1550  }
1551  .fp-image-wrap { 
1552    position: absolute;
1553    top: 0;
1554    left: 0;
1555    width: 100%;
1556    height: 100%;
1557  }
1558  .fp-image img { 
1559    position: absolute; 
1560    top: 0; 
1561    left: 0; 
1562    width: 100%; 
1563    height: 100%; 
1564    object-fit: contain;
1565    pointer-events: none; 
1566  }
1567  .fp-title { 
1568    font-size: 1.1875rem;
1569    font-style: normal;
1570    font-weight: 400;
1571    line-height: 150%; /* 1.78125rem */
1572    margin-bottom: 1rem;
1573  }
1574  .fp-info { 
1575    font-size: 0.875rem;
1576    font-style: normal;
1577    font-weight: 300;
1578    line-height: 120%; /* 1.05rem */
1579    margin-bottom: .56rem;
1580  }
1581  .fp-info > *::after { 
1582    content: ''; 
1583    display: inline-block;
1584    width: 0.0625rem;
1585    height: 0.625rem;
1586    margin: 0 .75rem;
1587    background-color: currentColor;
1588    opacity: 0.33;
1589  }
1590  .fp-info > *:last-child::after { 
1591    display: none;
1592  }
1593  .fp-starting-at { 
1594    font-size: 0.875rem;
1595    font-style: normal;
1596    font-weight: 600;
1597    line-height: 120%; /* 1.05rem */
1598    margin-bottom: 1rem;
1599  }
1600  .fp-category-mobile-filter-status { display: inline-block; }
1601  .fp-no-results {
1602    padding: var(--y-gap) var(--x-gap);
1603    text-align: center;
1604  }
1605  @media(min-width: 767px) {
1606    .fps { justify-content: center; grid-template-columns: repeat(auto-fit, minmax(calc(50% - 16px), 1fr)); gap: 50px 16px; }
1607  }
1608  @media(min-width: 992px) {
1609    .fps { /*grid-template-columns: repeat(auto-fit, minmax(calc(33.3333% - 32px), 1fr));*/display:flex;flex-wrap:wrap;justify-content:start;}
1610    .fp-category-mobile-filter-status { display: none; }
1611  }
1612  /* If user does not prefer reduced motion */
1613  @media (prefers-reduced-motion: no-preference) {
1614    .fp-transition-move { transition: all 1.2s; pointer-events: none; }
1615    .fp-transition-enter-active, .fp-transition-leave-to { opacity: 0; }
1616    .fp-transition-enter-active { transition: opacity .3s; }
1617    .fp-transition-enter-to { opacity: 1; }
1618    .fp-transition-leave-active { position: absolute; opacity: 0; }
1619  }
1620
1621  /* FP Modal */
1622  .fp-modal { position: fixed; top: 0; left: 0; width: 100%; height: 100dvh; background: rgba(132, 132, 132, 0.40); backdrop-filter: blur(2px); display: flex; justify-content: center; align-items: center; max-height: 100dvh; z-index: 99999999; }
1623  .fp-modal-inner { 
1624    position: relative;
1625    display: flex; 
1626    background-color: white;
1627    width: 100%; 
1628    max-width: 1400px; 
1629    overflow: auto;
1630  }
1631  .fp-modal-inner-inner { 
1632    position: relative; 
1633    background-color: white;
1634    display: grid;
1635    grid-template-areas: 
1636      "gallery" 
1637      "thumbnails" 
1638      "content"
1639      "units";
1640    width: 100%;
1641    height: 100dvh;
1642    border-radius: var(--border-radius); 
1643    padding: 4rem var(--x-gap) var(--x-gap);
1644  }
1645  .fp-modal-inner-inner .fp-modal-apply { margin: 1.625rem 0; }
1646  .fp-modal-close {
1647    position: absolute; 
1648    top: 0; 
1649    right: 0; 
1650    padding: 1.5rem; 
1651    cursor: pointer; 
1652    z-index: 999999; 
1653  }
1654  .fp-modal-gallery { position: relative; z-index: 999; grid-area: gallery; display: grid; align-items: start; }
1655  .fp-modal-gallery-swiper,
1656  .fp-modal-gallery-spacer { position: relative; aspect-ratio: 781/532; width: 100%; z-index: 999; grid-row: 1; grid-column: 1; }
1657  .fp-modal-gallery-spacer { pointer-events: none; z-index: -1; }
1658  .fp-modal-gallery::after {
1659    position: absolute;
1660    content: '';
1661    top: 0;
1662    right: 0;
1663    height: 100%;
1664    width: 1px;
1665    background-color: white;
1666    z-index: 999;
1667  }
1668  .fp-modal-gallery-swiper .swiper-slide { overflow: hidden; }
1669  .fp-modal-gallery-swiper__slide--sold-out {
1670    position: relative;
1671  }
1672  .fp-modal-gallery-swiper__slide--sold-out::after {
1673    content: 'Call for Availability';
1674    position: absolute;
1675    top: 0;
1676    left: 0;
1677    width: 100%;
1678    height: 100%;
1679    background: rgba(255, 255, 255, 0.65);
1680    color: #000;
1681    backdrop-filter: blur(2px);
1682    padding: 30px;
1683    font-family: var(--font-family-secondary);
1684    font-size: 1.5rem;
1685    font-weight: 400;
1686    white-space: pre;
1687    display: flex;
1688    justify-content: center;
1689    align-items: center;
1690    text-align: center;
1691    z-index: 1;
1692  }
1693  @media(min-width: 1200px) {
1694    .fp-modal-gallery-swiper__slide--sold-out::after {
1695      font-size: 3rem;
1696    }
1697  }
1698  .fp-modal-image-wrap { position: relative; width: 100%; grid-row: 1; grid-column: 1; aspect-ratio: 781/532; z-index: 1; }
1699  .fp-modal-image-wrap img { aspect-ratio: 781/532; object-fit: contain; position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
1700  .fp-modal-gallery-thumbnails { grid-area: thumbnails; position: relative; margin-top: 17px; margin-bottom: 25px; }
1701  .fp-modal-gallery-thumbnails__disclaimer { 
1702    display: block;
1703    margin-top: 5px; 
1704  }
1705  .fp-modal-gallery-thumbnails:after { content: ''; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(to left, rgba(255, 255, 255, 1), rgba(255, 255, 255, 0) 50px); z-index: 2; pointer-events: none; }
1706  .fp-modal-gallery-thumbnails .swiper-slide { width: 14.28%; aspect-ratio: 1/1; margin-right: 10px; cursor: pointer; }
1707  .fp-modal-gallery-thumbnail,
1708  .fp-modal-video-thumbnail { aspect-ratio: 1 / 1; border: 2px solid transparent; border-radius: var(--border-radius); overflow: hidden; }
1709  .fp-modal-gallery-thumbnails .swiper-slide-thumb-active .fp-modal-gallery-thumbnail { border: 2px solid var(--color-senary); }
1710  .fp-modal-gallery-thumbnails img { position: relative; width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
1711  .fp-modal-video-thumbnail { display: inline-block; position: relative; border-radius: var(--border-radius); width: 100%; height: 100%; }
1712  .fp-modal-video-thumbnail::after { 
1713    content: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" fill="white" width="32" height="32"%3E%3Cpath d="M549.7 124.1c-6.3-23.7-24.8-42.3-48.3-48.6C458.8 64 288 64 288 64S117.2 64 74.6 75.5c-23.5 6.3-42 24.9-48.3 48.6-11.4 42.9-11.4 132.3-11.4 132.3s0 89.4 11.4 132.3c6.3 23.7 24.8 41.5 48.3 47.8C117.2 448 288 448 288 448s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zm-317.5 213.5V175.2l142.7 81.2-142.7 81.2z"%3E%3C/path%3E%3C/svg%3E');
1714    position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: rgba(0, 0, 0, 0.40); display: flex; justify-content: center; align-items: center; }
1715  .fp-modal-iframe { position: relative; height: 100%; width: 100%; border: none; }
1716  .fp-modal-iframe iframe { height: 100%; width: 100%; border: none; }
1717  .fp-modal-content { display: grid; grid-area: content; padding: 0 10px; }
1718  .fp-modal-title {
1719    font-size: 2.5rem;
1720    font-style: normal;
1721    font-weight: 400;
1722    line-height: 100%; /* 2.5rem */
1723  }
1724  .fp-modal-details { 
1725    font-size: 1.4375rem;
1726    font-style: normal;
1727    font-weight: 600;
1728    line-height: 150%; /* 2.15625rem */
1729    margin-bottom: 2.5rem;
1730  }
1731  .fp-modal-notice { 
1732    font-size: 1.1875rem;
1733    font-style: normal;
1734    font-weight: 300;
1735    line-height: 140%; /* 1.6625rem */
1736    border: 1px solid var(--color-senary, #A3DFDE);
1737    background: linear-gradient(0deg, rgba(255, 255, 255, 0.75) 0%, rgba(255, 255, 255, 0.75) 100%), var(--color-senary, #A3DFDE);
1738    padding: .75rem;
1739    margin-bottom: .75rem;
1740  }
1741  .fp-modal-description { 
1742    font-size: 1.1875rem;
1743    font-style: normal;
1744    font-weight: 300;
1745    line-height: 140%; /* 1.6625rem */
1746    border: 1px solid var(--color-quinary, #E4DCCA);
1747    background: linear-gradient(0deg, rgba(255, 255, 255, 0.75) 0%, rgba(255, 255, 255, 0.75) 100%), var(--color-quinary, #E4DCCA);
1748    padding: .75rem;
1749    margin-bottom: .75rem;
1750  }
1751  .fp-modal-description * {
1752    font-size: 18px;
1753  }
1754  .fp-modal-description p:last-child { margin-bottom: 0; }
1755  .fp-modal-info { 
1756    display: flex; 
1757    font-size: 1.1875rem;
1758    font-style: normal;
1759    font-weight: 300;
1760    line-height: 120%; /* 1.425rem */
1761    margin-bottom: 1rem;
1762  }
1763  .fp-modal-info > *::after { 
1764    content: '';
1765    display: inline-block;
1766    width: 0.0625rem;
1767    height: 0.875rem; 
1768    background-color: currentColor;
1769    opacity: 0.33;
1770    margin: 0 .75rem; 
1771  }
1772  .fp-modal-info > *:last-child::after { 
1773    display: none;
1774  }
1775  /* .fp-modal-space-options { order: 1; } */
1776  .fp-modal-also { grid-area: units; margin-top: 1.625rem; }
1777  .fp-modal-also-title { font-size: 26px; padding-left: 10px; }
1778  .fp-modal-space-options-title,
1779  .fp-modal-space-option { 
1780    font-size: 1.1875rem;
1781    font-style: normal;
1782    font-weight: 400;
1783    line-height: 120%; /* 1.425rem */
1784  }
1785  .fp-modal-space-option .fp-modal-rate { font-size: inherit; font-weight: 700; margin-right: 10px; }
1786  .fp-modal-rates { display: flex; font-weight: 700; }
1787  .fp-modal-rates > *::after { color: #E4DCCA; content: '|'; margin: 0 1.25625rem; font-weight: 300; }
1788  .fp-modal-rates > *:last-child::after { content: ''; }
1789  .fp-modal-rate { font-size: 18px; font-weight: 700; }
1790  .strikethrough {
1791    display: inline-block;
1792    font-size: 15px;
1793    color: black;
1794    text-decoration: line-through;
1795    margin-right: 8px;
1796  }
1797  .strikethrough + span {
1798    color: var(--color-senary);
1799    font-weight: 700;
1800  }
1801  .fp-modal-availableOn { 
1802    font-size: 18px; 
1803    font-style: italic; 
1804    font-weight: 500; 
1805    display: inline-block; 
1806  }
1807  .fp-modal-apply { margin-top: auto; }
1808  .fp-modal-apply .btn { min-width: 100%; }
1809
1810  .fp-modal-units { grid-area: units; margin-top: 1.625rem;}
1811  .fp-modal-units-title { font-size: 1.625rem; margin-bottom: 1.8rem; padding-left: 10px; }
1812  .fp-modal-units-list { display: grid; gap: var(--grid-gap);}
1813  .fp-modal-unit { padding: 1rem 1.5rem;  border-radius: var(--border-radius); }
1814  .fp-modal-unit-number { 
1815    font-size: 19px;
1816    font-weight: 700; 
1817    margin-bottom: 1.1rem;
1818  }
1819  .fp-modal-unit-spaceoption { display: block; color: black; font-family: var(--font-family-tertiary); font-size: 12px; margin-top: 5px; }
1820  .fp-modal-unit-rent { font-size: 19px; font-weight: 700; }
1821  .fp-modal-unit-available { color: var(--color-senary); font-size: 19px; font-style: italic; font-weight: 300; margin-left: 10px; }
1822  .fp-modal-unit-info { font-size: 19px; font-weight: 300; margin-bottom: 3px; }
1823  .fp-modal-unit-info > *::after { content: '|'; color: #E4DCCA; margin: 0 1.375rem; }
1824  .fp-modal-unit-info > *:last-child::after { content: ''; }
1825  .fp-modal-unit-buttons { 
1826    display: flex; 
1827    gap: 10px; 
1828    margin-top: 20px;
1829  }
1830  .fp-modal-unit-buttons .btn { 
1831    padding: 12px;
1832    min-width: initial; 
1833    min-height: initial;
1834    flex: 1;
1835  }
1836  .fp-modal-disclaimer {
1837    font-size: 12px; 
1838    font-weight: 300; 
1839    font-style: italic; 
1840    line-height: 1.4; 
1841    align-self: end; 
1842    margin-top: auto;
1843  }
1844  .fp-modal-recommend { display: grid; gap: 10px; }
1845
1846  /* Floorplan Modal Tabs (Part of the floorplan condolidation update) */
1847  .fp-modal-tabs__title {
1848    letter-spacing: 1px;
1849    margin-bottom: 12px;
1850  }
1851  .fp-modal-tabs__nav {
1852    display: flex;
1853    gap: 10px;
1854    margin-bottom: 1.625rem;
1855  }
1856  .fp-modal-tabs__nav-link {
1857    display: flex;
1858    align-items: center;
1859    justify-content: center;
1860    font-size: 3rem;
1861    font-weight: 700;
1862    height: 1.5em;
1863    width: 1.5em;
1864    border: 2px solid transparent;
1865    color: black;
1866    background-color: var(--color-secondary);
1867    cursor: pointer;
1868    line-height: 1;
1869  }
1870  .fp-modal-tabs__nav-link:hover,
1871  .fp-modal-tabs__nav-link:focus {
1872    text-decoration: none;
1873  }
1874  .fp-modal-tabs__nav-link.active {
1875    border-color: black;
1876    text-decoration: none;
1877  }
1878  .fp-modal-tabs__body {
1879    position: relative;
1880  }
1881  .fp-modal-tabs__nav-link--sold-out {
1882    filter: grayscale(1);
1883    opacity: 0.5;
1884  }
1885  .fp-modal-tabs__content--sold-out {
1886    display: none;
1887  }
1888  @media(prefers-reduced-motion: no-preference) {
1889    .tab-fade-move,
1890    .tab-fade-enter-active,
1891    .tab-fade-leave-active {
1892      transition: all 0.5s ease;
1893    }
1894    .tab-fade-enter-from,
1895    .tab-fade-leave-to {
1896      opacity: 0;
1897    }
1898    .tab-fade-leave-active {
1899      position: absolute!important;
1900    }
1901  }
1902  .fp-modal img.fp-modal-thumbnail--layout {
1903    object-fit: contain;
1904  }
1905
1906  @media(min-width: 650px) {
1907    .fp-modal-recommend { grid-template-columns: repeat(2,1fr); }
1908  }
1909  @media(min-width: 992px) {
1910    .fp-modal { padding: var(--x-gap); }
1911    .fp-modal-inner { 
1912      padding: 1.6875rem 11px 1.6875rem 1.6875rem;
1913      max-height: calc(100vh - 2* var(--indent));
1914      overflow: hidden;
1915    }
1916    .fp-modal-inner-inner { 
1917        position: relative; 
1918        background-color: white; 
1919        padding: 0 calc( 1.6875rem - 11px ) 0 0;
1920        border-radius: var(--border-radius); 
1921        display: grid; 
1922        grid-template-areas: 
1923          "gallery content" 
1924          "thumbnails ." 
1925          "units units";
1926        grid-template-columns: 58.024% 1fr; 
1927        /* grid-template-rows: auto 1fr; */
1928        gap: 0 3.25rem; 
1929        overflow-y: auto;
1930        width: 100%;
1931        height: initial;
1932      }
1933    .fp-modal-inner-inner:has(.fp-modal-space-options) { 
1934      grid-template-areas: 
1935      "gallery content" 
1936      "thumbnails content" 
1937      "units units"; 
1938    }
1939    .fp-modal-inner-inner:has(.fp-modal-space-options) .fp-modal-apply { margin-top: 0; }
1940    .fp-modal-space-options {
1941      margin-bottom: 16px;
1942    }
1943    .fp-modal-space-options { order: initial; margin-top: 0; }
1944    .fp-modal-apply .btn { min-width: 50%; }
1945    .fp-modal-gallery-thumbnails { margin-top: var(--grid-gap); margin-bottom: 2.5rem; }
1946    .fp-modal-content { 
1947      grid-area: content; 
1948      padding-top: 1rem; 
1949      display: flex; 
1950      flex-direction: column; 
1951      padding: 1rem 0 0 0; 
1952    }
1953    .fp-modal-units {margin-top: 0;}
1954    .fp-modal-units-title {  padding-left: 0; }
1955    .fp-modal-units-list { grid-template-columns: auto auto 1fr auto; gap: var(--grid-gap) 1px; }
1956    .fp-modal-unit { background-color: black; display: grid; grid-template-columns: subgrid; grid-column: 1 / -1; padding: 1px; }
1957    .fp-modal-unit > * {background-color: white; display: flex; align-items: center; padding: 16px 1.3rem; line-height: 1; }
1958    /* .fp-modal-unit > *:nth-child(1) { padding: 24px 24px 24px var(--indent); } */
1959    .fp-modal-unit-number,
1960    .fp-modal-unit-info { margin-bottom: 0; }
1961    .fp-modal-also { margin-top: 0; }
1962    .fp-modal-also-title { font-size: 1.625rem; margin-bottom: 1.8rem; padding-left: 0; }
1963    .fp-modal-recommend { grid-template-columns: repeat(4,1fr); }
1964    .fp-modal-unit-rent {
1965      justify-content: flex-end;
1966    }
1967    .fp-modal-unit-buttons {
1968      margin-top: 0;
1969    }
1970    .fp-modal-unit-buttons .btn { padding: 10px 12px; flex: initial; }
1971  }
1972
1973  /* Units Sidebar */
1974  .fp-sidebar-list-view { 
1975    display: none; 
1976  }
1977  .fp-sidebar-select-view { 
1978    display: block; 
1979    margin-bottom: var(--grid-gap); 
1980  }
1981  @media(min-width: 992px) {
1982    .fp-units-mobile-filters { 
1983      display: none; 
1984    }
1985    .fp-sidebar-list-view { 
1986      display: block;
1987    }
1988    .fp-sidebar-title { 
1989      font-size: 1rem;
1990      font-style: normal;
1991      font-weight: 400;
1992      line-height: 100%; /* 1rem */
1993      letter-spacing: 0.11rem;
1994      text-transform: uppercase;
1995      margin-bottom: 1.5rem;
1996    }
1997    .fp-sidebar-items { 
1998      display: grid; 
1999    }
2000    .fp-sidebar-link { 
2001      position: relative;
2002      border-top: 1px solid rgba(42, 42, 42, 0.33); 
2003      padding: 1.5rem 0; 
2004      display: grid; 
2005      transition: color .2s ease; 
2006    }
2007    .fp-sidebar-item:last-child .fp-sidebar-link { 
2008      border-bottom: 1px solid rgba(42, 42, 42, 0.33); 
2009    }
2010    .fp-sidebar-link:hover,
2011    .fp-sidebar-link:focus,
2012    .fp-sidebar-link.active { 
2013      text-decoration: none; 
2014    }
2015    .fp-sidebar-link-count { 
2016      color: var(--color-primary);
2017      font-size: 1rem;
2018      font-style: normal;
2019      font-weight: 400;
2020      line-height: 120%; /* 1.2rem */
2021    }
2022    .fp-sidebar-link-title { 
2023      font-size: 1.1875rem;
2024      font-style: normal;
2025      font-weight: 500;
2026      line-height: 100%; /* 1.1875rem */
2027      margin-bottom: .66rem;
2028    }
2029    .fp-sidebar-link--disabled { 
2030      pointer-events: none; 
2031      cursor: not-allowed;
2032      opacity: 0.5;
2033    }
2034    .fp-sidebar-link--active { 
2035      color: var(--color-quaternary);
2036    }
2037    .fp-sidebar-link::after {
2038      content: '';
2039      display: inline-block;
2040      width: 2rem;
2041      height: 2rem;
2042      background: var(--color-primary);
2043      mask-image: url("https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/rebrand/arrow-right.png");
2044      mask-size: contain;
2045      mask-repeat: no-repeat;
2046      position: absolute;
2047      top: 50%;
2048      right: 0;
2049      transform: translateY(-50%);
2050      opacity: 0;
2051      pointer-events: none;
2052    }
2053    .fp-sidebar-link--active::after {
2054      opacity: 1;
2055    }
2056    .fp-sidebar-select-view { display: none; }
2057  }
2058
2059  @media (prefers-reduced-motion: no-preference) {
2060
2061    /* Views Transition, Map to Floorplans */
2062    .view-enter-active, 
2063    .view-leave-active { transition: opacity .25s; }
2064    .view-enter, 
2065    .view-leave-to { opacity: 0; }
2066    .view-enter-active { opacity: 0; }
2067    .view-enter-to, 
2068    .view-leave { opacity: 1; }
2069
2070    /* View to Modal Transition */
2071    .fade-enter-active,
2072    .fade-leave-active { transition: opacity 1s ease; }
2073    .fade-enter-from,
2074    .fade-leave-to { opacity: 0; }
2075    .fade-enter-active .fp-modal-content > *,
2076    .fade-enter-active .fp-modal-gallery-thumbnails,
2077    .fade-enter-active .fp-modal-units,
2078    .fade-enter-active .fp-modal-also { opacity: 0; transform: translateY(10px); transition: opacity .5s, transform .5s; }
2079    .fade-enter-active .fp-modal-units, 
2080    .fade-enter-active .fp-modal-also { transform: translateY(0px); }
2081    .fade-enter-active .fp-modal-content > *:nth-child(1){ transition-delay: .2s; }
2082    .fade-enter-active .fp-modal-content > *:nth-child(2){ transition-delay: .3s; }
2083    .fade-enter-active .fp-modal-content > *:nth-child(3){ transition-delay: .4s; }
2084    .fade-enter-active .fp-modal-content > *:nth-child(4){ transition-delay: .5s; }
2085    .fade-enter-active .fp-modal-content > *:nth-child(5){ transition-delay: .6s; }
2086    .fade-enter-active .fp-modal-content > *:nth-child(6){ transition-delay: .6s; }
2087    .fade-enter-active .fp-modal-content > *:nth-child(7){ transition-delay: .8s; }
2088    .fade-enter-active .fp-modal-units,
2089    .fade-enter-active .fp-modal-also { transition-delay: .8s; }
2090    .fade-enter-to .fp-modal-content > *,
2091    .fade-enter-to .fp-modal-gallery-thumbnails,
2092    .fade-enter-to .fp-modal-units,
2093    .fade-enter-to .fp-modal-also { opacity: 1; transform: translateY(0); }
2094    
2095    /* Modal to Modal Transition */
2096    .modal-slide-enter-active,
2097    .modal-slide-leave-active { transition: all .5s ease; }
2098    .modal-slide-enter-active .fp-modal-inner  { opacity: 0; transform: translateX(-15px); transition: opacity .5s, transform .5s; }
2099    .modal-slide-leave-to .fp-modal-inner  { opacity: 0; transform: translateX(15px); transition: opacity .5s, transform .5s; }
2100    .modal-slide-enter-to .fp-modal-inner  { opacity: 1; transform: translateX(0); }
2101
2102    /* Load Animation */
2103    .load-enter-active,
2104    .load-leave-active { transition: opacity .15s ease; }
2105    .load-enter-from,
2106    .load-leave-to { opacity: 0; }
2107
2108    @media(min-width: 992px) {
2109      .fade-enter-active .fp-modal-gallery-thumbnails { transition-delay: .7s; }
2110    }
2111
2112  }
2113
2114/* The Maps Area */
2115.fp-maps { display: grid; }
2116.fp-map {}
2117.fp-map__viewport { 
2118  position: relative; 
2119  height: 0; 
2120  overflow: hidden; 
2121  cursor: grab;
2122  padding-top: 95.488%;
2123}
2124.fp-map__svg { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 100%; height: 100%; }
2125.fp-map__link:hover,
2126.fp-map__link:focus,
2127.fp-map__link.active { text-decoration: none; }
2128.fp-map__area { 
2129  stroke: var(--color-senary); 
2130  fill: var(--color-senary); 
2131  stroke-opacity: 1; 
2132  stroke-width: 1; 
2133  stroke-linecap: round; 
2134  stroke-linejoin: round; 
2135  fill-opacity: .85; 
2136  transition: fill-opacity 0.2s ease-in-out; 
2137  pointer-events: all; 
2138  cursor: pointer; 
2139}
2140.fp-map__link:hover .fp-map__area,
2141.fp-map__link.active .fp-map__area {
2142  fill-opacity: 0.333; 
2143}
2144.fp-map__link--small .fp-map__area-title {
2145  font-size: .5rem;
2146  font-size: var(--map-area-secondary-font-size, 8px);
2147}
2148.fp-map__image { position: absolute; top: 0; left: 0; width: 100%; height: 100%; pointer-events: none; }
2149.fp-maps-filter-desktop { 
2150  display: none; 
2151}
2152.fp-map-mobile-filters { display: block; margin-top: 13px; margin-bottom: 2.3rem; }
2153.fp-map__area-title {
2154    font-size: 16px;
2155    font-size: var(--map-area-font-size, 16px);
2156    stroke: white;
2157    fill: white;
2158    stroke-width: .5;
2159    stroke-linecap: round;
2160    stroke-linejoin: round;
2161    transition: all 0.2s ease-in-out;
2162}
2163.fp-map__link:hover .fp-map__area-title,
2164.fp-map__link.active .fp-map__area-title {
2165    stroke: #4f4f50;
2166    fill: #4f4f50;
2167}
2168@media(min-width: 992px) {
2169  .fp-maps { 
2170    grid-template-columns: 208px 1fr; 
2171    gap: 3rem 10px; 
2172  }
2173  .fp-map { position: relative; display: grid; grid-template-columns: 1fr 305px; gap: 1.875rem; }
2174  .fp-maps-filter-desktop { display: block; }
2175  .fp-map-mobile-filters { display: none; }
2176}
2177
2178/* Zoom Controls */
2179.jumpem-map__zoom { 
2180  position: absolute; 
2181  top: 11px; 
2182  right: 11px; 
2183  display: flex; 
2184  flex-direction: column; 
2185  align-items: center; 
2186  text-align: center;
2187  gap: 6px; 
2188}
2189.jumpem-map__zoom button { 
2190  appearance: none; 
2191  -webkit-appearance: none; 
2192  padding: 0; 
2193  backdrop-filter: blur(5px); 
2194  cursor: pointer; 
2195  padding: 5px; 
2196  width: 36px; 
2197  height: 36px; 
2198}
2199.jumpem-map__zoom svg { 
2200  stroke: var(--color-primary); 
2201}
2202@media(min-width: 992px) {
2203  .jumpem-map__zoom button { 
2204    width: 27px;
2205    height: 27px; 
2206  }
2207}
2208
2209/* Map Units List */
2210.fp-units {
2211  display: grid; 
2212  gap: 16px; 
2213}
2214.fp-unit {
2215  max-width: 440px;
2216  margin: 0 auto;
2217}
2218.fp-units-header { 
2219  text-align: center; 
2220  margin: 1rem 0 1.7rem;
2221}
2222.fp-units-list-title {
2223  font-size: 1rem;
2224  font-style: normal;
2225  font-weight: 400;
2226  line-height: 100%; /* 1rem */
2227  letter-spacing: 0.11rem;
2228  text-transform: uppercase;
2229}
2230.fp-units-list-tab-name { 
2231  font-size: 15px; 
2232  color: black; 
2233  font-weight: 700; 
2234}
2235.fp-units-list-tab-filters {
2236  text-wrap: balance;
2237  line-height: 1.5;
2238}
2239.fp-units-list-tab-filters > span {
2240  display: inline-block;
2241  white-space: nowrap;
2242}
2243.fp-units-list-tab-filters > span:has(+ span)::after {
2244  content: ',\00a0';
2245}
2246.fp-units-list-tab-filters-clear {
2247  display: block;
2248  text-decoration: underline;
2249  margin: auto;
2250}
2251.fp-unit-link { 
2252  display: grid; 
2253  gap: 12px; 
2254  border: 1px solid #E4DCCA;
2255  background: white; 
2256  padding: 10px; 
2257  transition: border-color .2s ease; 
2258  max-width: 500px;
2259  min-width: 100%;
2260  margin: 0 auto;
2261}
2262.fp-unit-link:hover,
2263.fp-unit-link:focus,
2264.fp-unit-link.active { 
2265  border-color: black; 
2266  text-decoration: none; 
2267}
2268.fp-unit-content { padding: 0 6px; }
2269.fp-unit-title { 
2270  font-size: 18px; 
2271  font-weight: 500; 
2272  color: var(--color-senary); 
2273  margin-bottom: 0; 
2274  line-height: 1.1; 
2275}
2276.highlight {
2277  color: black;
2278  background-color: var(--color-secondary);
2279}
2280.fp-unit-floorplan { 
2281  font-size: 16px; 
2282  font-weight: 700; 
2283  margin-bottom: 5px; 
2284}
2285.fp-unit-building { 
2286  font-size: 13px; 
2287  font-weight: 300; 
2288}
2289.fp-unit-info { 
2290  font-size: 13px; 
2291  font-weight: 300; 
2292}
2293.fp-unit-info > *::after { 
2294  content: '|'; 
2295  color: #E4DCCA; 
2296  margin: 0 12.5px;
2297}
2298.fp-unit-info > *:last-child::after { 
2299  content: ''; 
2300}
2301.fp-unit-rent { 
2302  font-size: 15px; 
2303  font-weight: 700; 
2304  line-height: 1.1; 
2305}
2306.fp-unit-available {
2307  font-size: 15px; 
2308  font-style: italic; 
2309  font-weight: 400; 
2310  color: var(--color-senary);
2311  line-height: 1.66667;
2312  }
2313.fp-unit-image {
2314  object-fit: contain; 
2315  aspect-ratio: 353/120; 
2316}
2317.fp-tags {
2318  padding: 8px;
2319}
2320.fp-tag {
2321  display: flex;
2322  align-items: center;
2323  gap: 8px;
2324  font-size: 12px;
2325  font-style: normal;
2326  font-weight: 400;
2327  line-height: 100%; /* 12px */
2328}
2329.fp-tag-indicator {
2330  position: relative;
2331  height: 18px;
2332  width: 28px;
2333  border-radius: 1px;
2334  border: 1px solid var(--color-primary);
2335  background-color: rgba(42, 42, 42, 0.06);
2336  padding: 5px 2.5px;
2337}
2338.fp-tag-indicator::after {
2339  content: "";
2340  position: absolute;
2341  height: 12px;
2342  aspect-ratio: 1;
2343  background: var(--color-quaternary) padding-box;
2344  top: 50%;
2345  left: 4px;
2346  translate: 0 -50%;
2347  box-sizing: border-box;
2348  transition: translate 0.25s;
2349}
2350.fp-tag-indicator-toggled::after {
2351  translate: 6px -50%;
2352}
2353@media(min-width: 992px) {
2354  .fp-units { 
2355    position: absolute;
2356    top: 0; 
2357    left: 0; 
2358    width: 100%; 
2359    max-height: 100%; 
2360    padding-right: 12px; 
2361    padding-bottom: 50px; 
2362    overflow-y: scroll; 
2363  }
2364  .fp-units-list { 
2365    display: flex; 
2366    flex-direction: column; 
2367    height: 100%; 
2368  }
2369  .fp-units-header { 
2370    text-align: left;
2371    padding-bottom: 1.5rem;
2372    margin-bottom: 1.5rem; 
2373    border-bottom: 1px solid rgba(42, 42, 42, 0.33);
2374  }
2375  .fp-units-list-title { 
2376    font-size: 1.625rem;
2377    margin-bottom: 0; 
2378  }
2379  .fp-units-list-tab-name { 
2380    font-size: 16px; 
2381    font-weight: 300; 
2382  }
2383  .fp-units-scroll-track { 
2384    position: relative; 
2385    height: 100%; 
2386    margin-top: 1.5rem; 
2387  }
2388  .fp-units-scroll-track::after { 
2389    content: ''; 
2390    position: absolute; 
2391    top: 0; 
2392    left: 0; 
2393    width: 100%; 
2394    height: 100%; 
2395    z-index: 2; 
2396    pointer-events: none; 
2397  }
2398  .fp-unit { 
2399    width: 100%;
2400  }
2401  .fp-unit-image { 
2402    aspect-ratio: 255/110;
2403  }
2404}
2405.powered-by-jumpem {
2406  filter: grayscale(1);
2407  z-index: 2;
2408  font-weight: 700;
2409  font-size: 11px;
2410  text-align: right;
2411  padding: 6px;
2412}
2413.powered-by-jumpem img {
2414  vertical-align: text-bottom;
2415  padding-bottom: 1px;
2416}
2417@media(min-width: 992px) {
2418  .powered-by-jumpem {
2419    position: absolute;
2420    bottom: -6px;
2421    right: calc(var(--x-gap) + 6px);
2422    transform: translateY(100%);
2423  }
2424}
2425</style>
2426<style>
2427	.footer {
2428		position: relative;
2429		background-color: #fcfbf7;
2430	}
2431	.footer-outro {
2432		padding: 2.35rem var(--x-gap) 0;
2433	}
2434	.footer-outro__intro {
2435		padding: 72px var(--x-gap);
2436	}
2437	.footer-outro__impact-text {
2438		color: var(--color-quaternary);
2439		font-size: 33px;
2440		margin-bottom: 24px;
2441		text-wrap: auto;
2442	}
2443	.footer-outro__buttons {
2444		display: flex;
2445    	flex-direction: column;
2446    	place-items: flex-start;
2447		gap: 1rem;
2448		margin-bottom: 1.8rem;
2449	}
2450	.footer-outro__container {
2451		position: relative;
2452		margin: 0 var(--x-gap);
2453		overflow: hidden;
2454		z-index: 5;
2455	}
2456	.footer-outro__banner {
2457		object-fit: cover;
2458		aspect-ratio: 353 / 451;
2459	}
2460	.footer-outro .arrow-link::after {
2461		background-color: black;
2462	}
2463	.footer-outro__pattern-1 {
2464		position: absolute;
2465		top: -15px;
2466		right: var(--x-gap);
2467		width: 109px;
2468		z-index: 0;
2469	}
2470	.footer-outro__pattern-2 {
2471		position: absolute;
2472		top: 0;
2473		right: 0;
2474		width: 166px;
2475		height: 240.5px;
2476		z-index: 0;
2477		object-fit: contain;
2478		transform: translateY(-25%);
2479	}
2480	@media(min-width: 512px) {
2481		.footer-outro {
2482			padding: 2.6rem 0 0;
2483		}
2484		.footer-outro__intro {
2485			padding: 48px var(--x-gap);
2486		}
2487		.footer-outro__impact-text {
2488			font-size: 57px;
2489			max-width: 900px;
2490			margin-right: auto;
2491			text-wrap: balance;
2492		}
2493		.footer-outro__banner {
2494			object-fit: initial;
2495			aspect-ratio: 1340/760;
2496		}
2497		.footer-outro__pattern-1 {
2498			object-fit: cover;
2499		}
2500	}
2501
2502	.footer-outro__banner-wrap {position:relative;}
2503	.footer-tape-banner {position:absolute;overflow:hidden;height:196px;width:100%;bottom:40px;}
2504    .footer-outro__banner-wrap .tape-line {position:absolute;display:flex;align-items:center;gap:2.3px;width:1100px;height:37.5px;overflow:hidden;white-space:nowrap;}
2505	.footer-tape-banner .tape-line-inner {margin-left:-50%;}
2506    .footer-outro__banner-wrap .footer-tape-banner .tape-line:first-of-type {background-color: var(--color-tertiary);-webkit-text-stroke-color:var(--color-quaternary);color:var(--color-tertiary);z-index:3;transform:rotate(-2.605deg);top:-24px;left:-22px;}
2507    .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(2) {background-color: var(--color-primary);-webkit-text-stroke-color:var(--color-quinary);color:var(--color-primary);z-index:2;transform:rotate(-1.066deg);top:-5px;left:-5px;}
2508    .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(3) {background-color: var(--color-senary);-webkit-text-stroke-color:var(--color-primary);color:var(--color-senary);z-index:4;transform:rotate(-0.058deg);top:20px;left:-20px;}
2509    .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(4) {background-color: var(--color-quaternary);-webkit-text-stroke-color:var(--color-primary);color:var(--color-quaternary);transform:rotate(0.762deg);z-index:2;top:45px;left:-45px;}
2510    .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(5) {background-color: var(--color-tertiary);-webkit-text-stroke-color:var(--color-secondary);color:var(--color-tertiary);transform:rotate(-2.655deg);z-index:5;top:53px;left:-55px;}
2511    .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(6) {background-color:#2BA5CD;-webkit-text-stroke-color:var(--color-tertiary);color:#2BA5CD;transform:rotate(-1.033deg);z-index:1;top:80px;left:-80px;}
2512    .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(7) {background-color: var(--color-primary);-webkit-text-stroke-color:var(--color-senary);color:var(--color-primary);transform:rotate(-1.066deg);z-index:4;top:101px;left:-100px;}
2513    .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(8) {background-color: var(--color-quaternary);-webkit-text-stroke-color:var(--color-quinary);color:var(--color-quaternary);transform:rotate(-0.479deg);z-index:5;top:133px;left:-60px;}
2514    .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(9) {background-color: var(--color-secondary);-webkit-text-stroke-color:var(--color-quaternary);color:var(--color-secondary);transform:rotate(-1.033deg);z-index:4;top:165px;left:-90px;}
2515    .footer-outro__banner-wrap .stroke-text {display:inline-block;font-size:30px;-webkit-text-stroke-color:inherit;color:inherit;-webkit-text-stroke-width: 0.57px;letter-spacing:3px;padding:0 8px;}
2516	.footer-outro__banner-wrap .primary-tape-line {width:100%;background-color: var(--color-tertiary);-webkit-text-stroke-color: var(--color-secondary);color: var(--color-tertiary);bottom:0;z-index:5;}
2517    @media(min-width:992px){
2518        .footer-tape-banner {height:359px;bottom:100px;}
2519        .footer-outro__banner-wrap .tape-line {height:73px;width:150vw;gap:4.5px;}
2520        .footer-outro__banner-wrap .stroke-text {font-size:62px;-webkit-text-stroke-width: 1.14px;letter-spacing:6px;padding:0 16px;word-spacing:-7px;}
2521        .footer-outro__banner-wrap .footer-tape-banner .tape-line:first-of-type {top:-64px;}
2522        .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(2) {}
2523        .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(3) {top:35px;}
2524        .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(4) {top:100px;}
2525        .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(5) {top:105px;}
2526        .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(6) {top:131px;}
2527        .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(7) {top:194px;}
2528        .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(8) {top:249px;}
2529        .footer-outro__banner-wrap .footer-tape-banner .tape-line:nth-of-type(9) {top:303px;}
2530		.footer-outro__banner-wrap .primary-tape-line {width:100%;bottom:18px;transform: rotate(0.048deg);}
2531    }
2532
2533	.footer__container {
2534		position: relative;
2535		color: var(--color-quinary);
2536		background-color: var(--color-primary);
2537	}
2538	.footer__inner {
2539		display: grid;
2540		width: 100%;
2541		grid-template-areas: 
2542      "values" 
2543      "contact" 
2544      "menu" 
2545      "logo" 
2546	  "partnerships"
2547      "certifications"
2548      "sns" 
2549      "copyright";
2550		row-gap: 3.5rem;
2551		column-gap: 20px;
2552		padding: 144px 15px 3rem;
2553	}
2554  .footer__inner:has(.footer__certifications) {
2555		grid-template-areas: 
2556      "values" 
2557      "contact" 
2558      "menu" 
2559      "logo" 
2560      "certifications"
2561      "sns" 
2562      "copyright";
2563  }
2564  .footer__inner:has(.footer__partnerships) {
2565		grid-template-areas: 
2566      "values" 
2567      "contact" 
2568      "menu" 
2569      "logo" 
2570      "partnerships"
2571      "sns" 
2572      "copyright";
2573  }
2574  .footer__inner:has(.footer__partnerships):has(.footer__certifications) {
2575		grid-template-areas: 
2576      "values" 
2577      "contact" 
2578      "menu" 
2579      "logo" 
2580	  "partnerships"
2581      "certifications"
2582      "sns" 
2583      "copyright";
2584  }
2585	.footer__logo {
2586		grid-area: logo;
2587	}
2588	.footer__translate {
2589		grid-area: translate;
2590	}
2591	.footer__sns {
2592		grid-area: sns;
2593	}
2594	.footer__contact {
2595		grid-area: contact;
2596	}
2597	.footer__contact > * {
2598		font-size: 16px;
2599	}
2600	.footer__hours {
2601		display: flex;
2602	}
2603	.footer__hours li {
2604		line-height: 1.5;
2605	}
2606	.footer__hour {
2607		display: inline-flex;
2608	}
2609	.footer__hour + .footer__hour::before {
2610		content: '|';
2611		margin: 0 3.4px;
2612	}
2613	.footer__hour-label {
2614		margin-right: 5px;
2615	}
2616	.footer__values {
2617		grid-area: values;
2618		font-size: 23px;
2619		line-height: 1.5;
2620		margin: 0;
2621		max-width: 660px;
2622		text-wrap: balance;
2623	}
2624	.footer__link {
2625		display: block;
2626		font-size: 16px;
2627		transition: color 0.2s ease;
2628		line-height: 1.5;
2629	}
2630	.footer__link--email {
2631		text-decoration: underline;
2632	}
2633	.footer__link:hover,
2634	.footer__link:focus {
2635		color: var(--color-secondary);
2636		text-decoration: underline;
2637	}
2638	.footer__menu {
2639		grid-area: menu;
2640		display: flex;
2641		flex-direction: column;
2642	}
2643	.footer__menu .menu {
2644		display: grid;
2645		/*grid-template-columns: repeat(2, 1fr);*/
2646		gap: 18px 2.5rem;
2647		font-size: 12px;
2648		line-height: 1.4;
2649		margin-top: 0.4rem;
2650		text-transform:uppercase;
2651		color:var(--color-quinary);
2652	}
2653	.footer__menu .menu .menu__link {color:inherit;}
2654	
2655	.footer__menu__utilities .menu {
2656		margin-top: 3rem;
2657		margin-left: 0;
2658	}
2659  .footer__partnerships,
2660  .footer__certifications {   
2661    margin-top: -1.375rem;
2662  }
2663	.footer__partnerships {
2664		grid-area: partnerships;
2665		display: flex;
2666		gap: 1.5rem;
2667    align-self: center;
2668	}
2669	.footer__partnerships img {
2670		max-width: 375px;
2671		max-height: 118px;
2672		object-fit: contain;
2673	}
2674	.footer__certifications {
2675		grid-area: certifications;
2676		display: flex;
2677		gap: 2.375rem;
2678		align-items: center;
2679	}
2680	.footer__copyright {
2681		grid-area: copyright;
2682		font-size: 13px;
2683		font-weight: 300;
2684		line-height: 1.6;
2685		border-top: 1px solid white;
2686		padding: 1.875rem 0;
2687	}
2688	.footer__copyright__corporate {
2689		display: flex;justify-content:space-between;
2690		gap: 2.8rem;
2691	}
2692	.footer__copyright__attribution {
2693		margin-top: 2.7rem;
2694	}
2695	.footer__sns {
2696		align-self: end;
2697	}
2698	.footer__sns .sns__link svg {
2699		fill: var(--color-quinary);
2700	}
2701	.footer__copyright__attribution a {
2702		text-decoration: none;
2703		transition: color 0.2s ease;
2704	}
2705	.footer__copyright__attribution a:hover,
2706	.footer__copyright__attribution a:focus {
2707		color: var(--color-secondary);
2708	}
2709	.footer .jumpem img {
2710		display: inline-block;
2711		line-height: 1;
2712		height: 1em;
2713		width: auto;
2714		vertical-align: text-bottom;
2715	}
2716	@media(max-width:767px){
2717		.footer__menu .menu .menu__item:nth-of-type(4n){
2718			padding-bottom: 48px;
2719		}
2720	}
2721	@media(min-width:768px){
2722		
2723	}
2724	@media(min-width: 992px) {
2725		.footer-outro__container {
2726			margin: 0 var(--x-gap);
2727		}
2728		.footer-outro__pattern-1 {
2729			width: 219px;top:-108px;
2730		}
2731		.footer__inner {
2732			grid-template-columns: repeat(4, auto);
2733			grid-template-areas:"values values values values"
2734			"contact menu menu menu"
2735			"partnerships partnerships certifications sns"
2736			"copyright copyright copyright copyright"!important;
2737			gap: 3rem;
2738			padding: var(--y-gap) var(--x-gap);
2739		}
2740		.footer__values {font-size:28px;line-height:1.2;max-width:50%;}
2741		.footer__sns {
2742		justify-self: end;
2743				padding-bottom: .7rem;
2744		}
2745		.footer__menu {
2746			flex-direction: row;
2747		}
2748		.footer__menu .menu {
2749			display: grid;
2750			grid-auto-flow: column;
2751			grid-template-columns: repeat(2, auto);
2752			grid-template-rows: repeat(5, auto);
2753			justify-content: start;
2754			gap: 1.675rem var(--grid-gap);
2755			line-height: 1.2;
2756			margin-top: 0;
2757		}
2758		.footer__menu .menu .menu__link {
2759			padding-left: 0;
2760		}
2761		.footer__menu__utilities .menu {
2762			grid-template-rows: repeat(4, auto);
2763			margin-top: 0;
2764			margin-left: var(--grid-gap);
2765		}
2766		.footer__partnerships {
2767			/*justify-self: end;*/
2768		}
2769		.footer__copyright {
2770			grid-column: 1 / -1;
2771			display: flex;
2772			justify-content: space-between;
2773			align-items: center;
2774			margin-top: -0.5rem;
2775		}
2776		.footer__copyright__corporate {
2777			align-items: center;
2778			flex-direction: row;
2779			gap: 2.2rem;
2780		}
2781		.footer__copyright__attribution {
2782			margin-top: 0;
2783		}
2784		.footer__certifications {
2785			margin-top: 2.6rem;
2786		}
2787	}
2788	@media(min-width: 1200px) {
2789		.footer__menu .menu {
2790			gap: 1.275rem 8.8rem;
2791		}
2792		.footer__menu__utilities .menu {
2793			gap: 1.275rem 7.3rem;
2794			margin-left: 6.4rem;
2795		}
2796	}
2797</style>
2798
2799<style>
2800.menu__link {
2801    position: relative;
2802    font-weight: 400;
2803    transition: opacity .2s ease-in-out;color:var(--color-primary);
2804}
2805
2806.menu__link:hover,
2807.menu__link:focus {
2808    opacity: .5;
2809    text-decoration: none;
2810}
2811
2812@media(min-width: 992px) {
2813
2814    /*.menu__link::after {
2815        content: '';
2816        position: absolute;
2817        bottom: 2px;
2818        left: 0;
2819        height: 6px;
2820        width: 0;
2821        transform: translate(0, 50%);
2822        background-color: var(--color-secondary);
2823        opacity: 1;
2824        transition: width .2s ease-in-out;
2825        z-index: -1;
2826    }*/
2827
2828    .menu__link:hover,
2829    .menu__link:focus {
2830        opacity: 1;
2831        text-decoration: none
2832    }
2833
2834    
2835    
2836}
2837</style>
2838<style>
2839  .navbar-apply {
2840    /* padding: 0; */
2841  }
2842  .navbar-apply {
2843    margin-right:1.25rem;
2844  }
2845  .navbar-apply:last-of-type {
2846    margin-right:0;
2847  }
2848  .navbar-apply > * {
2849    /*padding: .785rem .94rem;*/
2850  }
2851  .navbar-apply__icon {
2852    display: inline-flex;
2853    background-image: url('https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/pattern-1.png');
2854    background-size: contain;
2855  }
2856</style>
2857<style>
2858  .header-3 {
2859    --background-color: var(--custom-background-color, var(--color-quaternary));
2860    --text-color: var(--custom-text-color, var(--color-quinary));
2861    --pattern-color: var(--custom-pattern-color, var(--color-primary));
2862    position: relative;
2863    background-color: var(--background-color);
2864    color: var(--text-color);
2865  }
2866  .header-3__text {
2867    position: relative;
2868    padding: clamp(8rem, var(--y-gap), var(--y-gap)) var(--x-gap) var(--x-gap);
2869  }
2870  .header-3__text::before {
2871    content: '';
2872    position: absolute;
2873    top: 0;
2874    left: 0;
2875    width: 100%;
2876    height: 100%;
2877    background-color: var(--pattern-color);
2878    mask-image: url('https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/rebrand/pattern-1.svg');
2879    mask-repeat: repeat-x;
2880    pointer-events: none;
2881  }
2882  .header-3__title {
2883    -webkit-text-stroke-width: 1.5px;
2884    -webkit-text-stroke-color: var(--text-color);
2885    font-style: normal;
2886    font-weight: 400;
2887    line-height: 100%;
2888    letter-spacing: 0.0493em;
2889    color: var(--text-color);
2890    margin-bottom: var(--x-gap);
2891  }
2892  .header-3__subheading {
2893    font-size: 2rem;
2894    font-family:'ABC-Ginto',sans-serif;
2895    font-style: normal;
2896    font-weight: 400;
2897    line-height: 100%;
2898    letter-spacing: 3.5px;
2899    text-transform: uppercase;
2900    margin-bottom: .5rem;
2901  }
2902  .header-3__content {
2903    font-size: 1.1875rem;
2904    font-style: normal;
2905    font-weight: 300;
2906    line-height: 140%;
2907  }
2908  .header-3__content *:last-child {
2909    margin-bottom: 0;
2910  }
2911  @media(min-width: 992px) {
2912    .header-3 {
2913      display: grid;
2914      grid-template-columns: 50% 50%;
2915    }
2916    .header-3__image {
2917      width: 100%;
2918      height: 473px;
2919      object-fit: cover;
2920      min-height: 100%;
2921    }
2922    .header-3__text__container {
2923      max-width: 564px;
2924    }
2925  }
2926</style>
2927<style>  
2928  .floor-plans-section-2 {
2929    background: var(--color-senary);
2930  }
2931  .floor-plans-section-2__container {
2932    display: grid;
2933    grid-template-areas: 
2934      "primary"
2935      "featured-link"
2936      "featured-item-1"
2937      "featured-item-2"
2938    ;
2939    gap: 1.5rem;
2940    padding: var(--y-gap) var(--x-gap);
2941    max-width: 660px;
2942    margin: 0 auto;
2943  }
2944  .floor-plans-section-2__primary {
2945    grid-area: primary;
2946    color: var(--color-quinary);
2947    background: var(--color-quaternary);
2948  }
2949  .floor-plans-section-2__primary__text {
2950    display: flex;
2951    flex-direction: column;
2952    padding: var(--x-gap) 3.5rem var(--x-gap) var(--x-gap);
2953  }
2954  .floor-plans-section-2__primary__title {
2955    font-size: 1.5rem;
2956    line-height: 1; 
2957    padding-bottom: 0.5rem;
2958    margin-bottom: auto;
2959  }
2960  .floor-plans-section-2__primary__content p {
2961    font-size: 0.875rem;
2962    font-weight: 600;
2963    line-height: 1.4;
2964  }
2965  .floor-plans-section-2__link {
2966    grid-area: featured-link;
2967    display: flex;
2968    justify-content: space-between;
2969    align-items: center;
2970    font-size: 1rem;
2971    font-style: normal;
2972    font-weight: 400;
2973    line-height: 1;
2974    letter-spacing: 0.11rem;
2975    text-transform: uppercase;
2976    padding: 1.5rem 0;
2977    border-bottom: 1px solid rgba(42, 42, 42, .33);
2978  }
2979  .floor-plans-section-2__link:hover,
2980  .floor-plans-section-2__link:focus {
2981    text-decoration: none;
2982  }
2983  .floor-plans-section-2__link:hover .impact:last-child,
2984  .floor-plans-section-2__link:focus .impact:last-child {
2985    color: var(--color-quaternary);
2986    text-decoration: underline;
2987  }
2988  .floor-plans-section-2__featured-item {
2989    display: grid;
2990  }
2991  .floor-plans-section-2__featured-item--1 {
2992    grid-area: featured-item-1;
2993    color: var(--color-secondary);
2994    background: var(--color-tertiary);
2995  }
2996  .floor-plans-section-2__featured-item--2 {
2997    grid-area: featured-item-2;
2998    color: var(--color-tertiary);
2999    background: var(--color-secondary);
3000  }
3001  .floor-plans-section-2__featured-item__title {
3002    font-size: 1.1875rem;
3003    font-style: normal;
3004    font-weight: 400;
3005    line-height: 1;
3006    padding: 1.5rem 3rem 1.5rem 1.5rem;
3007    margin: 0;
3008  }
3009  .floor-plans-section-2__featured-item__title::after {
3010    content: '';
3011    display: inline-block;
3012    width: 1.5rem;
3013    height: 1.5rem;
3014    mask-image: url('https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/rebrand/arrow-right.png');
3015    mask-size: contain;
3016    mask-repeat: no-repeat;
3017    background-color: currentColor;
3018    vertical-align: text-bottom;
3019  }
3020  .floor-plans-section-2__featured-item:hover,
3021  .floor-plans-section-2__featured-item:focus {
3022    text-decoration: none;
3023  }
3024  .floor-plans-section-2__featured-item:hover .floor-plans-section-2__featured-item__title::after,
3025  .floor-plans-section-2__featured-item:focus .floor-plans-section-2__featured-item__title::after {
3026    transform: translateX(0.25rem);
3027    transition: transform 0.3s ease;
3028  }
3029  @media(min-width: 992px) {
3030    .floor-plans-section-2__container {
3031      grid-template-areas: 
3032        "primary featured-link featured-link"
3033        "primary featured-item-1 featured-item-2";
3034      grid-template-columns: 2fr 1fr 1fr;
3035      max-width: 1440px;
3036    }
3037    .floor-plans-section-2__primary {
3038      display: grid;
3039      grid-template-columns: 1fr 1fr;
3040    }
3041    .floor-plans-section-2__primary__image {
3042      height: 100%;
3043      object-fit: cover;
3044    }
3045  }
3046</style>
3047<style>  
3048  .floor-plans-section-3 {
3049    background: var(--color-primary);
3050    color: var(--color-quinary);
3051  }
3052  .floor-plans-section-3__container {
3053    padding: var(--y-gap) var(--x-gap);
3054  }
3055  .floor-plans-section-3__title {
3056    font-size: 2.5rem;
3057    font-style: normal;
3058    font-weight: 400;
3059    line-height: 100%; /* 2.5rem */
3060    margin-bottom: 3rem;
3061  }
3062  .floor-plans-section-3__image {
3063    margin: 48px 0;
3064  }
3065  .floor-plans-section-3__content {
3066    margin: 1.5rem auto;
3067  }
3068
3069  .floor-plans-section-3__intro ul:not([class]) li:before,
3070  .floor-plans-section-3__content ul:not([class]) li:before {
3071    content: url("https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/rebrand/bullet-alt.svg");
3072  }
3073  @media (min-width: 992px) {
3074    .floor-plans-section-3__container {
3075      display: grid;
3076      grid-template-columns: 34.222% 1fr;
3077    }
3078  }
3079</style>
3080<style>
3081.accordion-item { border-top: 1px solid currentColor; }
3082.accordion-item:last-of-type { border-bottom: 1px solid currentColor; }
3083/* .accordion-item__inner { margin-bottom: 2.375rem; } */
3084.accordion-item--open { border-bottom: none; }
3085.accordion-item__inner { padding-bottom: 2rem; }
3086.accordion-item__title { padding: 3rem 0 1rem; display: flex; align-items: center; font-size: 1.5rem; line-height: 1; cursor: pointer; text-transform: capitalize; margin-bottom:0; }
3087.accordion-item__content { display: none; opacity: 0; transition: max-height .4s ease, opacity .4s ease; max-height: 0; overflow: hidden;padding-left:24px;}
3088.accordion-item--open .accordion-item__content,
3089.accordion-item--collapsing .accordion-item__content { display: block; opacity: 1;}
3090.accordion-item__button { position: relative; display: block; width: 100%; height: 100%; font-size: 1.5rem; padding-left: 24px; }
3091.accordion-item__button:before {
3092  position: absolute; 
3093  top: .2em; 
3094  left: 0; 
3095  content: ''; 
3096  /* background: url('https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/rebrand/accordion-arrow.svg') no-repeat center center;  */
3097  mask-image: url('https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/rebrand/accordion-arrow.svg');
3098  mask-repeat: no-repeat;
3099  mask-position: center;
3100  mask-size: contain;
3101  background: currentColor;
3102  display: inline-block; 
3103  width: 12px; 
3104  height: 12px; 
3105  font-size: 16px; 
3106  line-height: 1; 
3107  margin-right: 1.2rem; 
3108  transform: rotate(0deg); 
3109  transition: transform .4s ease;
3110}
3111.accordion-item--collapsing .accordion-item__content { opacity: 0; }
3112.accordion-item--open .accordion-item__content { opacity: 1; }
3113.accordion-item--open .accordion-item__button:before { transform: rotate(180deg); }
3114@media(min-width: 992px ){
3115    .accordion-item {  }
3116    .accordion-item__content {padding-left: clamp(1rem, 5.62vw, 5.62rem);}
3117    .accordion-item__button {padding-left: clamp(1rem, 5.62vw, 5.62rem);}
3118    .accordion-item__button:before { width: 18px; height: 18px; font-size: 20px; }
3119    /* .accordion-item--open .accordion-item__title {padding-bottom:16px;} */
3120}
3121</style>
3122<style>
3123  .fee-section-1 {
3124    background: var(--color-quinary);
3125  }
3126  .fee-section-1__container {
3127    background: var(--color-quinary);
3128    padding: var(--y-gap) var(--x-gap);
3129  }
3130  .fee-section-1__text {
3131    text-wrap: balance;
3132  }
3133  .fee-section-1__title {
3134    font-size: 2.5rem;
3135    font-style: normal;
3136    font-weight: 400;
3137    line-height: 100%; /* 2.5rem */
3138  }
3139  @media(min-width: 992px) {
3140    .fee-section-1__container {
3141      display: grid;
3142      grid-template-columns: 34.222% 1fr;
3143    }
3144    .fee-section-1__text {
3145      padding-right: 3rem;
3146    }
3147  }
3148</style>
3149<style>
3150  .fee-accordion__table { 
3151    display: table;
3152    width: 100%;
3153    margin-top: .5rem;
3154    margin-bottom: 3rem;
3155    border-spacing: 1px;
3156  }
3157  .fee-accordion__table th,
3158  .fee-accordion__table td {
3159    padding: .5rem 1rem;
3160    text-align: left;
3161  }
3162  .fee-accordion__table thead tr:nth-child(1) {
3163    font-weight: bold;
3164    background: rgba(255, 255, 255, 0.75);
3165  }
3166  .fee-accordion__table tr {
3167    background: rgba(255, 255, 255, 0.50);
3168  }
3169</style>
3170<style>  
3171  .floor-plans-section-4 {
3172    /* Gradient from fees section to footer outro bg */
3173    background: linear-gradient(180deg, var(--color-quinary) 0%, #fcfbf7 100%);
3174  }
3175  .floor-plans-section-4__container {
3176    display: flex;
3177    flex-direction: column;
3178  }
3179  .floor-plans-section-4__callout {
3180    color: var(--color-tertiary);
3181    background: var(--color-senary);
3182  }
3183  .floor-plans-section-4__callout:nth-child(2) {
3184    color: var(--color-tertiary);
3185    background: var(--color-secondary);
3186  }
3187  .floor-plans-section-4__callout__text {
3188    padding: 3rem 3.5rem 3rem 3rem;
3189  }
3190  .floor-plans-section-4__callout__title {
3191    font-size: 1.5rem;
3192    font-style: normal;
3193    font-weight: 400;
3194    line-height: 100%; /* 1.5rem */
3195    margin: 0;
3196  }
3197  .floor-plans-section-4__callout__image {
3198    width: 100%;
3199    align-self: stretch;
3200    aspect-ratio: 4/3;
3201    object-fit: cover;
3202  }
3203  @media(min-width: 512px) {
3204    .floor-plans-section-4__container {
3205      gap: 1.5rem;
3206    }
3207    .floor-plans-section-4__callout {
3208      flex: 1;
3209      display: flex;
3210      align-items: center;
3211      justify-content: space-between;
3212    }
3213    .floor-plans-section-4__callout__image {
3214      width: 21.25rem;
3215    }
3216  }
3217  @media(min-width: 992px) {
3218    .floor-plans-section-4__container {
3219      flex-direction: row;
3220      gap: 0;
3221    }
3222    /* Restrict to 2 lines */
3223    .floor-plans-section-4__callout__title {
3224      max-width: 250px; 
3225    }
3226  }
3227</style>
3228<style>
3229.sns { --gap: 9.5px; 
3230/* text-align: right;  */
3231padding: 0; margin: calc(-1 * var(--gap)); flex-shrink: 0; }
3232.sns__item { display: inline-block; vertical-align: bottom; margin: var(--gap);  }
3233.sns__link { display: flex; justify-content: center; align-items: center; }
3234.sns__link svg { transition: fill .2s ease; fill: white; width: 28px; height: 28px; }
3235.sns__link:hover svg { fill: var(--color-secondary); }
3236</style>
3237
3238
3239		
3240
3241				<!-- Google Tag Manager -->
3242		
3242<script>
vendor: 346 bytes, lines 3242-3246
3242(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
3243						new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
3244					j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
3245					'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
3246			})(window,document,'script','dataLayer','
3246GTM-PQ2Q7XJ
vendor: 3 bytes, line 3246
3246');
3246</script>
3246
3247		<!-- End Google Tag Manager -->
3248	</head>
3249
3250<body class="page-floor-plans">
3251
3252				<!-- Google Tag Manager (noscript) -->
vendor: 70 bytes, lines 3252-3253
3252
3253		<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
3253GTM-PQ2Q7XJ
vendor: 85 bytes, lines 3253-3254
3253" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
3254		
3254<!-- End Google Tag Manager (noscript) -->
3255	
3256	 	
3257			<nav class="navbar">
3258
3259		<div class="navbar__inner container">
3260
3261			<a href="https://www.therivesandiego.com" class="navbar__logo">
3262				
3263    <img 
3264                class="img-fluid "
3265        src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB3aWR0aD0iOTkuMTExOSIgaGVpZ2h0PSI1MyIgdmVyc2lvbj0iMS4xIiB2aWV3Qm94PSIwIDAgOTkuMTExOSA1MyI+CiAgPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDMwLjEuMCwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDIuMS4xIEJ1aWxkIDEzNikgIC0tPgogIDxkZWZzPgogICAgPHN0eWxlPgogICAgICAuc3QwIHsKICAgICAgICBmaWxsOiAjMmEyYTJhOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvZGVmcz4KICA8cGF0aCBjbGFzcz0ic3QwIiBkPSJNOTcuOTgwNCwyNi4xOTQ3YzAtNC41MzUyLTEuMTcxOC03Ljk4MjQtMy4yNTE5LTEwLjI4NTctMi4wNjc3LTIuMjg3OC01LjE1ODMtMy41ODM2LTkuMjk2OC0zLjU4MzYtNC41MzIxLDAtOC4zNTEzLDEuODEwNC0xMC42MDE5LDUuMDQ5OGgwYy0xLjU1MzEsMi4yMzUxLTIuNTQyLDUuMjQyLTIuNTQyLDguOTE1NXMuODQzMiw2LjM2MTEsMi4zMDAyLDguNTU1OWwuMTQyNi4yMTA4aDB2LjAwOTNjMi4xODg2LDMuMjExNiw1Ljg4NjgsNC45OTQsMTEuMDkxNyw0Ljk5NHYxLjAzNTRjLTUuNDUyOCwwLTkuNTItMS44ODE3LTExLjk1MDMtNS40NDY2LTEuNjg2NC0yLjQyNzMtMi42Mjg4LTUuNTQ1OC0yLjYyODgtOS4zNTg4czEuMDQxNi03LjA4MDMsMi43MjgtOS41MDc2YzIuNDgtMy41NjUsNi42NDMyLTUuNDk2MiwxMS40NTQzLTUuNDk2MmguNDA2MWM4LjQ3MjIuMTczNiwxMy4xNzc5LDUuNjQxOSwxMy4xNzc5LDE0LjkwNDZ2Mi4yNzg1aC0xOS4zMzc1Yy4yNDgsMS41ODQxLjY0NDgsMi44NzM3LDEuMjg5NiwzLjg2MjUuOTQyNCwxLjMzNjEsMi40MzA0LDIuMDgwMSw0LjY2MjMsMi4wODAxczMuOTY3OS0uOTM5Myw0LjY2MjMtMi44NzA2aDguODI1NmMtLjk5Miw1LjY5NDYtNi4xOTY4LDkuNTU3Mi0xMy4yODk1LDkuNTU3MnYtMS4wMzU0YzYuMTcyLDAsMTAuNjA4MS0zLjA1MzUsMTEuOTc1MS03LjQ4MzNoLTYuODM1NGMtMS4wMjMsMS45NzQ3LTMuMDUzNSwyLjg3MDYtNS4zMzUsMi44NzA2LTIuNDg5MywwLTQuMzMwNi0uODQ5NC01LjUwODYtMi41MTcybC0uMDA5My0uMDE1NS0uMDA5My0uMDE1NWMtLjc1OTUtMS4xNjU2LTEuMTg3My0yLjYxNjQtMS40NDQ2LTQuMjY4NmwtLjE4Ni0xLjE5NjZoMTkuNTExMXYtMS4yNDMxWk0zNy4yODYzLDEyLjE3OTd2MjguMDczMmgtOC43NzZWMTIuMTc5N2g4Ljc3NlpNNTUuMTg1NSwzMi40ODE0bC4xNDg4LDIuODI0MWgxLjA5MTJsLjE5ODQtMi44MjQxLDUuNDAzMi0yMC4zMDE2aDkuMTIzMmwtOC4wMzIsMjguMDczMmgtMTQuNTI2NGwtNy45ODI0LTI4LjA3MzJoOS4xNzI4bDUuNDAzMiwyMC4zMDE2aDBaTTIzLjExMDIsMjAuNjk1M2MwLTIuODY3NS0uNjItNC45NTY4LTEuNjg2NC02LjMwODQtMS4wMzU0LTEuMzExMy0yLjU5NDctMi4wNjE1LTQuODE0Mi0yLjA2MTUtMS41NTMxLDAtMi44MzAzLjMzNDgtMy45MDksMS4wMTY4LTEuMDg1LjY4NTEtMi4wNTIyLDEuNzY3LTIuOTA3OCwzLjM4MjFsLS4yOTE0LjU1MThoLTMuNTcxMmwxLjI4OTYtNC4xMTA1SDEuMDM1NHYyNS45NTI5aDYuNzA1MnYtMTQuMTE0MWMwLTEuOTQ5OS4zMzQ4LTMuNTg2NywxLjA4NS00Ljc3MDguNzkwNS0xLjI0NjIsMS45OTk1LTEuOTA5NiwzLjQ3Mi0xLjkwOTYsMS4yMTUyLDAsMi4zMTI2LjM3ODIsMy4wNDczLDEuMzk1LjU4OS44MTUzLjg0NjMsMS45MTU4LjkwMjEsMy4yMTE2aDYuODY2NHYtMi4yMzJsLS4wMDMxLS4wMDMxWk00OS4zNzMsMzkuMjE3NmgxMi45NjRsNy40Mzk5LTI2LjAwMjVoLTYuOTUzMmwtNS4xNzM4LDE5LjQzNjctLjI2MDQsMy42ODloLTMuMDM4bC0uMTk1My0zLjY5ODMtNS4xNzA3LTE5LjQyNDNoLTcuMDA1OWw3LjM5MzQsMjYuMDAyNXYtLjAwMzFaTTI5LjU0NTcsMzkuMjE3Nmg2LjcwNTJWMTMuMjE1MWgtNi43MDUydjI2LjAwMjVaTTg1LjQzNDksMTYuODM5YzEuODE5NywwLDMuMzkxNC40OTkxLDQuNTE5NywxLjYyNzUsMS4xMjUzLDEuMTI1MywxLjY2MTYsMi43MjQ5LDEuNzE3NCw0LjYyODJsLjAzMSwxLjA2NjRoLTEzLjA5NzNsLjIwMTUtMS4yMDU5Yy4yMTctMS4yOTU4LjY1NDEtMi40NzY5LDEuMjk1OC0zLjQxNjIsMS4yMDktMS44NjYyLDMuMTQ2NS0yLjc0OTcsNS4zMzUtMi42OTdsLS4wMDMxLS4wMDMxWk04NS40MzE4LDE3Ljg3NDRjLTEuODg0OC0uMDQ5Ni0zLjQ3Mi42OTQ0LTQuNDYzOSwyLjIyODlsLS4wOTkyLjE1MTljLS40OTI5Ljc3MTktLjg1MjUsMS43NTQ2LTEuMDM4NSwyLjg2NzVoMTAuODA5NmMtLjA5OTItMy40NjU4LTEuOTM0NC01LjI0ODItNS4yMDQ4LTUuMjQ4MmgtLjAwMzFaTTM3LjMzNTksMHY3LjM3NzloLTguNzc2VjBoOC43NzZaTTI5LjU5NTMsNi4zNDI1aDYuNzA1MlYxLjAzNTRoLTYuNzA1MnY1LjMwNzFaTTI0LjE0NTYsMjMuOTY1OGgtOC45MjQ4di0uNDQ2NGMwLTIuOTY5OC0uOTQyNC00LjE2MDEtMi45MjY0LTQuMTYwMS0yLjIzMiwwLTMuNTIxNiwxLjkzMTMtMy41MjE2LDUuNjQ1djE1LjE1MjZIMFYxMi4xMzAxaDguNjI3MmwtMS4yODk2LDQuMTEwNWgxLjUzNzZjMS44MzUyLTMuNDY1OCw0LjMxNTEtNC45NTA2LDcuNzM0NC00Ljk1MDZoLjIyOTRjNC44MDguMTA4NSw3LjMwNjYsMy41MDkyLDcuMzA2Niw5LjQwODR2My4yNjc0WiIvPgogIDxwYXRoIGNsYXNzPSJzdDAiIGQ9Ik0wLDB2MS42MjEzaDIuMjg3OHY1LjcxOTRoMS45MDY1VjEuNjIxM2gyLjI4NzhWMEgwWk0xMy45MTg4LDB2Mi43NjUyaC0yLjU3M1YwaC0xLjkwNjV2Ny4zNDA3aDEuOTA2NXYtMi44NjEzaDIuNTczdjIuODYxM2gxLjkwNjVWMGgtMS45MDY1Wk0xOC42ODY2LDB2Ny4zNDA3aDUuMjQydi0xLjUyNTJoLTMuMzM1NnYtMS40MjkxaDMuMDUwNHYtMS41MjUyaC0zLjA1MDR2LTEuMzM2MWgzLjI0MjZWMGgtNS4xNDlaIi8+CiAgPHBhdGggY2xhc3M9InN0MCIgZD0iTTIwLjg5OTksNTIuOTc4M2MtMS4zNTE2L
3265DAtMi41NjM3LS4zODQ0LTMuNDM3OS0uOTg1OHYtMS41Nzc5Yy45My42NDc5LDIuMDMwNSwxLjA2NjQsMy4yNzk4LDEuMDY2NCwxLjEwMDUsMCwxLjY4OTUtLjMwNjksMS42ODk1LS45NTE3LDAtLjQ1MjYtLjI4NTItLjcxNjEtMS4yMjQ1LS45NTE3bC0xLjQ3NTYtLjMxNjJjLTEuNjMzNy0uMzc1MS0yLjI5MDktMS4xNDctMi4yOTA5LTIuMjQ3NSwwLTEuMzk1LDEuMjM2OS0yLjQwNTYsMy41NDAyLTIuNDA1NiwxLjQ2MzIsMCwyLjQ1MjEuNDE4NSwzLjA0MTEuODI3N3YxLjUzMTRjLS42NTcyLS40Nzc0LTEuNjY3OC0uODQwMS0yLjg4My0uODQwMXMtMS43MjM2LjMxOTMtMS43MjM2Ljg1MjVjMCwuMzg0NC4yNzI4LjYyMzEsMS4wODgxLjgwNmwxLjU0MzguMzQxYzEuNjU1NC4zNjI3LDIuMzcxNSwxLjA3ODgsMi4zNzE1LDIuMjk0LDAsMS41NDM4LTEuMzczMywyLjU2MzctMy41MTg1LDIuNTYzN3YtLjAwNjJaTTI2LjA4LDUyLjc2MTNsMy4wMjg3LTcuOTQyMWgyLjY2NmwyLjk4NTMsNy45NDIxaC0xLjk3NDdsLS42ODItMS44ODQ4aC0zLjQxNjJsLS42ODIsMS44ODQ4aC0xLjkyODIuMDAzMVpNMjkuMTQyNyw0OS42NTJoMi41MjAzbC0xLjI1ODYtMy40OTM3LTEuMjU4NiwzLjQ5MzdoLS4wMDMxWk0zNy4xNjU0LDUyLjc2MTN2LTcuOTQyMWgyLjYxMDJsMy42NjQyLDUuOTQ1N3YtNS45NDU3aDEuNzE0M3Y3Ljk0MjFoLTIuNDczOGwtMy43OTEyLTYuMDk0NXY2LjA5NDVoLTEuNzIzNlpNNTIuNjk2Miw1Mi43NjEzdi03Ljk0MjFoMy45MTUyYzIuOTk0NiwwLDQuNTA0MiwxLjY1ODUsNC41MDQyLDMuOTM2OXMtMS42MTIsNC4wMDUxLTQuODExMSw0LjAwNTFoLTMuNjA4NFpNNTYuMjc5OCw1MS4yODg4YzEuODE2NiwwLDIuODE0OC0uOTY0MSwyLjgxNDgtMi41NDIsMC0xLjQ1MzktLjgxODQtMi40NTIxLTIuNjQ0My0yLjQ1MjFoLTEuODUwN3Y0Ljk5NGgxLjY4MDJaTTYzLjg3MTYsNTIuNzYxM3YtNy45NTQ1aDEuOTA2NXY3Ljk1NDVoLTEuOTA2NVpNNjkuMDIwNiw1Mi43NjEzdi03Ljk0MjFoNi41NDcxdjEuNDc1NmgtNC42NDA2djEuNjY3OGg0LjM2Nzh2MS4zODU3aC00LjM2Nzh2MS45NDA2aDQuNjg3MXYxLjQ3NTZoLTYuNTkzNnYtLjAwMzFaTTgyLjY4MjEsNTIuOTkwN2MtMi45NzI5LDAtNC44MzI4LTEuODA0Mi00LjgzMjgtNC4xODhzMS43MDE5LTQuMjA5Nyw1LjAzNzQtNC4yMDk3YzEuNTE5LDAsMi41NzYxLjM0MSwzLjM4MjEuNzg0M3YxLjcxNDNjLS43MjU0LS40Nzc0LTEuODA0Mi0uODI3Ny0zLjA4NzYtLjgyNzctMi4zNzE1LDAtMy4zNDgsMS4xNjg3LTMuMzQ4LDIuNTc2MSwwLDEuNTA5NywxLjEyMjIsMi41NTQ0LDIuOTI2NCwyLjU1NDQsMS4zOTUsMCwyLjI5MDktLjY0NzksMi40NjE0LTEuNzkxOGgtNC4yNjU1bC4zNTM0LTEuNDA3NGg1LjY1MTJ2LjgxODRjMCwyLjU5NzgtMS43MTQzLDMuOTgzNC00LjI3NzksMy45ODM0di0uMDA2MlpNOTMuOTU2Nyw1M2MtMi44NDg5LDAtNC43NTUzLTEuODcyNC00Ljc1NTMtNC4yMzE0czEuOTA2NS00LjE4OCw0Ljc2NDYtNC4xODgsNC43NDI5LDEuODA0Miw0Ljc0MjksNC4xODgtMS45MTg5LDQuMjMxNC00Ljc1NTMsNC4yMzE0aC4wMDMxWk05My45NTY3LDUxLjM3ODdjMS42NTg1LDAsMi43MjQ5LTEuMTAwNSwyLjcyNDktMi41OTc4cy0xLjA2NjQtMi41NzYxLTIuNzI0OS0yLjU3NjEtMi43MzQyLDEuMDg4MS0yLjczNDIsMi41NzYxLDEuMDY2NCwyLjU5NzgsMi43MzQyLDIuNTk3OFoiLz4KICA8cGF0aCBjbGFzcz0ic3QwIiBkPSJNOTcuOTgwNCwyNi4xOTQ3YzAtNC41MzUyLTEuMTcxOC03Ljk4MjQtMy4yNTE5LTEwLjI4NTctMi4wNjc3LTIuMjg3OC01LjE1ODMtMy41ODM2LTkuMjk2OC0zLjU4MzYtNC41MzIxLDAtOC4zNTEzLDEuODEwNC0xMC42MDE5LDUuMDQ5OC0xLjU1MzEsMi4yMzUxLTIuNTQyLDUuMjQyLTIuNTQyLDguOTE1NXMuODQzMiw2LjM2MTEsMi4zMDAyLDguNTU1OWwuMTQyNi4yMTA4di4wMDkzYzIuMTg4NiwzLjIxMTYsNS44ODY4LDQuOTk0LDExLjA5MTcsNC45OTR2MS4wMzU0Yy01LjQ1MjgsMC05LjUyLTEuODgxNy0xMS45NTAzLTUuNDQ2Ni0xLjY4NjQtMi40MjczLTIuNjI4OC01LjU0NTgtMi42Mjg4LTkuMzU4OHMxLjA0MTYtNy4wODAzLDIuNzI4LTkuNTA3NmMyLjQ4LTMuNTY1LDYuNjQzMi01LjQ5NjIsMTEuNDU0My01LjQ5NjJoLjQwNjFjOC40NzIyLjE3MzYsMTMuMTc3OSw1LjY0MTksMTMuMTc3OSwxNC45MDQ2djIuMjc4NWgtMTkuMzM3NWMuMjQ4LDEuNTg0MS42NDQ4LDIuODczNywxLjI4OTYsMy44NjI1Ljk0MjQsMS4zMzYxLDIuNDMwNCwyLjA4MDEsNC42NjIzLDIuMDgwMXMzLjk2NzktLjkzOTMsNC42NjIzLTIuODcwNmg4LjgyNTZjLS45OTIsNS42OTQ2LTYuMTk2OCw5LjU1NzItMTMuMjg5NSw5LjU1NzJ2LTEuMDM1NGM2LjE3MiwwLDEwLjYwODEtMy4wNTM1LDExLjk3NTEtNy40ODMzaC02LjgzNTRjLTEuMDIzLDEuOTc0Ny0zLjA1MzUsMi44NzA2LTUuMzM1LDIuODcwNi0yLjQ4OTMsMC00LjMzMDYtLjg0OTQtNS41MDg2LTIuNTE3MmwtLjAwOTMtLjAxNTUtLjAwOTMtLjAxNTVjLS43NTk1LTEuMTY1Ni0xLjE4NzMtMi42MTY0LTEuNDQ0Ni00LjI2ODZsLS4xODYtMS4xOTY2aDE5LjUxMTF2LTEuMjRoMHYtLjAwMzFaTTM3LjI4NjMsMTIuMTc5N3YyOC4wNzMyaC04Ljc3NlYxMi4xNzk3aDguNzc2Wk01NS4xODU1LDMyLjQ4MTRsLjE0ODgsMi44MjQxaDEuMDkxMmwuMTk4NC0yLjgyNDEsNS40MDMyLTIwLjMwMTZoOS4xMjMybC04LjAzMiwyOC4wNzMyaC0xNC41MjY0bC03Ljk4MjQtMjguMDczMmg5LjE3MjhsNS40MDMyLDIwLjMwMTZoMFpNMjMuMTEwMiwyMC42OTUzYzAtMi44Njc1LS42Mi00Ljk1NjgtMS42ODY0LTYuMzA4NC0xLjAzNTQtMS4zMTEzLTIuNTk0Ny0yLjA2MTUtNC44MTQyLTIuMDYxNS0xLjU1MzEsMC0yLjgzMDMuMzM0OC0zLjkwOSwxLjAxNjgtMS4wODUuNjg1MS0yLjA1MjIsMS43NjctMi45MDc4LDMuMzgyMWwtLjI5MTQuNTUxOGgtMy41NzEybDEuMjg5Ni00LjExMDVIMS4wMzU0djI1Ljk1MjloNi43MDUydi0xNC4xMTQxYzAtMS45NDk5LjMzNDgtMy41ODY3LDEuMDg1LTQuNzcwOC43OTA1LTEuMjQ2MiwxLjk5OTUtMS45MDk2LDMuNDcyLTEuOTA5NiwxLjIxNTIsMCwyLjMxMjYuMzc4MiwzLjA0NzMsMS4zOTUuNTg5LjgxNTMuODQ2MywxLjkxNTguOTAyMSwzLjIxMTZoNi44NjY0di0yLjIzMmgwbC0uMDAzMS0uMDAzMVpNNDkuMzczLDM5LjIxNzZoMTIuOTY0bDcuNDM5OS0yNi4wMDI1aC02Ljk1MzJsLTUuMTczOCwxOS40MzY3LS4yNjA0LD
3265MuNjg5aC0zLjAzOGwtLjE5NTMtMy42OTgzLTUuMTcwNy0xOS40MjQzaC03LjAwNTlsNy4zOTM0LDI2LjAwMjVoMHYtLjAwMzFaTTI5LjU0NTcsMzkuMjE3Nmg2LjcwNTJWMTMuMjE1MWgtNi43MDUydjI2LjAwMjVaTTg1LjQzNDksMTYuODM5YzEuODE5NywwLDMuMzkxNC40OTkxLDQuNTE5NywxLjYyNzUsMS4xMjUzLDEuMTI1MywxLjY2MTYsMi43MjQ5LDEuNzE3NCw0LjYyODJsLjAzMSwxLjA2NjRoLTEzLjA5NzNsLjIwMTUtMS4yMDU5Yy4yMTctMS4yOTU4LjY1NDEtMi40NzY5LDEuMjk1OC0zLjQxNjIsMS4yMDktMS44NjYyLDMuMTQ2NS0yLjc0OTcsNS4zMzUtMi42OTdoMGwtLjAwMzEtLjAwMzFaTTg1LjQzMTgsMTcuODc0NGMtMS44ODQ4LS4wNDk2LTMuNDcyLjY5NDQtNC40NjM5LDIuMjI4OWwtLjA5OTIuMTUxOWMtLjQ5MjkuNzcxOS0uODUyNSwxLjc1NDYtMS4wMzg1LDIuODY3NWgxMC44MDk2Yy0uMDk5Mi0zLjQ2NTgtMS45MzQ0LTUuMjQ4Mi01LjIwNDgtNS4yNDgyaC0uMDAzMSwwWk0zNy4zMzU5LDB2Ny4zNzc5aC04Ljc3NlYwaDguNzc2Wk0yOS41OTUzLDYuMzQyNWg2LjcwNTJWMS4wMzU0aC02LjcwNTJ2NS4zMDRoMHYuMDAzMVpNMjQuMTQ1NiwyMy45NjU4aC04LjkyNDh2LS40NDY0YzAtMi45Njk4LS45NDI0LTQuMTYwMS0yLjkyNjQtNC4xNjAxLTIuMjMyLDAtMy41MjE2LDEuOTMxMy0zLjUyMTYsNS42NDV2MTUuMTUyNkgwVjEyLjEzMDFoOC42MjcybC0xLjI4OTYsNC4xMTA1aDEuNTM3NmMxLjgzNTItMy40NjU4LDQuMzE1MS00Ljk1MDYsNy43MzQ0LTQuOTUwNmguMjI5NGM0LjgwOC4xMDg1LDcuMzA2NiwzLjUwOTIsNy4zMDY2LDkuNDA4NHYzLjI2NzRaIi8+CiAgPHBhdGggY2xhc3M9InN0MCIgZD0iTTAsMHYxLjYyMTNoMi4yODc4djUuNzE5NGgxLjkwNjVWMS42MjEzaDIuMjg3OFYwSDBaTTEzLjkxODgsMHYyLjc2NTJoLTIuNTczVjBoLTEuOTA2NXY3LjM0MDdoMS45MDY1di0yLjg2MTNoMi41NzN2Mi44NjEzaDEuOTA2NVYwaC0xLjkwNjVaTTE4LjY4NjYsMHY3LjM0MDdoNS4yNDJ2LTEuNTI1MmgtMy4zMzU2di0xLjQyOTFoMy4wNTA0di0xLjUyNTJoLTMuMDUwNHYtMS4zMzYxaDMuMjQyNlYwaC01LjE0OVoiLz4KPC9zdmc+"
3266        width="99" 
3267        height="53" 
3268        alt="The Rive San Diego"
3269    >
3270
3271			</a>
3272
3273			<div class="navbar__quick-links">
3274				            <ul class="menu" role="menubar">
3275                    <li class="menu__item menu__item--current" role="none">
3276                <a 
3277                                      id="24"
3278                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-24" 
3279                  target="_self" 
3280                  href="https://www.therivesandiego.com/floor-plans/"
3281                  role="menuitem"
3282                >
3283                  Floor Plans <span class="sr-only">(current)</span>
3284                </a>
3285                                </li>
3286                    <li class="menu__item " role="none">
3287                <a 
3288                                      id="25"
3289                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-25" 
3290                  target="_self" 
3291                  href="https://www.therivesandiego.com/amenities/"
3292                  role="menuitem"
3293                >
3294                  Amenities 
3295                </a>
3296                                </li>
3297                    <li class="menu__item " role="none">
3298                <a 
3299                                      id="1274"
3300                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-1274" 
3301                  target="_self" 
3302                  href="https://www.therivesandiego.com/parents/"
3303                  role="menuitem"
3304                >
3305                  Parents 
3306                </a>
3307                                </li>
3308                    <li class="menu__item " role="none">
3309                <a 
3310                                      id="26"
3311                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-26" 
3312                  target="_self" 
3313                  href="https://www.therivesandiego.com/culture/"
3314                  role="menuitem"
3315                >
3316                  Culture 
3317                </a>
3318                                </li>
3319                    <li class="menu__item " role="none">
3320                <a 
3321                                      id="27"
3322                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-27" 
3323                  target="_self" 
3324                  href="https://www.therivesandiego.com/gallery/"
3325                  role="menuitem"
3326                >
3327                  Gallery 
3328                </a>
3329                                </li>
3330                </ul>
3331    			</div>
3332
3333			<div class="navbar__info">
3334
3335													<a 
3336						class="navbar__residents menu__link" 
3337						href="https://the-rive.residentportal.com/auth\" 
3338						target="_blank"
3339						rel="noopener "
3340					>
3341						<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.41132 14C4.11265 14 3.85843 13.8951 3.64865 13.6853C3.43887 13.4756 3.33398 13.2216 3.33398 12.9233V7.07667C3.33398 6.77889 3.43887 6.52489 3.64865 6.31467C3.85843 6.10489 4.11265 6 4.41132 6H10.0007V4.66667C10.0007 4.11111 9.80621 3.63889 9.41732 3.25C9.02843 2.86111 8.55621 2.66667 8.00065 2.66667C7.49976 2.66667 7.06354 2.82978 6.69198 3.156C6.32087 3.48178 6.09976 3.88578 6.02865 4.368C6.00998 4.45511 5.96754 4.52667 5.90132 4.58267C5.8351 4.63867 5.7571 4.66667 5.66732 4.66667C5.57265 4.66667 5.49332 4.63333 5.42932 4.56667C5.36532 4.5 5.34154 4.42178 5.35798 4.332C5.4371 3.668 5.72665 3.11333 6.22665 2.668C6.72665 2.22267 7.31798 2 8.00065 2C8.74332 2 9.37354 2.25889 9.89132 2.77667C10.4087 3.294 10.6673 3.924 10.6673 4.66667V6H11.5907C11.8884 6 12.1424 6.10489 12.3527 6.31467C12.5624 6.52444 12.6673 6.77867 12.6673 7.07733V12.9233C12.6673 13.2211 12.5624 13.4751 12.3527 13.6853C12.1429 13.8951 11.8889 14 11.5907 14H4.41132ZM4.41132 13.3333H11.5907C11.7102 13.3333 11.8084 13.2949 11.8853 13.218C11.9622 13.1411 12.0007 13.0429 12.0007 12.9233V7.07667C12.0007 6.95711 11.9622 6.85889 11.8853 6.782C11.8084 6.70511 11.7102 6.66667 11.5907 6.66667H4.41065C4.2911 6.66667 4.19287 6.70511 4.11598 6.782C4.0391 6.85889 4.00065 6.95733 4.00065 7.07733V12.9233C4.00065 13.0429 4.0391 13.1411 4.11598 13.218C4.19287 13.2949 4.29132 13.3333 4.41132 13.3333ZM8.00065 11C8.28198 11 8.51887 10.9036 8.71132 10.7107C8.90421 10.5182 9.00065 10.2813 9.00065 10C9.00065 9.71867 8.90421 9.48178 8.71132 9.28933C8.51843 9.09689 8.28154 9.00044 8.00065 9C7.71976 8.99956 7.48287 9.096 7.28998 9.28933C7.0971 9.48178 7.00065 9.71867 7.00065 10C7.00065 10.2813 7.0971 10.5182 7.28998 10.7107C7.48243 10.9036 7.71932 11 8.00065 11Z" fill="#2A2A2A"/></svg>
3342						Sign In
3343					</a>
3344				
3345								<button id="accessibilityWidget" tabindex="0">
3346					<img style="border-radius: 50%;" src="https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/UserWay.svg" alt="UserWay Accessibility Widget" width="32" height="32" />
3347				</button>
3348
3349								<div class="navbar__dropdown">
3350					      <a class="btn btn-primary navbar-apply" href="https://www.therivesandiego.com/contact/" target="_self">
3351      <span class="navbar-apply__content">Contact Us</span>
3352    </a>
3353        <a class="btn btn-secondary navbar-apply" href="https://the-rive.prospectportal.com/Apartments/module/application_authentication/\" target="_blank">
3354      <span class="navbar-apply__content">Apply now</span>
3355    </a>
3356  				</div>
3357
3358			</div>
3359
3360			<button class="navbar__toggler" type="button" aria-expanded="false" aria-controls="main-menu" aria-label="Toggle navigation">
3361				<svg class="navbar-toggle-svg" width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
3362<path d="M5.33398 23.027V21.6936H26.6673V23.027H5.33398ZM5.33398 16.667V15.3336H26.6673V16.667H5.33398ZM5.33398 10.307V8.97363H26.6673V10.307H5.33398Z" fill="#2A2A2A"/>
3363</svg>
3364			</button>
3365
3366			<div class="navbar__collapse">
3367				<button class="navbar__toggler" aria-expanded="false" aria-controls="main-menu" aria-label="Toggle navigation">
3368					<img src="https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/rebrand/close-icon.png" width="48" height="48" alt="Close Icon"/>
3369				</button>
3370				<div class="navbar__collapse__menu">
3371					            <ul class="menu" role="menubar">
3372                    <li class="menu__item menu__item--current" role="none">
3373                <a 
3374                                      id="24"
3375                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-24" 
3376                  target="_self" 
3377                  href="https://www.therivesandiego.com/floor-plans/"
3378                  role="menuitem"
3379                >
3380                  Floor Plans <span class="sr-only">(current)</span>
3381                </a>
3382                                </li>
3383                    <li class="menu__item " role="none">
3384                <a 
3385                                      id="25"
3386                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-25" 
3387                  target="_self" 
3388                  href="https://www.therivesandiego.com/amenities/"
3389                  role="menuitem"
3390                >
3391                  Amenities 
3392                </a>
3393                                </li>
3394                    <li class="menu__item " role="none">
3395                <a 
3396                                      id="1274"
3397                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-1274" 
3398                  target="_self" 
3399                  href="https://www.therivesandiego.com/parents/"
3400                  role="menuitem"
3401                >
3402                  Parents 
3403                </a>
3404                                </li>
3405                    <li class="menu__item " role="none">
3406                <a 
3407                                      id="26"
3408                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-26" 
3409                  target="_self" 
3410                  href="https://www.therivesandiego.com/culture/"
3411                  role="menuitem"
3412                >
3413                  Culture 
3414                </a>
3415                                </li>
3416                    <li class="menu__item " role="none">
3417                <a 
3418                                      id="27"
3419                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-27" 
3420                  target="_self" 
3421                  href="https://www.therivesandiego.com/gallery/"
3422                  role="menuitem"
3423                >
3424                  Gallery 
3425                </a>
3426                                </li>
3427                    <li class="menu__item " role="none">
3428                <a 
3429                                                      class="menu__link " 
3430                  target="_self" 
3431                  href="https://www.therivesandiego.com/contact/"
3432                  role="menuitem"
3433                >
3434                  Book a Tour 
3435                </a>
3436                                </li>
3437                </ul>
3438    				</div>
3439
3440				<div class="navbar__collapse__contact">
3441					<ul class="navbar__collapse__contact__list">
3442													<li class="navbar__collapse__contact__item">
3443								<a class="navbar__collapse__contact__link" href="https://the-rive.residentportal.com/auth\" target="_blank">
3444									<img src="https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/rebrand/lock-icon.png" width="24" height="24" alt=""/>
3445									Sign In
3446								</a>
3447							</li>
3448																			<li class="navbar__collapse__contact__item">
3449								<a class="navbar__collapse__contact__link" href="https://www.therivesandiego.com/contact/" target="_self">
3450									<img src="https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/rebrand/signpost-icon.png" width="24" height="24" alt=""/>
3451									Book a Tour
3452								</a>
3453							</li>
3454																			<li class="navbar__collapse__contact__item">
3455								<a class="navbar__collapse__contact__link" href="mailto:[email protected]">
3456									<img src="https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/rebrand/mail-icon.png" width="24" height="24" alt=""/>
3457									Email Us
3458								</a>
3459							</li>
3460																			<li class="navbar__collapse__contact__item">
3461								<a class="navbar__collapse__contact__link" href="tel:6195605952">
3462									<img src="https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/rebrand/phone-icon.png" width="24" height="24" alt=""/>
3463									Call Us
3464								</a>
3465							</li>
3466												
3467					</ul>
3468				</div>
3469
3470				<div class="navbar__collapse__apply">
3471											<a class="navbar__collapse__apply__link btn btn-primary-alt" href="https://the-rive.prospectportal.com/Apartments/module/application_authentication/\">
3472							Apply now
3473						</a>
3474									</div>
3475
3476			</div>
3477
3478    
3479		</div>
3480
3481    
3482	</nav>
3483
3484
3485					
3486    
3487  <header class="header-3" style="--custom-background-color: #ccdeff">
3488    
3489        
3490    <img 
3491                class="img-fluid header-3__image"
3492        src="https://www.therivesandiego.com/wp-content/uploads/2026/07/the-rive-san-diego-floorplan-hero.webp"
3493        width="1440" 
3494        height="946" 
3495        alt="furnished kitchen"
3496        fetchpriority="high"
3497        loading="eager"
3498    >
3499
3500    <div class="header-3__text">
3501      <div class="header-3__text__container">
3502        <h1 class="header-3__title">Floor Plans</h1>
3503        <div class="header-3__subheading">Your place to feel more of SDSU</div>
3504        <div class="header-3__content"><p>From one- to four-bedrooms, The Rive San Diego has layouts that bring more life to every San Diego State University experience.</p>
3505</div>
3506      </div>
3507    </div>
3508  </header>
3509		
3510
3511		<main class="sections">
3512					      <div 
3513  class="floor-plans-section-1" 
3514  style="
3515    --map-area-font-size: 16px;
3516    --map-area-secondary-font-size: 8px;
3517  ">
3518    <div class="floor-plans-section-1__container container" >
3519      <div id="fp-app-root"></div>
3520    </div>
3521</div>
3522
3523			<section class="floor-plans-section-2">
3524  <div class="floor-plans-section-2__container">
3525    
3526        <div class="floor-plans-section-2__primary">
3527      <div class="floor-plans-section-2__primary__text">
3528        <h2 class="floor-plans-section-2__primary__title">Amenities abound</h2>
3529        <div class="floor-plans-section-2__primary__content"><p>The Rive San Diego has everything you need to live well at San Diego State University delivered with a little extra.</p>
3530</div>
3531        <a class="floor-plans-section-2__primary__link impact impact--link impact--link-alt" href="https://www.therivesandiego.com/amenities/" > See all amenities </a>
3532      </div>
3533      
3534    <img
3535                class="img-fluid floor-plans-section-2__primary__image"
3536        src="https://www.therivesandiego.com/wp-content/uploads/2026/07/the-rive-san-diego-floorplan-amenities-abound.webp"
3537        width="660"
3538        height="825"
3539        alt="the Rive San Diego exterior"
3540        loading="lazy"
3541    />
3542
3543    </div>
3544    
3545        <a class="floor-plans-section-2__link" href="https://www.therivesandiego.com/special-offers/">
3546      <span>Special Offers</span>
3547      <span class="impact impact--link">View All</span>
3548    </a>
3549    
3550              <a class="floor-plans-section-2__featured-item floor-plans-section-2__featured-item--1" href="https://www.therivesandiego.com/special-offers/">
3551        
3552    <img
3553                class="img-fluid "
3554        src="https://www.therivesandiego.com/wp-content/uploads/2026/07/the-rive-san-diego-floorplan-offer.webp"
3555        width="636"
3556        height="477"
3557        alt="clubhouse interior"
3558        loading="lazy"
3559    />
3560
3561        <h3 class="floor-plans-section-2__featured-item__title">Schedule a tour</h3>
3562      </a>
3563    
3564  </div>
3565</section>
3566			<div class="floor-plans-section-3">
3567
3568  <section class="floor-plans-section-3__container container">
3569
3570        <h2 class="floor-plans-section-3__title">Our apartments set the standard in college living.</h2>
3571
3572        <div class="floor-plans-section-3__accordion">
3573      <div class="accordion ">
3574                                  
3575	
3576	<div class="accordion-item accordion-item--open">
3577		<div class="accordion-item__inner">
3578			<h3 class="accordion-item__title">
3579				<button 
3580					id="accordion__item-bedroom" 
3581					class="accordion-item__button"
3582					aria-expanded="true" 
3583					aria-controls="accordion__content-bedroom" 
3584					type="button"
3585				>
3586					Bedroom
3587				</button>
3588			</h3>
3589			<div 
3590				id="accordion__content-bedroom" 
3591				role="region" 
3592				aria-labelledby="accordion__item-bedroom" 
3593				class="accordion-item__content"
3594			>
3595				              <div class="floor-plans-section-3__item">
3596                                  <div class="floor-plans-section-3__intro">
3597                    <ul>
3598<li aria-level="1">
3598Fully Furnished With A Workspace</li>
3599<li aria-level="1">Individually Keyed Bedrooms</li>
3600</ul>
3601
3602                  </div>
3603                                                                      <div class="floor-plans-section-3__body">
3604                      
3605    <img
3606                class="img-fluid floor-plans-section-3__image"
3607        src="https://www.therivesandiego.com/wp-content/uploads/2026/07/the-rive-san-diego-floorplan-bedroom.webp"
3608        width="1476"
3609        height="831"
3610        alt="Furnished bedroom"
3611        loading="lazy"
3612    />
3613
3614                      <div class="floor-plans-section-3__content">
3615                        
3616                      </div>
3617                    </div>
3618                                                </div>
3619            
3620			</div>
3621		</div>
3622	</div>
3623
3624                                        
3625	
3626	<div class="accordion-item">
3627		<div class="accordion-item__inner">
3628			<h3 class="accordion-item__title">
3629				<button 
3630					id="accordion__item-kitchen" 
3631					class="accordion-item__button"
3632					aria-expanded="false" 
3633					aria-controls="accordion__content-kitchen" 
3634					type="button"
3635				>
3636					Kitchen
3637				</button>
3638			</h3>
3639			<div 
3640				id="accordion__content-kitchen" 
3641				role="region" 
3642				aria-labelledby="accordion__item-kitchen" 
3643				class="accordion-item__content"
3644			>
3645				              <div class="floor-plans-section-3__item">
3646                                  <div class="floor-plans-section-3__intro">
3647                    <ul>
3648<li aria-level="1">Fully Equipped Kitchen With Stainless-Steel Appliances</li>
3649<li aria-level="1">Quartz Countertops</li>
3650<li aria-level="1">Open Layout</li>
3651</ul>
3652
3653                  </div>
3654                                <div class="floor-plans-section-3__body">
3655                  
3656    <img
3657                class="img-fluid floor-plans-section-3__image"
3658        src="https://www.therivesandiego.com/wp-content/uploads/2026/07/the-rive-san-diego-floorplan-Kitchen.webp"
3659        width="1476"
3660        height="831"
3661        alt="modern kitchen"
3662        loading="lazy"
3663    />
3664
3665                                                                      </div>
3666              </div>
3667            
3668			</div>
3669		</div>
3670	</div>
3671
3672                                        
3673	
3674	<div class="accordion-item">
3675		<div class="accordion-item__inner">
3676			<h3 class="accordion-item__title">
3677				<button 
3678					id="accordion__item-shared-space" 
3679					class="accordion-item__button"
3680					aria-expanded="false" 
3681					aria-controls="accordion__content-shared-space" 
3682					type="button"
3683				>
3684					Shared Space
3685				</button>
3686			</h3>
3687			<div 
3688				id="accordion__content-shared-space" 
3689				role="region" 
3690				aria-labelledby="accordion__item-shared-space" 
3691				class="accordion-item__content"
3692			>
3693				              <div class="floor-plans-section-3__item">
3694                                  <div class="floor-plans-section-3__intro">
3695                    <ul>
3696<li aria-level="1">Fully Furnished</li>
3697<li aria-level="1">Full-Size Washer &amp; Dryer In Each Apartment</li>
3698<li aria-level="1">Private Balconies &amp; Patios Available</li>
3699<li aria-level="1">Smart Connectivity Thermostat</li>
3700</ul>
3701
3702                  </div>
3703                                <div class="floor-plans-section-3__body">
3704                  
3705    <img
3706                class="img-fluid floor-plans-section-3__image"
3707        src="https://www.therivesandiego.com/wp-content/uploads/2026/07/the-rive-san-diego-floorplan-shared-space.webp"
3708        width="1476"
3709        height="831"
3710        alt="furnished living space"
3711        loading="lazy"
3712    />
3713
3714                                                                      </div>
3715              </div>
3716            
3717			</div>
3718		</div>
3719	</div>
3720
3721                                        
3722	
3723	<div class="accordion-item">
3724		<div class="accordion-item__inner">
3725			<h3 class="accordion-item__title">
3726				<button 
3727					id="accordion__item-technology" 
3728					class="accordion-item__button"
3729					aria-expanded="false" 
3730					aria-controls="accordion__content-technology" 
3731					type="button"
3732				>
3733					Technology
3734				</button>
3735			</h3>
3736			<div 
3737				id="accordion__content-technology" 
3738				role="region" 
3739				aria-labelledby="accordion__item-technology" 
3740				class="accordion-item__content"
3741			>
3742				              <div class="floor-plans-section-3__item">
3743                                  <div class="floor-plans-section-3__intro">
3744                    <ul>
3745<li aria-level="1">Computers and Printers</li>
3746<li aria-level="1">Free Wi-Fi</li>
3747<li aria-level="1">Apartment Keypad Access</li>
3748</ul>
3749
3750                  </div>
3751                                <div class="floor-plans-section-3__body">
3752                  
3753    <img
3754                class="img-fluid floor-plans-section-3__image"
3755        src="https://www.therivesandiego.com/wp-content/uploads/2026/07/the-rive-san-diego-floorplan-tech.webp"
3756        width="1476"
3757        height="831"
3758        alt="study space"
3759        loading="lazy"
3760    />
3761
3762                                                                      </div>
3763              </div>
3764            
3765			</div>
3766		</div>
3767	</div>
3768
3769                        
3770</div>
3771                </div>
3772    
3773  </section>
3774</div>
3775
3776			<section id="fees" class="fee-section-1">
3777  <div class="fee-section-1__container container">
3778    <div class="fee-section-1__text">
3779      <h2 class="fee-section-1__title">Full Picture. No Surprises.</h2>
3780      <div class="fee-section-1__content"><p>We believe in transparency, not gotchas. That’s why we lay out every fee upfront, so you can make the best decision for you. Not every community does it this way. We do, because you shouldn’t have to ask.</p>
3781</div>
3782    </div>
3783    <div class="fee-accordion">
3784  <div class="accordion allow-multiple">
3785              
3786	
3787	<div class="accordion-item accordion-item--open">
3788		<div class="accordion-item__inner">
3789			<h3 class="accordion-item__title">
3790				<button 
3791					id="accordion__item-required-fees" 
3792					class="accordion-item__button"
3793					aria-expanded="true" 
3794					aria-controls="accordion__content-required-fees" 
3795					type="button"
3796				>
3797					Required Fees
3798				</button>
3799			</h3>
3800			<div 
3801				id="accordion__content-required-fees" 
3802				role="region" 
3803				aria-labelledby="accordion__item-required-fees" 
3804				class="accordion-item__content"
3805			>
3806				        <table class="fee-accordion__table">
3807          <colgroup>
3808            <col style="width: 33.33333%;">
3809            <col style="width: 25%;">
3810            <col style="width: 25%;">
3811          </colgroup>
3812          <thead>
3813            <tr>
3814              <th>Fee</th>
3815              <th>Cost</th>
3816              <th>Frequency</th>
3817            </tr>
3818          </thead>
3819          <tbody>
3820                                          <tr>
3821                  <td>Application Fee</td>
3822                  <td>$50</td>
3823                  <td>One-Time</td>
3824                </tr>
3825                                                        <tr>
3826                  <td>Valet Trash Fee</td>
3827                  <td>$8</td>
3828                  <td>Monthly</td>
3829                </tr>
3830                                                        <tr>
3831                  <td>Conservice Fee</td>
3832                  <td>$6.67</td>
3833                  <td>Monthly</td>
3834                </tr>
3835                                    </tbody>
3836        </table>
3837      
3838			</div>
3839		</div>
3840	</div>
3841
3842          
3843	
3844	<div class="accordion-item accordion-item--open">
3845		<div class="accordion-item__inner">
3846			<h3 class="accordion-item__title">
3847				<button 
3848					id="accordion__item-add-on-fees" 
3849					class="accordion-item__button"
3850					aria-expanded="true" 
3851					aria-controls="accordion__content-add-on-fees" 
3852					type="button"
3853				>
3854					Add-On Fees
3855				</button>
3856			</h3>
3857			<div 
3858				id="accordion__content-add-on-fees" 
3859				role="region" 
3860				aria-labelledby="accordion__item-add-on-fees" 
3861				class="accordion-item__content"
3862			>
3863				        <table class="fee-accordion__table">
3864          <colgroup>
3865            <col style="width: 33.33333%;">
3866            <col style="width: 25%;">
3867            <col style="width: 25%;">
3868          </colgroup>
3869          <thead>
3870            <tr>
3871              <th>Fee</th>
3872              <th>Cost</th>
3873              <th>Frequency</th>
3874            </tr>
3875          </thead>
3876          <tbody>
3877                                          <tr>
3878                  <td>Renters Insurance (if not provided)</td>
3879                  <td>$13.95</td>
3880                  <td>Monthly</td>
3881                </tr>
3882                                                        <tr>
3883                  <td>Parking</td>
3884                  <td>Starts at $25</td>
3885                  <td>Monthly</td>
3886                </tr>
3887                                    </tbody>
3888        </table>
3889      
3890			</div>
3891		</div>
3892	</div>
3893
3894      
3895</div>
3896</div>
3897  </div>
3898</section>
3899			<div class="floor-plans-section-4">
3900  <div class="floor-plans-section-4__container container">
3901          <div class="floor-plans-section-4__callout">
3902        <div class="floor-plans-section-4__callout__text">
3903          <p class="floor-plans-section-4__callout__title">
3904            <a class="arrow-link" href="https://www.therivesandiego.com/amenities/">
3905              Check out the amenities
3906            </a>
3907          </p>
3908        </div>
3909        
3910    <img
3911                class="img-fluid floor-plans-section-4__callout__image"
3912        src="https://www.therivesandiego.com/wp-content/uploads/2026/07/the-rive-san-diego-floorplan-check-out-amenities.webp"
3913        width="1316"
3914        height="640"
3915        alt="resort style pool"
3916        loading="lazy"
3917    />
3918
3919      </div>
3920          <div class="floor-plans-section-4__callout">
3921        <div class="floor-plans-section-4__callout__text">
3922          <p class="floor-plans-section-4__callout__title">
3923            <a class="arrow-link" href="https://www.therivesandiego.com/culture/">
3924              More on our culture
3925            </a>
3926          </p>
3927        </div>
3928        
3929    <img
3930                class="img-fluid floor-plans-section-4__callout__image"
3931        src="https://www.therivesandiego.com/wp-content/uploads/2026/07/the-rive-san-diego-floorplan-culture.webp"
3932        width="1316"
3933        height="640"
3934        alt="clubhouse interior"
3935        loading="lazy"
3936    />
3937
3938      </div>
3939      </div>
3940</div>
3941	
3942	</main>
3943
3944		  <footer class="footer">
3945
3946    <div class="footer-outro__banner-wrap">
3947
3948      <div class="footer-tape-banner">
3949                  <div class="tape-line">
3950            <div class="tape-line-inner">
3951                              <span class="stroke-text">The Rive San Diego</span>
3952                              <span class="stroke-text">The Rive San Diego</span>
3953                              <span class="stroke-text">The Rive San Diego</span>
3954                              <span class="stroke-text">The Rive San Diego</span>
3955                              <span class="stroke-text">The Rive San Diego</span>
3956                              <span class="stroke-text">The Rive San Diego</span>
3957                              <span class="stroke-text">The Rive San Diego</span>
3958                              <span class="stroke-text">The Rive San Diego</span>
3959                              <span class="stroke-text">The Rive San Diego</span>
3960                              <span class="stroke-text">The Rive San Diego</span>
3961                              <span class="stroke-text">The Rive San Diego</span>
3962                              <span class="stroke-text">The Rive San Diego</span>
3963                              <span class="stroke-text">The Rive San Diego</span>
3964                              <span class="stroke-text">The Rive San Diego</span>
3965                              <span class="stroke-text">The Rive San Diego</span>
3966                              <span class="stroke-text">The Rive San Diego</span>
3967                              <span class="stroke-text">The Rive San Diego</span>
3968                              <span class="stroke-text">The Rive San Diego</span>
3969                              <span class="stroke-text">The Rive San Diego</span>
3970                              <span class="stroke-text">The Rive San Diego</span>
3971                              <span class="stroke-text">The Rive San Diego</span>
3972                              <span class="stroke-text">The Rive San Diego</span>
3973                              <span class="stroke-text">The Rive San Diego</span>
3974                              <span class="stroke-text">The Rive San Diego</span>
3975                              <span class="stroke-text">The Rive San Diego</span>
3976                              <span class="stroke-text">The Rive San Diego</span>
3977                              <span class="stroke-text">The Rive San Diego</span>
3978                          </div>
3979          </div>
3980                  <div class="tape-line">
3981            <div class="tape-line-inner">
3982                              <span class="stroke-text">The Rive San Diego</span>
3983                              <span class="stroke-text">The Rive San Diego</span>
3984                              <span class="stroke-text">The Rive San Diego</span>
3985                              <span class="stroke-text">The Rive San Diego</span>
3986                              <span class="stroke-text">The Rive San Diego</span>
3987                              <span class="stroke-text">The Rive San Diego</span>
3988                              <span class="stroke-text">The Rive San Diego</span>
3989                              <span class="stroke-text">The Rive San Diego</span>
3990                              <span class="stroke-text">The Rive San Diego</span>
3991                              <span class="stroke-text">The Rive San Diego</span>
3992                              <span class="stroke-text">The Rive San Diego</span>
3993                              <span class="stroke-text">The Rive San Diego</span>
3994                              <span class="stroke-text">The Rive San Diego</span>
3995                              <span class="stroke-text">The Rive San Diego</span>
3996                              <span class="stroke-text">The Rive San Diego</span>
3997                              <span class="stroke-text">The Rive San Diego</span>
3998                              <span class="stroke-text">The Rive San Diego</span>
3999                              <span class="stroke-text">The Rive San Diego</span>
4000                              <span class="stroke-text">The Rive San Diego</span>
4001                              <span class="stroke-text">The Rive San Diego</span>
4002                              <span class="stroke-text">The Rive San Diego</span>
4003                              <span class="stroke-text">The Rive San Diego</span>
4004                              <span class="stroke-text">The Rive San Diego</span>
4005                              <span class="stroke-text">The Rive San Diego</span>
4006                              <span class="stroke-text">The Rive San Diego</span>
4007                              <span class="stroke-text">The Rive San Diego</span>
4008                              <span class="stroke-text">The Rive San Diego</span>
4009                          </div>
4010          </div>
4011                  <div class="tape-line">
4012            <div class="tape-line-inner">
4013                              <span class="stroke-text">The Rive San Diego</span>
4014                              <span class="stroke-text">The Rive San Diego</span>
4015                              <span class="stroke-text">The Rive San Diego</span>
4016                              <span class="stroke-text">The Rive San Diego</span>
4017                              <span class="stroke-text">The Rive San Diego</span>
4018                              <span class="stroke-text">The Rive San Diego</span>
4019                              <span class="stroke-text">The Rive San Diego</span>
4020                              <span class="stroke-text">The Rive San Diego</span>
4021                              <span class="stroke-text">The Rive San Diego</span>
4022                              <span class="stroke-text">The Rive San Diego</span>
4023                              <span class="stroke-text">The Rive San Diego</span>
4024                              <span class="stroke-text">The Rive San Diego</span>
4025                              <span class="stroke-text">The Rive San Diego</span>
4026                              <span class="stroke-text">The Rive San Diego</span>
4027                              <span class="stroke-text">The Rive San Diego</span>
4028                              <span class="stroke-text">The Rive San Diego</span>
4029                              <span class="stroke-text">The Rive San Diego</span>
4030                              <span class="stroke-text">The Rive San Diego</span>
4031                              <span class="stroke-text">The Rive San Diego</span>
4032                              <span class="stroke-text">The Rive San Diego</span>
4033                              <span class="stroke-text">The Rive San Diego</span>
4034                              <span class="stroke-text">The Rive San Diego</span>
4035                              <span class="stroke-text">The Rive San Diego</span>
4036                              <span class="stroke-text">The Rive San Diego</span>
4037                              <span class="stroke-text">The Rive San Diego</span>
4038                              <span class="stroke-text">The Rive San Diego</span>
4039                              <span class="stroke-text">The Rive San Diego</span>
4040                          </div>
4041          </div>
4042                  <div class="tape-line">
4043            <div class="tape-line-inner">
4044                              <span class="stroke-text">The Rive San Diego</span>
4045                              <span class="stroke-text">The Rive San Diego</span>
4046                              <span class="stroke-text">The Rive San Diego</span>
4047                              <span class="stroke-text">The Rive San Diego</span>
4048                              <span class="stroke-text">The Rive San Diego</span>
4049                              <span class="stroke-text">The Rive San Diego</span>
4050                              <span class="stroke-text">The Rive San Diego</span>
4051                              <span class="stroke-text">The Rive San Diego</span>
4052                              <span class="stroke-text">The Rive San Diego</span>
4053                              <span class="stroke-text">The Rive San Diego</span>
4054                              <span class="stroke-text">The Rive San Diego</span>
4055                              <span class="stroke-text">The Rive San Diego</span>
4056                              <span class="stroke-text">The Rive San Diego</span>
4057                              <span class="stroke-text">The Rive San Diego</span>
4058                              <span class="stroke-text">The Rive San Diego</span>
4059                              <span class="stroke-text">The Rive San Diego</span>
4060                              <span class="stroke-text">The Rive San Diego</span>
4061                              <span class="stroke-text">The Rive San Diego</span>
4062                              <span class="stroke-text">The Rive San Diego</span>
4063                              <span class="stroke-text">The Rive San Diego</span>
4064                              <span class="stroke-text">The Rive San Diego</span>
4065                              <span class="stroke-text">The Rive San Diego</span>
4066                              <span class="stroke-text">The Rive San Diego</span>
4067                              <span class="stroke-text">The Rive San Diego</span>
4068                              <span class="stroke-text">The Rive San Diego</span>
4069                              <span class="stroke-text">The Rive San Diego</span>
4070                              <span class="stroke-text">The Rive San Diego</span>
4071                          </div>
4072          </div>
4073                  <div class="tape-line">
4074            <div class="tape-line-inner">
4075                              <span class="stroke-text">The Rive San Diego</span>
4076                              <span class="stroke-text">The Rive San Diego</span>
4077                              <span class="stroke-text">The Rive San Diego</span>
4078                              <span class="stroke-text">The Rive San Diego</span>
4079                              <span class="stroke-text">The Rive San Diego</span>
4080                              <span class="stroke-text">The Rive San Diego</span>
4081                              <span class="stroke-text">The Rive San Diego</span>
4082                              <span class="stroke-text">The Rive San Diego</span>
4083                              <span class="stroke-text">The Rive San Diego</span>
4084                              <span class="stroke-text">The Rive San Diego</span>
4085                              <span class="stroke-text">The Rive San Diego</span>
4086                              <span class="stroke-text">The Rive San Diego</span>
4087                              <span class="stroke-text">The Rive San Diego</span>
4088                              <span class="stroke-text">The Rive San Diego</span>
4089                              <span class="stroke-text">The Rive San Diego</span>
4090                              <span class="stroke-text">The Rive San Diego</span>
4091                              <span class="stroke-text">The Rive San Diego</span>
4092                              <span class="stroke-text">The Rive San Diego</span>
4093                              <span class="stroke-text">The Rive San Diego</span>
4094                              <span class="stroke-text">The Rive San Diego</span>
4095                              <span class="stroke-text">The Rive San Diego</span>
4096                              <span class="stroke-text">The Rive San Diego</span>
4097                              <span class="stroke-text">The Rive San Diego</span>
4098                              <span class="stroke-text">The Rive San Diego</span>
4099                              <span class="stroke-text">The Rive San Diego</span>
4100                              <span class="stroke-text">The Rive San Diego</span>
4101                              <span class="stroke-text">The Rive San Diego</span>
4102                          </div>
4103          </div>
4104                  <div class="tape-line">
4105            <div class="tape-line-inner">
4106                              <span class="stroke-text">The Rive San Diego</span>
4107                              <span class="stroke-text">The Rive San Diego</span>
4108                              <span class="stroke-text">The Rive San Diego</span>
4109                              <span class="stroke-text">The Rive San Diego</span>
4110                              <span class="stroke-text">The Rive San Diego</span>
4111                              <span class="stroke-text">The Rive San Diego</span>
4112                              <span class="stroke-text">The Rive San Diego</span>
4113                              <span class="stroke-text">The Rive San Diego</span>
4114                              <span class="stroke-text">The Rive San Diego</span>
4115                              <span class="stroke-text">The Rive San Diego</span>
4116                              <span class="stroke-text">The Rive San Diego</span>
4117                              <span class="stroke-text">The Rive San Diego</span>
4118                              <span class="stroke-text">The Rive San Diego</span>
4119                              <span class="stroke-text">The Rive San Diego</span>
4120                              <span class="stroke-text">The Rive San Diego</span>
4121                              <span class="stroke-text">The Rive San Diego</span>
4122                              <span class="stroke-text">The Rive San Diego</span>
4123                              <span class="stroke-text">The Rive San Diego</span>
4124                              <span class="stroke-text">The Rive San Diego</span>
4125                              <span class="stroke-text">The Rive San Diego</span>
4126                              <span class="stroke-text">The Rive San Diego</span>
4127                              <span class="stroke-text">The Rive San Diego</span>
4128                              <span class="stroke-text">The Rive San Diego</span>
4129                              <span class="stroke-text">The Rive San Diego</span>
4130                              <span class="stroke-text">The Rive San Diego</span>
4131                              <span class="stroke-text">The Rive San Diego</span>
4132                              <span class="stroke-text">The Rive San Diego</span>
4133                          </div>
4134          </div>
4135                  <div class="tape-line">
4136            <div class="tape-line-inner">
4137                              <span class="stroke-text">The Rive San Diego</span>
4138                              <span class="stroke-text">The Rive San Diego</span>
4139                              <span class="stroke-text">The Rive San Diego</span>
4140                              <span class="stroke-text">The Rive San Diego</span>
4141                              <span class="stroke-text">The Rive San Diego</span>
4142                              <span class="stroke-text">The Rive San Diego</span>
4143                              <span class="stroke-text">The Rive San Diego</span>
4144                              <span class="stroke-text">The Rive San Diego</span>
4145                              <span class="stroke-text">The Rive San Diego</span>
4146                              <span class="stroke-text">The Rive San Diego</span>
4147                              <span class="stroke-text">The Rive San Diego</span>
4148                              <span class="stroke-text">The Rive San Diego</span>
4149                              <span class="stroke-text">The Rive San Diego</span>
4150                              <span class="stroke-text">The Rive San Diego</span>
4151                              <span class="stroke-text">The Rive San Diego</span>
4152                              <span class="stroke-text">The Rive San Diego</span>
4153                              <span class="stroke-text">The Rive San Diego</span>
4154                              <span class="stroke-text">The Rive San Diego</span>
4155                              <span class="stroke-text">The Rive San Diego</span>
4156                              <span class="stroke-text">The Rive San Diego</span>
4157                              <span class="stroke-text">The Rive San Diego</span>
4158                              <span class="stroke-text">The Rive San Diego</span>
4159                              <span class="stroke-text">The Rive San Diego</span>
4160                              <span class="stroke-text">The Rive San Diego</span>
4161                              <span class="stroke-text">The Rive San Diego</span>
4162                              <span class="stroke-text">The Rive San Diego</span>
4163                              <span class="stroke-text">The Rive San Diego</span>
4164                          </div>
4165          </div>
4166                  <div class="tape-line">
4167            <div class="tape-line-inner">
4168                              <span class="stroke-text">The Rive San Diego</span>
4169                              <span class="stroke-text">The Rive San Diego</span>
4170                              <span class="stroke-text">The Rive San Diego</span>
4171                              <span class="stroke-text">The Rive San Diego</span>
4172                              <span class="stroke-text">The Rive San Diego</span>
4173                              <span class="stroke-text">The Rive San Diego</span>
4174                              <span class="stroke-text">The Rive San Diego</span>
4175                              <span class="stroke-text">The Rive San Diego</span>
4176                              <span class="stroke-text">The Rive San Diego</span>
4177                              <span class="stroke-text">The Rive San Diego</span>
4178                              <span class="stroke-text">The Rive San Diego</span>
4179                              <span class="stroke-text">The Rive San Diego</span>
4180                              <span class="stroke-text">The Rive San Diego</span>
4181                              <span class="stroke-text">The Rive San Diego</span>
4182                              <span class="stroke-text">The Rive San Diego</span>
4183                              <span class="stroke-text">The Rive San Diego</span>
4184                              <span class="stroke-text">The Rive San Diego</span>
4185                              <span class="stroke-text">The Rive San Diego</span>
4186                              <span class="stroke-text">The Rive San Diego</span>
4187                              <span class="stroke-text">The Rive San Diego</span>
4188                              <span class="stroke-text">The Rive San Diego</span>
4189                              <span class="stroke-text">The Rive San Diego</span>
4190                              <span class="stroke-text">The Rive San Diego</span>
4191                              <span class="stroke-text">The Rive San Diego</span>
4192                              <span class="stroke-text">The Rive San Diego</span>
4193                              <span class="stroke-text">The Rive San Diego</span>
4194                              <span class="stroke-text">The Rive San Diego</span>
4195                          </div>
4196          </div>
4197                  <div class="tape-line">
4198            <div class="tape-line-inner">
4199                              <span class="stroke-text">The Rive San Diego</span>
4200                              <span class="stroke-text">The Rive San Diego</span>
4201                              <span class="stroke-text">The Rive San Diego</span>
4202                              <span class="stroke-text">The Rive San Diego</span>
4203                              <span class="stroke-text">The Rive San Diego</span>
4204                              <span class="stroke-text">The Rive San Diego</span>
4205                              <span class="stroke-text">The Rive San Diego</span>
4206                              <span class="stroke-text">The Rive San Diego</span>
4207                              <span class="stroke-text">The Rive San Diego</span>
4208                              <span class="stroke-text">The Rive San Diego</span>
4209                              <span class="stroke-text">The Rive San Diego</span>
4210                              <span class="stroke-text">The Rive San Diego</span>
4211                              <span class="stroke-text">The Rive San Diego</span>
4212                              <span class="stroke-text">The Rive San Diego</span>
4213                              <span class="stroke-text">The Rive San Diego</span>
4214                              <span class="stroke-text">The Rive San Diego</span>
4215                              <span class="stroke-text">The Rive San Diego</span>
4216                              <span class="stroke-text">The Rive San Diego</span>
4217                              <span class="stroke-text">The Rive San Diego</span>
4218                              <span class="stroke-text">The Rive San Diego</span>
4219                              <span class="stroke-text">The Rive San Diego</span>
4220                              <span class="stroke-text">The Rive San Diego</span>
4221                              <span class="stroke-text">The Rive San Diego</span>
4222                              <span class="stroke-text">The Rive San Diego</span>
4223                              <span class="stroke-text">The Rive San Diego</span>
4224                              <span class="stroke-text">The Rive San Diego</span>
4225                              <span class="stroke-text">The Rive San Diego</span>
4226                          </div>
4227          </div>
4228              </div>
4229
4230      <div class="footer-outro container">
4231        <div class="footer-outro__container">
4232          
4233    <img
4234                class="img-fluid footer-outro__banner"
4235        src="https://www.therivesandiego.com/wp-content/uploads/2026/07/the-rive-san-diego-live-like-a-classic.webp"
4236        width="2688"
4237        height="1512"
4238        alt="The Rive San diego exterior"
4239        loading="lazy"
4240    />
4241
4242        </div>
4243      </div>
4244
4245      <div class="primary-tape-line tape-line">
4246        <div class="tape-line-inner">
4247                      <span class="stroke-text">The Rive San Diego</span>
4248                      <span class="stroke-text">The Rive San Diego</span>
4249                      <span class="stroke-text">The Rive San Diego</span>
4250                      <span class="stroke-text">The Rive San Diego</span>
4251                      <span class="stroke-text">The Rive San Diego</span>
4252                      <span class="stroke-text">The Rive San Diego</span>
4253                      <span class="stroke-text">The Rive San Diego</span>
4254                      <span class="stroke-text">The Rive San Diego</span>
4255                      <span class="stroke-text">The Rive San Diego</span>
4256                      <span class="stroke-text">The Rive San Diego</span>
4257                      <span class="stroke-text">The Rive San Diego</span>
4258                      <span class="stroke-text">The Rive San Diego</span>
4259                      <span class="stroke-text">The Rive San Diego</span>
4260                      <span class="stroke-text">The Rive San Diego</span>
4261                      <span class="stroke-text">The Rive San Diego</span>
4262                      <span class="stroke-text">The Rive San Diego</span>
4263                      <span class="stroke-text">The Rive San Diego</span>
4264                      <span class="stroke-text">The Rive San Diego</span>
4265                      <span class="stroke-text">The Rive San Diego</span>
4266                      <span class="stroke-text">The Rive San Diego</span>
4267                      <span class="stroke-text">The Rive San Diego</span>
4268                      <span class="stroke-text">The Rive San Diego</span>
4269                      <span class="stroke-text">The Rive San Diego</span>
4270                      <span class="stroke-text">The Rive San Diego</span>
4271                      <span class="stroke-text">The Rive San Diego</span>
4272                      <span class="stroke-text">The Rive San Diego</span>
4273                      <span class="stroke-text">The Rive San Diego</span>
4274                  </div>
4275      </div>
4276
4277    </div>
4278
4279    <div class="footer-outro__intro container">
4280
4281      <h2 class="footer-outro__impact-text">
4282        Live like a classic at The Rive San Diego.
4283      </h2>
4284
4285      <div class="footer-outro__buttons">
4286                  <a href="https://www.therivesandiego.com/floor-plans/" class="btn btn-primary">Explore all floor plans</a>
4287                  <a href="https://www.therivesandiego.com/contact/" class="btn btn-secondary">Schedule a tour</a>
4288              </div>
4289
4290    </div>
4291
4292    </div>
4293
4294    <div class="footer__container">
4295
4296				
4297    <img
4298                class="img-fluid footer-outro__pattern-1"
4299        src="https://www.therivesandiego.com/wp-content/uploads/2026/08/The-Rive-San-Diego-emblem.svg"
4300        width="219"
4301        height="219"
4302        alt="The Rive San Diego emblem"
4303        loading="lazy"
4304    />
4305
4306	
4307      <div class="footer__inner container">
4308
4309        <div class="footer__sns">
4310              <ul class="sns">
4311                                                                                                                            <li class="sns__item">
4312                <a class="sns__link" href="https://www.instagram.com/therivesandiego/" title="View us on Instagram" target="_blank" rel="nofollow">
4313                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"/></svg>
4314                </a>
4315            </li>
4316                                    <li class="sns__item">
4317                <a class="sns__link" href="https://www.facebook.com/TheRiveSanDiego" title="View us on Facebook" target="_blank" rel="nofollow">
4318                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5V334.2H141.4V256h52.8V222.3c0-87.1 39.4-127.5 125-127.5c16.2 0 44.2 3.2 55.7 6.4V172c-6-.6-16.5-1-29.6-1c-42 0-58.2 15.9-58.2 57.2V256h83.6l-14.4 78.2H287V510.1C413.8 494.8 512 386.9 512 256h0z"/></svg>
4319                </a>
4320            </li>
4321                                    <li class="sns__item">
4322                <a class="sns__link" href="https://www.therivesandiego.com/review/" title="View us on Google" target="_blank" rel="nofollow">
4323                    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 488 512"><!--!Font Awesome Free 6.5.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.--><path d="M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z"/></svg>
4324                    <span style="display: none;">View us on Google</span>
4325                </a>
4326            </li>
4327            </ul>
4328        </div>
4329
4330        <div class="footer__contact">
4331
4332                      <address>6345 El Cajon Blvd
4333              <br>San Diego,
4334              CA
4335              92115</address>
4336          
4337                      <ul class="footer__hours">
4338                              <li class="footer__hour">
4339                                      <span class="footer__hour-label">
4340                      Mon-Fri
4341                    </span>
4342                                    <span class="footer__hour-value">
4343                                          10-6
4344                                      </span>
4345                </li>
4346                              <li class="footer__hour">
4347                                      <span class="footer__hour-label">
4348                      Sat
4349                    </span>
4350                                    <span class="footer__hour-value">
4351                                          1-5
4352                                      </span>
4353                </li>
4354                              <li class="footer__hour">
4355                                      <span class="footer__hour-label">
4356                      Sun
4357                    </span>
4358                                    <span class="footer__hour-value">
4359                                          Closed
4360                                      </span>
4361                </li>
4362                          </ul>
4363          
4364                      <a class="footer__link" href="tel:6195605952">(619) 560-5952</a>
4365          
4366                      <a class="footer__link footer__link--email" href="mailto:[email protected]">[email protected]</a>
4367          
4368        </div>
4369
4370        <p class="footer__values">The Rive San Diego brings an elevated sense of abundance to college living. So when you live here, you don’t just have more—you feel more.</p>
4371
4372        <div class="footer__menu">
4373          <div class="footer__menu__nav">
4374                        <ul class="menu" role="menubar">
4375                    <li class="menu__item menu__item--current" role="none">
4376                <a 
4377                                      id="29"
4378                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-29" 
4379                  target="_self" 
4380                  href="https://www.therivesandiego.com/floor-plans/"
4381                  role="menuitem"
4382                >
4383                  Floor Plans <span class="sr-only">(current)</span>
4384                </a>
4385                                </li>
4386                    <li class="menu__item " role="none">
4387                <a 
4388                                      id="30"
4389                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-30" 
4390                  target="_self" 
4391                  href="https://www.therivesandiego.com/amenities/"
4392                  role="menuitem"
4393                >
4394                  Amenities 
4395                </a>
4396                                </li>
4397                    <li class="menu__item " role="none">
4398                <a 
4399                                      id="31"
4400                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-31" 
4401                  target="_self" 
4402                  href="https://www.therivesandiego.com/culture/"
4403                  role="menuitem"
4404                >
4405                  Culture 
4406                </a>
4407                                </li>
4408                    <li class="menu__item " role="none">
4409                <a 
4410                                      id="32"
4411                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-32" 
4412                  target="_self" 
4413                  href="https://www.therivesandiego.com/gallery/"
4414                  role="menuitem"
4415                >
4416                  Gallery 
4417                </a>
4418                                </li>
4419                    <li class="menu__item " role="none">
4420                <a 
4421                                      id="34"
4422                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-34" 
4423                  target="_self" 
4424                  href="https://www.therivesandiego.com/resources/"
4425                  role="menuitem"
4426                >
4427                  Resources 
4428                </a>
4429                                </li>
4430                    <li class="menu__item " role="none">
4431                <a 
4432                                      id="1099"
4433                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-1099" 
4434                  target="_self" 
4435                  href="https://www.therivesandiego.com/fees/"
4436                  role="menuitem"
4437                >
4438                  Fees 
4439                </a>
4440                                </li>
4441                    <li class="menu__item " role="none">
4442                <a 
4443                                      id="35"
4444                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page current_page_parent menu-item-35" 
4445                  target="_self" 
4446                  href="https://www.therivesandiego.com/the-latest/"
4447                  role="menuitem"
4448                >
4449                  The Latest 
4450                </a>
4451                                </li>
4452                    <li class="menu__item " role="none">
4453                <a 
4454                                      id="36"
4455                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-36" 
4456                  target="_self" 
4457                  href="https://www.therivesandiego.com/contact/"
4458                  role="menuitem"
4459                >
4460                  Contact Us 
4461                </a>
4462                                </li>
4463                </ul>
4464              </div>
4465          <div class="footer__menu__utilities">
4466                        <ul class="menu" role="menubar">
4467                    <li class="menu__item " role="none">
4468                <a 
4469                                      id="38"
4470                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-38" 
4471                  target="_self" 
4472                  href="https://www.therivesandiego.com/special-offers/"
4473                  role="menuitem"
4474                >
4475                  Special Offers 
4476                </a>
4477                                </li>
4478                    <li class="menu__item " role="none">
4479                <a 
4480                                      id="40"
4481                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-privacy-policy menu-item-40" 
4482                  target="_self" 
4483                  href="https://www.therivesandiego.com/privacy-policy/"
4484                  role="menuitem"
4485                >
4486                  Privacy Policy 
4487                </a>
4488                                </li>
4489                    <li class="menu__item " role="none">
4490                <a 
4491                                      id="43"
4492                                                      class="menu__link menu-item menu-item-type-custom menu-item-object-custom menu-item-43" 
4493                  target="_blank" 
4494                  href="https://the-rive.prospectportal.com/Apartments/module/application_authentication/\"
4495                  role="menuitem"
4496                >
4497                  Apply Now 
4498                </a>
4499                                </li>
4500                    <li class="menu__item " role="none">
4501                <a 
4502                                      id="41"
4503                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-41" 
4504                  target="_self" 
4505                  href="https://www.therivesandiego.com/terms-conditions/"
4506                  role="menuitem"
4507                >
4508                  Terms 
4509                </a>
4510                                </li>
4511                    <li class="menu__item " role="none">
4512                <a 
4513                                      id="39"
4514                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-39" 
4515                  target="_self" 
4516                  href="https://www.therivesandiego.com/contact/"
4517                  role="menuitem"
4518                >
4519                  Schedule a Tour 
4520                </a>
4521                                </li>
4522                    <li class="menu__item " role="none">
4523                <a 
4524                                      id="42"
4525                                                      class="menu__link menu-item menu-item-type-post_type menu-item-object-page menu-item-42" 
4526                  target="_self" 
4527                  href="https://www.therivesandiego.com/accessibility-policy/"
4528                  role="menuitem"
4529                >
4530                  Accessibility 
4531                </a>
4532                                </li>
4533                    <li class="menu__item " role="none">
4534                <a 
4535                                      id="44"
4536                                                      class="menu__link menu-item menu-item-type-custom menu-item-object-custom menu-item-44" 
4537                  target="_blank" 
4538                  href="https://the-rive.residentportal.com/auth\"
4539                  role="menuitem"
4540                >
4541                  Sign In 
4542                </a>
4543                                </li>
4544                    <li class="menu__item " role="none">
4545                <a 
4546                                                      class="menu__link termly-display-preferences" 
4547                  target="_blank" 
4548                  href="#"
4549                  role="menuitem"
4550                >
4551                  Consent Preferences 
4552                </a>
4553                                </li>
4554                </ul>
4555              </div>
4556        </div>
4557
4558        
4559                <div class="footer__certifications">
4560                      <div class="footer__certification">
4561              
4562    <img
4563                class="img-fluid "
4564        src="https://www.therivesandiego.com/wp-content/uploads/2026/02/equal-housing-opportunity-logo-svgrepo-com-1-1.webp"
4565        width="64"
4566        height="64"
4567        alt="Equal Housing Logo"
4568        loading="lazy"
4569    />
4570
4571            </div>
4572                  </div>
4573                <div class="footer__copyright">
4574          <div class="footer__copyright__corporate">
4575            
4576    <img
4577                class="img-fluid "
4578        src="https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/corespaces.svg"
4579        width="120"
4580        height="50"
4581        alt="Core Campus Management, LLC"
4582        loading="lazy"
4583    />
4584
4585            <span>Core Campus Management. LLC
4586              <br>&copy;
4587              2026
4588              Core Spaces</span>
4589          </div>
4590          <div class="footer__copyright__attribution">
4591            <span>Designed by
4592              <a href="https://www.helloheco.com" target="_blank">Heco Partners</a>.</span>
4593            <span>Powered by
4594              <a class="jumpem" href="https://www.jumpem.com/" target="_blank">
4595                
4596    <img
4597                class="img-fluid "
4598        src="https://www.therivesandiego.com/wp-content/themes/rive-2026/assets/images/jumpem.svg"
4599        width="66"
4600        height="14"
4601        alt="Jumpem Web Design & Internet Marketing"
4602        loading="lazy"
4603    />
4604
4605                <span class="sr-only">Jumpem</span>
4606              </a>
4607            </span>
4608          </div>
4609        </div>
4610
4611      </div>
4612    </div>
4613  </footer>
4614
4615
4616	
4616<script>
4617		window.lazySizesConfig = window.lazySizesConfig || {};
4618		lazySizesConfig.loadMode = 1;
4619	</script>
4619
4620
4621		
4621<script type="speculationrules">
4622{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/rive-2026/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
4623</script>
4623
4624<style id="global-styles-inline-css">
4625:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,0) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);
4625--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
4625.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
4626/*# sourceURL=global-styles-inline-css */
4627</style>
4628<script id="gsap-js" src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.5/gsap.min.js?ver=7.1.2"></script>
vendor: 1 bytes, line 4628
4628
4629<script id="gsap-scrollTrigger-js" src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.11.5/ScrollTrigger.min.js?ver=7.1.2"></script>
vendor: 1 bytes, line 4629
4629
4630<script id="gsap-flip-js" src="https://cdnjs.cloudflare.com/ajax/libs/gsap/3.12.5/Flip.min.js?ver=7.1.2"></script>
vendor: 1 bytes, line 4630
4630
4631<script src="https://cdn.jsdelivr.net/npm/[email protected]/swiper-bundle.min.js?ver=7.1.2" defer async id="swiper-js" onload="document.dispatchEvent(new Event('swiper-js-loaded'));"></script>
4631<script>
4632
4633// Initial View
4634const specials = document.querySelector('.specials');
4635const specialsMessages = specials.querySelector('.specials__messages');
4636let animating = false;
4637
4638// Next
4639function specialsNext() {
4640    if(animating) return;
4641    animating = true;
4642
4643    const active = specials.querySelector('.specials__message.active');
4644    const next = active.nextElementSibling || specials.querySelector('.specials__message:first-child');
4645
4646    let currentWidth = active.offsetWidth;
4647    let nextWidth = null;
4648
4649    active.classList.add('leave-active');
4650    next.classList.add('enter-active', 'active');
4651
4652    nextWidth = next.offsetWidth;
4653    next.style.width = `${currentWidth}px`;
4654    // Set Width to current width
4655    setTimeout(() => {
4656        active.classList.remove('leave-active', 'active');
4657        // Set Width to current width
4658        next.style.width = `${nextWidth}px`;
4659        setTimeout(() => {
4660            next.classList.remove('enter-active');
4661            // Set Width to current width
4662            next.style.width = '';
4663            animating = false;
4664        }, 300);
4665    }, 300);
4666}
4667
4668// Prev
4669function specialsPrev() {
4670    if(animating) return;
4671    animating = true;
4672
4673    const active = specials.querySelector('.specials__message.active');
4674    const prev = active.previousElementSibling || specials.querySelector('.specials__message:last-child');
4675    
4676    let currentWidth = active.offsetWidth;
4677    let nextWidth = null;
4678
4679    active.classList.add('prev-leave-active');
4680    prev.classList.add('prev-enter-active', 'active');
4681
4682    prevWidth = prev.offsetWidth;
4683    prev.style.width = `${currentWidth}px`;
4684    // Set Width to current width
4685    setTimeout(() => {
4686        active.classList.remove('prev-leave-active', 'active');
4687        // Set Width to current width
4688        prev.style.width = `${prevWidth}px`;
4689        setTimeout(() => {
4690            prev.classList.remove('prev-enter-active');
4691            // Set Width to current width
4692            prev.style.width = '';
4693            animating = false;
4694        }, 300);
4695    }, 300);
4696}
4697
4698let autoplay;
4699// Start autoplay
4700function startAutoplay() {
4701    autoplay = setInterval(specialsNext, 5000);
4702}
4703// Stop Autoplay
4704function stopAutoplay() {
4705    clearInterval(autoplay);
4706    autoplay = null;
4707}
4708// Stop on Enter
4709specials.addEventListener('mouseenter', () => stopAutoplay);
4710// Start on mouseleave
4711specials.addEventListener('mouseleave', () => startAutoplay);
4712// Close button
4713specials.querySelector('.specials__close').addEventListener('click', function() {
4714    specials.style.height = '0';
4715});
4716
4717</script>
4717
4718	
4718<script>
4719		let navbarOpen = false;
4720		let isAnimating = false;
4721		document.addEventListener('DOMContentLoaded', function () {
4722			const navbar = document.querySelector('.navbar');
4723			const toggler = document.querySelectorAll('.navbar__toggler');
4724			const collapse = document.querySelector('.navbar__collapse');
4725			toggler.forEach(function(element){
4726				element.addEventListener('click', function () {
4727					if (isAnimating) {
4728						return;
4729					}
4730					isAnimating = true;
4731					if (!navbarOpen) {
4732						navbar.classList.add('navbar--opening');
4733						navbar.classList.add('navbar--open');
4734						setTimeout(() => {
4735							navbar.classList.remove('navbar--opening');
4736							navbarOpen = true;
4737							element.setAttribute('aria-expanded', navbarOpen);
4738							isAnimating = false;
4739						}, 408);
4740					} else {
4741						navbar.classList.remove('navbar--open');
4742						navbar.classList.add('navbar--collapsing');
4743						setTimeout(() => {
4744							navbar.classList.remove('navbar--collapsing');
4745							navbarOpen = false;
4746							element.setAttribute('aria-expanded', navbarOpen);
4747							isAnimating = false;
4748						}, 400);
4749					}
4750				})
4751			});
4752		});
4753	</script>
4753
4754<!-- Cached Floorplans Component - Version 0.1058 Cached at October 6, 2026 8:24 AM EDT -->  
4755  
4756  
4757  
4758    
4759  
4759<script>
4760        var localData = {"imageMaps":[{"title":"Untitled Tab"}]};
4761    localData.entrataSupport = true;
4762    localData.apiURL = 'https://www.therivesandiego.com/wp-json/theme/entrata/v1/floor-plans?v=0.1058';
4763    localData.logoURL = 'https://www.therivesandiego.com/wp-content/themes/rive-2024/assets/images/jumpem.svg';
4764    localData.baseURL = 'https://www.therivesandiego.com';
4765    localData.baseURI = 'https://www.therivesandiego.com/wp-content/themes/rive-2026';
4766    localData.title = "See Which Floor Plan is Best for You";
4767    localData.content = "<p>Whether you want to live alone or with other Aztecs, The Rive San Diego has you covered.<\/p>\n<p class=\"fp-app__heading__disclaimer\">Except for our private one-bedroom floor plans, all other apartment homes feature shared bedrooms and accommodate multiple residents. Refer to each floor plan for specific occupancy details.<\/p>\n";
4768    localData.scheduleTourLink = "https://www.therivesandiego.com/contact/";
4769    localData.spaceConfigurationPricing = "1"
4770    localData.floorplansOptions = null;
4771    localData.enableJumpemMap = "1";
4772    localData.enableSightmap = false;
4773    localData.unitAvailability = false;
4774    localData.hideRates = false;
4775    localData.sectionDisplayOptions = {"unit_availability":false,"space_configuration_pricing":false,"hide_rates":false,"hide_rates_text":"Call for pricing","modal_tab_title":"Styles","font_size":"16","secondary_font_size":"8","filter_labels":{"bedrooms":"Bedrooms","price":"Price","sqft":"SQ Footage"}};
4776    
4777    /* Local API Transition Data */
4778    localData.apiTransitionData = {"categories":{"One Bedroom":{"description":"","floorplans":[{"id":671,"name":"1x1 A","slug":"1x1","thumbnail":{"abs_url":null,"object_type":"image","file_loc":"\/home\/csrivesandiego\/public_html\/wp-content\/uploads\/2025\/12\/1x1-A.webp","file":"2025\/12\/1x1-A.webp","id":1237,"sizes":{"thumbnail":{"file":"1x1-A-150x150.webp","width":150,"height":150,"mime-type":"image\/webp","filesize":2946},"placeholder":{"file":"1x1-A-40x40.webp","width":40,"height":40,"mime-type":"image\/webp","filesize":706}},"caption":"","ImageClass":"Timber\\Image","PostClass":"Timber\\Post","TermClass":"Timber\\Term","custom":[],"ID":1237,"post_author":"1","post_content":"","post_date":"2026-07-22 20:08:29","post_excerpt":"","post_parent":671,"post_status":"inherit","post_title":"1x1 A","post_type":"attachment","slug":null,"filesize":13922,"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""},"_wp_attachment_metadata":"a:6:{s:5:\"width\";i:640;s:6:\"height\";i:640;s:4:\"file\";s:18:\"2025\/12\/1x1-A.webp\";s:8:\"filesize\";i:13922;s:5:\"sizes\";a:2:{s:9:\"thumbnail\";a:5:{s:4:\"file\";s:18:\"1x1-A-150x150.webp\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:2946;}s:11:\"placeholder\";a:5:{s:4:\"file\";s:16:\"1x1-A-40x40.webp\";s:5:\"width\";i:40;s:6:\"height\";i:40;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:706;}}s:10:\"image_meta\";a:13:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:0:\"\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:1:\"0\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}s:3:\"alt\";s:0:\"\";}}","_wp_attachment_image_alt":"1x1 A Floorplan","post_date_gmt":"2026-07-22 20:08:29","comment_status":"open","ping_status":"closed","post_password":"","post_name":"1x1-a","to_ping":"","pinged":"","post_modified":"2026-07-22 20:08:37","post_modified_gmt":"2026-07-22 20:08:37","post_content_filtered":"","guid":"https:\/\/therivesandiego.jumpem.host\/wp-content\/uploads\/2025\/12\/1x1-A.webp","menu_order":0,"post_mime_type":"image\/webp","comment_count":"0","filter":"raw","url":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/1x1-A.webp","placeholder":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/1x1-A-40x40.webp"},"tags":[],"entrata_api_id":"821082","beds":"1","enable_occupants":false,"baths":"1","sq_ft_min":"518","sq_ft_range":false,"units_available":"","banner":"","banner_color":"","rates":[{"label":"Standard, Single-Private","value":2299,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1","value":2309,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, View","value":2309,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1-View","value":2319,"special_value":false,"message":false,"sold_out":false}],"hide_rates":true,"sold_out":false,"links":false,"gallery":false,"description":"","short_description":"","disclaimer":"","admin_fee":"","application_fee":"","security_deposit":"","tabs":false,"starting_value_label":"","min_rate":2299,"max_rate":2319,"min_rate_special":false,"max_rate_special":false,"entrata":{"floorplanID":821082,"floorplanName":"1x1 A","floorNumber":"4","webVisible":true,"available":false,"affordable":false,"applyLink":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","units":[4262405],"floors":["4"]},"apply_link":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","flip_id":"one-bedroom-671"}],"min_rate":2299,"max_rate":2319,"min_rate_special":false,"max_rate_special":false,"min_sqft":"518","max_sqft":"518","min_beds":"1","max_beds":"1","min_baths":"1","max_baths":"1","tags":[],"sold_out":false,"slug":"one-bedroom"},"Two Bedroom":{"description":"","floorplans":[{"id":672,"name":"2x2 A","slug":"2x2","thumbnail":{"abs_url":null,"object_type":"image","file_loc":"\/home\/csrivesandiego\/public_html\/wp-content\/uploads\/2025\/12\/2x2-A.webp","file":"2025\/12\/2x2-A.webp","id":1238,"sizes":{"thumbnail":{"file":"2x2-A-150x150.webp","width":150,"height":150,"mime-type":"image\/webp","filesize":3246}
4778,"placeholder":{"file":"2x2-A-40x40.webp","width":40,"height":40,"mime-type":"image\/webp","filesize":708}},"caption":"","ImageClass":"Timber\\Image","PostClass":"Timber\\Post","TermClass":"Timber\\Term","custom":[],"ID":1238,"post_author":"1","post_content":"","post_date":"2026-07-22 20:08:51","post_excerpt":"","post_parent":672,"post_status":"inherit","post_title":"2x2 A","post_type":"attachment","slug":null,"filesize":16218,"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""},"_wp_attachment_metadata":"a:6:{s:5:\"width\";i:640;s:6:\"height\";i:640;s:4:\"file\";s:18:\"2025\/12\/2x2-A.webp\";s:8:\"filesize\";i:16218;s:5:\"sizes\";a:2:{s:9:\"thumbnail\";a:5:{s:4:\"file\";s:18:\"2x2-A-150x150.webp\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:3246;}s:11:\"placeholder\";a:5:{s:4:\"file\";s:16:\"2x2-A-40x40.webp\";s:5:\"width\";i:40;s:6:\"height\";i:40;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:708;}}s:10:\"image_meta\";a:13:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:0:\"\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:1:\"0\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}s:3:\"alt\";s:0:\"\";}}","_wp_attachment_image_alt":"2x2 A Floorplan","post_date_gmt":"2026-07-22 20:08:51","comment_status":"open","ping_status":"closed","post_password":"","post_name":"2x2-a","to_ping":"","pinged":"","post_modified":"2026-07-22 20:08:57","post_modified_gmt":"2026-07-22 20:08:57","post_content_filtered":"","guid":"https:\/\/therivesandiego.jumpem.host\/wp-content\/uploads\/2025\/12\/2x2-A.webp","menu_order":0,"post_mime_type":"image\/webp","comment_count":"0","filter":"raw","url":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/2x2-A.webp","placeholder":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/2x2-A-40x40.webp"},"tags":[],"entrata_api_id":"821084","beds":"2","enable_occupants":false,"baths":"2","sq_ft_min":"1074","sq_ft_range":false,"units_available":"","banner":"","banner_color":"","rates":[{"label":"Standard, Duo-Shared","value":1129,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1","value":1139,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, View","value":1139,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-View","value":1149,"special_value":"","message":"","sold_out":false}],"hide_rates":true,"sold_out":false,"links":false,"gallery":false,"description":"","short_description":"","disclaimer":"","admin_fee":"","application_fee":"","security_deposit":"","tabs":false,"starting_value_label":"","min_rate":1129,"max_rate":1149,"min_rate_special":false,"max_rate_special":false,"entrata":{"floorplanID":821084,"floorplanName":"2x2 A","floorNumber":"4","webVisible":true,"available":false,"affordable":false,"applyLink":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","units":[4262442,4262443,4262476,4262458],"floors":["1","1","2","4"]},"apply_link":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","flip_id":"two-bedroom-672"},{"id":673,"name":"2x2 B","slug":"2x2-b","thumbnail":{"abs_url":null,"object_type":"image","file_loc":"\/home\/csrivesandiego\/public_html\/wp-content\/uploads\/2025\/12\/2x2-B.webp","file":"2025\/12\/2x2-B.webp","id":1239,"sizes":{"thumbnail":{"file":"2x2-B-150x150.webp","width":150,"height":150,"mime-type":"image\/webp","filesize":3998},"placeholder":{"file":"2x2-B-40x40.webp","width":40,"height":40,"mime-type":"image\/webp","filesize":812}},"caption":"","ImageClass":"Timber\\Image","PostClass":"Timber\\Post","TermClass":"Timber\\Term","custom":[],"ID":1239,"post_author":"1","post_content":"","post_date":"2026-07-22 20:09:11","post_excerpt":"","post_parent":673,"post_status":"inherit","post_title":"2x2 B","post_type":"attachment","slug":null,"filesize":13454,"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"
47780","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""},"_wp_attachment_metadata":"a:6:{s:5:\"width\";i:640;s:6:\"height\";i:640;s:4:\"file\";s:18:\"2025\/12\/2x2-B.webp\";s:8:\"filesize\";i:13454;s:5:\"sizes\";a:2:{s:9:\"thumbnail\";a:5:{s:4:\"file\";s:18:\"2x2-B-150x150.webp\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:3998;}s:11:\"placeholder\";a:5:{s:4:\"file\";s:16:\"2x2-B-40x40.webp\";s:5:\"width\";i:40;s:6:\"height\";i:40;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:812;}}s:10:\"image_meta\";a:13:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:0:\"\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:1:\"0\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}s:3:\"alt\";s:0:\"\";}}","_wp_attachment_image_alt":"2x2 B","post_date_gmt":"2026-07-22 20:09:11","comment_status":"open","ping_status":"closed","post_password":"","post_name":"2x2-b-2","to_ping":"","pinged":"","post_modified":"2026-07-22 20:09:15","post_modified_gmt":"2026-07-22 20:09:15","post_content_filtered":"","guid":"https:\/\/therivesandiego.jumpem.host\/wp-content\/uploads\/2025\/12\/2x2-B.webp","menu_order":0,"post_mime_type":"image\/webp","comment_count":"0","filter":"raw","url":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/2x2-B.webp","placeholder":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/2x2-B-40x40.webp"},"tags":[],"entrata_api_id":"821083","beds":"2","enable_occupants":false,"baths":"2","sq_ft_min":"1084","sq_ft_range":false,"units_available":"","banner":"","banner_color":"","rates":[{"label":"Standard, Duo-Shared","value":1149,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1","value":1159,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Duo-Shared, View","value":1159,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-View","value":1169,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Duo-Shared, Premium","value":1239,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-Premium","value":1249,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Premium-View","value":1249,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-Premium-View","value":1259,"special_value":false,"message":false,"sold_out":false}],"hide_rates":true,"sold_out":false,"links":false,"gallery":false,"description":"","short_description":"","disclaimer":"","admin_fee":"","application_fee":"","security_deposit":"","tabs":false,"starting_value_label":"","min_rate":1149,"max_rate":1259,"min_rate_special":false,"max_rate_special":false,"entrata":{"floorplanID":821083,"floorplanName":"2x2 B","floorNumber":"4","webVisible":true,"available":false,"affordable":false,"applyLink":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","units":[4262346,4262330],"floors":["2","2"]},"apply_link":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","flip_id":"two-bedroom-673"}],"min_rate":1129,"max_rate":1259,"min_rate_special":false,"max_rate_special":false,"min_sqft":"1074","max_sqft":"1084","min_beds":"2","max_beds":"2","min_baths":"2","max_baths":"2","tags":[],"sold_out":false,"slug":"two-bedroom"},"Three Bedroom":{"description":"","floorplans":[{"id":823,"name":"3x3 A","slug":"3x3-a","thumbnail":{"abs_url":null,"object_type":"image","file_loc":"\/home\/csrivesandiego\/public_html\/wp-content\/uploads\/2025\/12\/3x3-A.webp","file":"2025\/12\/3x3-A.webp","id":1240,"sizes":{"thumbnail":{"file":"3x3-A-150x150.webp","width":150,"height":150,"mime-type":"image\/webp","filesize":3348},"placeholder":{"file":"3x3-A-40x40.webp","width":40,"height":40,"mime-type":"image\/webp","filesize":722}},"caption":"","ImageClass":"Timber\\Image","PostClass":"Timber\\Post","TermClass":"Timber\\Term","custom"
4778:[],"ID":1240,"post_author":"1","post_content":"","post_date":"2026-07-22 20:09:36","post_excerpt":"","post_parent":823,"post_status":"inherit","post_title":"3x3 A","post_type":"attachment","slug":null,"filesize":17558,"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""},"_wp_attachment_metadata":"a:6:{s:5:\"width\";i:640;s:6:\"height\";i:640;s:4:\"file\";s:18:\"2025\/12\/3x3-A.webp\";s:8:\"filesize\";i:17558;s:5:\"sizes\";a:2:{s:9:\"thumbnail\";a:5:{s:4:\"file\";s:18:\"3x3-A-150x150.webp\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:3348;}s:11:\"placeholder\";a:5:{s:4:\"file\";s:16:\"3x3-A-40x40.webp\";s:5:\"width\";i:40;s:6:\"height\";i:40;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:722;}}s:10:\"image_meta\";a:13:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:0:\"\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:1:\"0\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}s:3:\"alt\";s:0:\"\";}}","_wp_attachment_image_alt":"3x3 A Floorplan","post_date_gmt":"2026-07-22 20:09:36","comment_status":"open","ping_status":"closed","post_password":"","post_name":"3x3-
4778a-2","to_ping":"","pinged":"","post_modified":"2026-07-22 20:09:44","post_modified_gmt":"2026-07-22 20:09:44","post_content_filtered":"","guid":"https:\/\/therivesandiego.jumpem.host\/wp-content\/uploads\/2025\/12\/3x3-A.webp","menu_order":0,"post_mime_type":"image\/webp","comment_count":"0","filter":"raw","url":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/3x3-A.webp","placeholder":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/3x3-A-40x40.webp"},"tags":[],"entrata_api_id":"821079","beds":"3","enable_occupants":false,"baths":"3","sq_ft_min":"1268","sq_ft_range":false,"units_available":"","banner":"","banner_color":"","rates":[{"label":"Standard, Duo-Shared","value":1099,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1","value":1109,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Duo-Shared, View","value":1109,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-View","value":1209,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private","value":1499,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1","value":1509,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, View","value":1509,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1-View","value":1519,"special_value":false,"message":false,"sold_out":false}],"hide_rates":true,"sold_out":false,"links":false,"gallery":false,"description":"","short_description":"","disclaimer":"","admin_fee":"","application_fee":"","security_deposit":"","tabs":false,"starting_value_label":"","min_rate":1099,"max_rate":1519,"min_rate_special":false,"max_rate_special":false,"entrata":{"floorplanID":821079,"floorplanName":"3x3 A","floorNumber":"4","webVisible":true,"available":false,"affordable":false,"applyLink":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","units":[4262507],"floors":["2"]},"apply_link":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","flip_id":"three-bedroom-823"}],"min_rate":1099,"max_rate":1519,"min_rate_special":false,"max_rate_special":false,"min_sqft":"1268","max_sqft":"1268","min_beds":"3","max_beds":"3","min_baths":"3","max_baths":"3","tags":[],"sold_out":false,"slug":"three-bedroom"},"Four Bedroom":{"description":"","floorplans":[{"id":678,"name":"4x4 A","slug":"4x4","thumbnail":{"abs_url":null,"object_type":"image","file_loc":"\/home\/csrivesandiego\/public_html\/wp-content\/uploads\/2025\/12\/4x4-A.webp","file":"2025\/12\/4x4-A.webp","id":1241,"sizes":{"thumbnail":{"file":"4x4-A-150x150.webp","width":150,"height":150,"mime-type":"image\/webp","filesize":3154},"placeholder":{"file":"4x4-A-40x40.webp","width":40,"height":40,"mime-type":"image\/webp","filesize":602}},"caption":"","ImageClass":"Timber\\Image","PostClass":"Timber\\Post","TermClass":"Timber\\Term","custom":[],"ID":1241,"post_author":"1","post_content":"","post_date":"2026-07-22 20:10:04","post_excerpt":"","post_parent":678,"post_status":"inherit","post_title":"4x4 A","post_type":"attachment","slug":null,"filesize":16000,"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""},"_wp_attachment_metadata":"a:6:{s:5:\"width\";i:640;s:6:\"height\";i:640;s:4:\"file\";s:18:\"2025\/12\/4x4-A.webp\";s:8:\"filesize\";i:16000;s:5:\"sizes\";a:2:{s:9:\"thumbnail\";a:5:{s:4:\"file\";s:18:\"4x4-A-150x150.webp\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:3154;}s:11:\"placeholder\";a:5:{s:4:\"file\";s:16:\"4x4-A-40x40.webp\";s:5:\"width\";i:40;s:6:\"height\";i:40;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:602;}}s:10:\"image_meta\";a:13:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:0:\"\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:1:\"0\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}s:3:\"alt\";s:0:\"\";}}","_wp_attachment_image_alt":"4x4 A","post_date_gmt":"2026-07-22 20:10:04","comment_status":"open","ping_status":"closed","post_password":"","post_name":"4x4-a","to_ping":"","pinged":"","post_modified":"2026-07-22 20:10:08","post_modified_gmt":"2026-07-22 20:10:08","post_content_filtered":"","guid":"https:\/\/therivesandiego.jumpem.host\/wp-content\/uploads\/2025\/12\/4x4-A.webp","menu_order":0,"post_mime_type":"image\/webp","comment_count":"0","filter":"raw","url":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/4x4-A.webp","placeholder":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/4x4-A-40x40.webp"},"tags":[],"entrata_api_id":"821081","beds":"4","enable_occupants":false,"baths":"4","sq_ft_min":"1457","sq_ft_range":false,"units_available":"","banner":"","banner_color":"","rates":[{"label":"Standard, Single-Private","value":1549,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1","value":1559,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, View","value":1559,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1-View","value":1569,"special_value":false,"message":false,"sold_out":false}],"hide_rates":true,"sold_out":false,"links":false,"gallery":false,"description":"","short_description":"","disclaimer":"","admin_fee":"","application_fee":"","security_deposit":"","tabs":false,"starting_value_label":"","min_rate":1549,"max_rate":1569,"min_rate_special":false,"max_rate_special":false,"entrata":{"floorplanID":821081,"floorplanName":"4x4 A","floorNumber":"4","webVisible":true,"available":false,"affordable":false,"applyLink":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","units":[4262359],"floors":["2"]},"apply_link":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","flip_id":"four-bedroom-678"}
4778,{"id":827,"name":"4x4 B","slug":"4x4-b","thumbnail":{"abs_url":null,"object_type":"image","file_loc":"\/home\/csrivesandiego\/public_html\/wp-content\/uploads\/2025\/12\/4x4-B.webp","file":"2025\/12\/4x4-B.webp","id":1242,"sizes":{"thumbnail":{"file":"4x4-B-150x150.webp","width":150,"height":150,"mime-type":"image\/webp","filesize":3550},"placeholder":{"file":"4x4-B-40x38.webp","width":40,"height":38,"mime-type":"image\/webp","filesize":850}},"caption":"","ImageClass":"Timber\\Image","PostClass":"Timber\\Post","TermClass":"Timber\\Term","custom":[],"ID":1242,"post_author":"1","post_content":"","post_date":"2026-07-22 20:10:32","post_excerpt":"","post_parent":827,"post_status":"inherit","post_title":"4x4 B","post_type":"attachment","slug":null,"filesize":13902,"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""},"_wp_attachment_metadata":"a:6:{s:5:\"width\";i:483;s:6:\"height\";i:455;s:4:\"file\";s:18:\"2025\/12\/4x4-B.webp\";s:8:\"filesize\";i:13902;s:5:\"sizes\";a:2:{s:9:\"thumbnail\";a:5:{s:4:\"file\";s:18:\"4x4-B-150x150.webp\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:3550;}s:11:\"placeholder\";a:5:{s:4:\"file\";s:16:\"4x4-B-40x38.webp\";s:5:\"width\";i:40;s:6:\"height\";i:38;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:850;}}s:10:\"image_meta\";a:13:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:0:\"\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:1:\"0\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}s:3:\"alt\";s:0:\"\";}}","_wp_attachment_image_alt":"4x4 B Floorplan","post_date_gmt":"2026-07-22 20:10:32","comment_status":"open","ping_status":"closed","post_password":"","post_name":"4x4-b-2","to_ping":"","pinged":"","post_modified":"2026-07-22 20:10:42","post_modified_gmt":"2026-07-22 20:10:42","post_content_filtered":"","guid":"https:\/\/therivesandiego.jumpem.host\/wp-content\/uploads\/2025\/12\/4x4-B.webp","menu_order":0,"post_mime_type":"image\/webp","comment_count":"0","filter":"raw","url":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/4x4-B.webp","placeholder":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/4x4-B-40x38.webp"},"tags":[],"entrata_api_id":"821080","beds":"4","enable_occupants":false,"baths":"4","sq_ft_min":"1714","sq_ft_range":false,"units_available":"","banner":"","banner_color":"","rates":[{"label":"Standard, Duo-Shared","value":999,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1","value":1009,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, View","value":1009,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-View","value":1019,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Premium","value":1089,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-Premium","value":1099,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Premium-View","value":1099,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-Premium-View","value":1109,"special_value":"","message":"","sold_out":false},{"label":"Standard, Single-Private","value":1435,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1","value":1445,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, View","value":1445,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1-View","value":1455,"special_value":false,"message":false,"sold_out":false}],"hide_rates":true,"sold_out":false,"links":false,"gallery":false,"description":"","short_description":"","disclaimer":"","admin_fee":"","application_fee":"","security_deposit":"","tabs":false,"starting_value_label":"","min_rate":999,"max_rate":1455,"min_rate_special":false,"max_rate_special":false,"entrata":{"floorplanID":821080,"floorplanName":"4x4 B","floorNumber":"4","webVisible":true,"available":false,"affordable":false,"applyLink":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","units":[4262580,4262515,4262584,4262623,4262597,4262606,4262607,4262554,4262566,4262617,4262568,4262570],"floors":["1","1","2","2","3","4","4","2","4","2","3","4"]},"apply_link":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","flip_id":"four-bedroom-827"}],"min_rate":999,"max_rate":1569,"min_rate_special":false,"max_rate_special":false,"min_sqft":"1457","max_sqft":"1714","min_beds":"4","max_beds":"4","min_baths":"4","max_baths":"4","tags":[],"sold_out":false,"slug":"four-bedroom"},"Six Bedroom":{"description":"","floorplans":[{"id":1267,"name":"4x4 B (6 Bed)","slug":"4x4-b-6-bed","thumbnail":{"abs_url":null,"object_type":"image","file_loc":"\/home\/csrivesandiego\/public_html\/wp-content\/uploads\/2025\/12\/4x4-B.webp","file":"2025\/12\/4x4-B.webp","id":1242,"sizes":{"thumbnail":{"file":"4x4-B-150x150.webp","width":150,"height":150,"mime-type":"image\/webp","filesize":3550}
4778,"placeholder":{"file":"4x4-B-40x38.webp","width":40,"height":38,"mime-type":"image\/webp","filesize":850}},"caption":"","ImageClass":"Timber\\Image","PostClass":"Timber\\Post","TermClass":"Timber\\Term","custom":[],"ID":1242,"post_author":"1","post_content":"","post_date":"2026-07-22 20:10:32","post_excerpt":"","post_parent":827,"post_status":"inherit","post_title":"4x4 B","post_type":"attachment","slug":null,"filesize":13902,"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""},"_wp_attachment_metadata":"a:6:{s:5:\"width\";i:483;s:6:\"height\";i:455;s:4:\"file\";s:18:\"2025\/12\/4x4-B.webp\";s:8:\"filesize\";i:13902;s:5:\"sizes\";a:2:{s:9:\"thumbnail\";a:5:{s:4:\"file\";s:18:\"4x4-B-150x150.webp\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:3550;}s:11:\"placeholder\";a:5:{s:4:\"file\";s:16:\"4x4-B-40x38.webp\";s:5:\"width\";i:40;s:6:\"height\";i:38;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:850;}}s:10:\"image_meta\";a:13:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:0:\"\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:1:\"0\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}s:3:\"alt\";s:0:\"\";}}","_wp_attachment_image_alt":"4x4 B Floorplan","post_date_gmt":"2026-07-22 20:10:32","comment_status":"open","ping_status":"closed","post_password":"","post_name":"4x4-b-2","to_ping":"","pinged":"","post_modified":"2026-07-22 20:10:42","post_modified_gmt":"2026-07-22 20:10:42","post_content_filtered":"","guid":"https:\/\/therivesandiego.jumpem.host\/wp-content\/uploads\/2025\/12\/4x4-B.webp","menu_order":0,"post_mime_type":"image\/webp","comment_count":"0","filter":"raw","url":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/4x4-B.webp","placeholder":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/4x4-B-40x38.webp"},"tags":[],"entrata_api_id":"821080","beds":"4","enable_occupants":false,"baths":"4","sq_ft_min":"1714","sq_ft_range":false,"units_available":"","banner":"","banner_color":"","starting_value_label":"","rates":[{"label":"Standard, Duo-Shared","value":999,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1","value":1009,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, View","value":1009,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-View","value":1019,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Premium","value":1089,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-Premium","value":1099,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Premium-View","value":1099,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-Premium-View","value":1109,"special_value":"","message":"","sold_out":false},{"label":"Standard, Single-Private","value":1435,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1","value":1445,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, View","value":1445,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1-View","value":1455,"special_value":false,"message":false,"sold_out":false}],"hide_rates":true,"sold_out":false,"links":false,"gallery":false,"description":"","short_description":"","disclaimer":"","admin_fee":"","application_fee":"","security_deposit":"","tabs":false,"min_rate":999,"max_rate":1455,"min_rate_special":false,"max_rate_special":false,"entrata":{"floorplanID":821080,"floorplanName":"4x4 B","floorNumber":"4","webVisible":true,"available":false,"affordable":false,"applyLink":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","units":[4262580,4262515,4262584,4262623,4262597,4262606,4262607,4262554,4262566,4262617,4262568,4262570],"floors":["1","1","2","2","3","4","4","2","4","2","3","4"]},"apply_link":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","flip_id":"six-bedroom-1267"}],"min_rate":999,"max_rate":1455,"min_rate_special":false,"max_rate_special":false,"min_sqft":"1714","max_sqft":"1714","min_beds":"4","max_beds":"4","min_baths":"4","max_baths":"4","tags":[],"sold_out":false,"slug":"six-bedroom"}},"units":{"4262383":{"id":4262383,"number":"1106","rent":2299,"availableOn":"08\/21\/2025","sqft":518,"floor":"1","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262384":{"id":4262384,"number":"1121","rent":2299,"availableOn":"08\/21\/2025","sqft":518,"floor":"1","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262421":{"id":4262421,"number":"1141","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"1","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262422":{"id":4262422,"number":"1206","rent":2299,"availableOn":"02\/01\/2025","sqft":518,"floor":"2","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262423":{"id":4262423,"number":"1221","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"2","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262424":{"id":4262424,"number":"1241","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"2","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262427":{"id":4262427,"number":"1251","rent":2299,"availableOn":"07\/22\/2024","sqft":518,"floor":"2","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262387":{"id":4262387,"number":"1259","rent":2299,"availableOn":"07\/26\/2025","sqft":518,"floor":"2","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"}
4778,"4262388":{"id":4262388,"number":"1260","rent":2299,"availableOn":"07\/27\/2026","sqft":518,"floor":"2","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262428":{"id":4262428,"number":"1306","rent":2299,"availableOn":"07\/27\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262389":{"id":4262389,"number":"1310","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262429":{"id":4262429,"number":"1321","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262430":{"id":4262430,"number":"1324","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262431":{"id":4262431,"number":"1325","rent":2299,"availableOn":"07\/27\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262390":{"id":4262390,"number":"1339","rent":2299,"availableOn":"07\/26\/2025","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262391":{"id":4262391,"number":"1340","rent":2299,"availableOn":"07\/27\/2025","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262432":{"id":4262432,"number":"1341","rent":2299,"availableOn":"07\/27\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262392":{"id":4262392,"number":"1350","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262393":{"id":4262393,"number":"1351","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262394":{"id":4262394,"number":"1359","rent":2299,"availableOn":"07\/26\/2025","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262433":{"id":4262433,"number":"1360","rent":2299,"availableOn":"07\/26\/2025","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262434":{"id":4262434,"number":"1361","rent":2299,"availableOn":"07\/27\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262425":{"id":4262425,"number":"1363","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262426":{"id":4262426,"number":"1364","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262435":{"id":4262435,"number":"1366","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262436":{"id":4262436,"number":"1367","rent":2299,"availableOn":"07\/07\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262395":{"id":4262395,"number":"1406","rent":2299,"availableOn":"07\/27\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262382":{"id":4262382,"number":"1410","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"}
4778,"4262396":{"id":4262396,"number":"1421","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262397":{"id":4262397,"number":"1424","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262385":{"id":4262385,"number":"1425","rent":2299,"availableOn":"07\/22\/2024","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262398":{"id":4262398,"number":"1439","rent":2299,"availableOn":"07\/26\/2025","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262399":{"id":4262399,"number":"1440","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262400":{"id":4262400,"number":"1441","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262401":{"id":4262401,"number":"1450","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262437":{"id":4262437,"number":"1451","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262438":{"id":4262438,"number":"1459","rent":2299,"availableOn":"07\/25\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262439":{"id":4262439,"number":"1460","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262402":{"id":4262402,"number":"1461","rent":2299,"availableOn":"07\/27\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262403":{"id":4262403,"number":"1463","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262404":{"id":4262404,"number":"1464","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262405":{"id":4262405,"number":"1466","rent":2299,"availableOn":"11\/03\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":true,"BuildingName":"1"},"4262406":{"id":4262406,"number":"1467","rent":2299,"availableOn":"04\/30\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262407":{"id":4262407,"number":"2106","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"1","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262408":{"id":4262408,"number":"2114","rent":2299,"availableOn":"01\/02\/2023","sqft":518,"floor":"1","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262409":{"id":4262409,"number":"2116","rent":2299,"availableOn":"07\/27\/2026","sqft":518,"floor":"1","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262410":{"id":4262410,"number":"2117","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"1","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262411":{"id":4262411,"number":"2206","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"2","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262440":{"id":4262440,"number":"2214","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"2","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262412":{"id":4262412,"number":"2216","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"2","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262413":{"id":4262413,"number":"2217","rent":2299,"availableOn":"05\/29\/2026","sqft":518,"floor":"2","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"}
4778,"4262414":{"id":4262414,"number":"2306","rent":2299,"availableOn":"11\/14\/2023","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262415":{"id":4262415,"number":"2314","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262416":{"id":4262416,"number":"2316","rent":2299,"availableOn":"07\/24\/2023","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262417":{"id":4262417,"number":"2317","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"3","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262386":{"id":4262386,"number":"2406","rent":2299,"availableOn":"07\/26\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262418":{"id":4262418,"number":"2414","rent":2299,"availableOn":"06\/25\/2025","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262419":{"id":4262419,"number":"2416","rent":2299,"availableOn":"07\/26\/2022","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262420":{"id":4262420,"number":"2417","rent":2299,"availableOn":"07\/27\/2026","sqft":518,"floor":"4","floorplanID":821082,"unitTypeName":"1x1 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262506":{"id":4262506,"number":"1101-2","rent":1099,"availableOn":"07\/26\/2026","sqft":1268,"floor":"1","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262585":{"id":4262585,"number":"1102-1","rent":386,"availableOn":"07\/22\/2024","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262372":{"id":4262372,"number":"1103-2","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"1","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262352":{"id":4262352,"number":"1104-1","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"1","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262512":{"id":4262512,"number":"1105-3B","rent":386,"availableOn":"08\/21\/2025","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262586":{"id":4262586,"number":"1107-4A","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262371":{"id":4262371,"number":"1108-1","rent":1549,"availableOn":"07\/25\/2026","sqft":1457,"floor":"1","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262514":{"id":4262514,"number":"1109-2","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262326":{"id":4262326,"number":"1112-1B","rent":1149,"availableOn":"07\/27\/2026","sqft":1084,"floor":"1","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262467":{"id":4262467,"number":"1113-2B","rent":1129,"availableOn":"07\/27\/2026","sqft":1074,"floor":"1","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262468":{"id":4262468,"number":"1114-2B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"1","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262559":{"id":4262559,"number":"1115-1","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262587":{"id":4262587,"number":"1116-3B","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262588":{"id":4262588,"number":"1117-2","rent":386,"availableOn":"08\/21\/2025","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262575":{"id":4262575,"number":"1118-3B","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262442":{"id":4262442,"number":"1119-2B","rent":1129,"availableOn":"09\/01\/2026","sqft":1074,"floor":"1","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":true,"BuildingName":"1"},"4262443":{"id":4262443,"number":"1120-2B","rent":1129,"availableOn":"08\/27\/2026","sqft":1074,"floor":"1","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":true,"BuildingName":"1"},"4262580":{"id":4262580,"number":"1122-2","rent":386,"availableOn":"06\/01\/2025","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":true,"BuildingName":"1"},"4262296":{"id":4262296,"number":"1123-1A","rent":1149,"availableOn":"09\/09\/2025","sqft":1084,"floor":"1","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262477":{"id":4262477,"number":"1126-1B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"1","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262473":{"id":4262473,"number":"1128-2A","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"1","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"}
4778,"4262293":{"id":4262293,"number":"1129-1B","rent":1149,"availableOn":"07\/28\/2026","sqft":1084,"floor":"1","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262515":{"id":4262515,"number":"1130-2","rent":386,"availableOn":"07\/27\/2027","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":true,"BuildingName":"1"},"4262337":{"id":4262337,"number":"1131-2B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"1","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262582":{"id":4262582,"number":"1132-1","rent":386,"availableOn":"07\/27\/2026","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262589":{"id":4262589,"number":"1133-3B","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262481":{"id":4262481,"number":"1134-2A","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"1","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262445":{"id":4262445,"number":"1135-2A","rent":1129,"availableOn":"07\/26\/2025","sqft":1074,"floor":"1","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262520":{"id":4262520,"number":"1136-2","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262373":{"id":4262373,"number":"1137-3","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"1","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262307":{"id":4262307,"number":"1138-1A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"1","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262297":{"id":4262297,"number":"1142-1B","rent":1149,"availableOn":"07\/26\/2025","sqft":1084,"floor":"1","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262517":{"id":4262517,"number":"1143-3A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262444":{"id":4262444,"number":"1144-2A","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"1","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262356":{"id":4262356,"number":"1145-4","rent":1549,"availableOn":"08\/21\/2026","sqft":1457,"floor":"1","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262518":{"id":4262518,"number":"1146-4A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262357":{"id":4262357,"number":"1147-3","rent":1549,"availableOn":"07\/26\/2025","sqft":1457,"floor":"1","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262334":{"id":4262334,"number":"1148-2A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"1","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262299":{"id":4262299,"number":"1149-2A","rent":1149,"availableOn":"07\/26\/2025","sqft":1084,"floor":"1","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262493":{"id":4262493,"number":"1152-3B","rent":1099,"availableOn":"07\/26\/2025","sqft":1268,"floor":"1","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262519":{"id":4262519,"number":"1153-3A","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262494":{"id":4262494,"number":"1154-2","rent":1099,"availableOn":"07\/26\/2026","sqft":1268,"floor":"1","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262505":{"id":4262505,"number":"1155-1","rent":1099,"availableOn":"07\/26\/2026","sqft":1268,"floor":"1","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262474":{"id":4262474,"number":"1156-2A","rent":1129,"availableOn":"07\/26\/2025","sqft":1074,"floor":"1","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262521":{"id":4262521,"number":"1157-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"}
4778,"4262338":{"id":4262338,"number":"1158-1B","rent":1149,"availableOn":"07\/22\/2024","sqft":1084,"floor":"1","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262590":{"id":4262590,"number":"1201-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262591":{"id":4262591,"number":"1202-1","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262375":{"id":4262375,"number":"1203-3","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"2","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262358":{"id":4262358,"number":"1204-4","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"2","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262576":{"id":4262576,"number":"1205-4A","rent":386,"availableOn":"07\/27\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262577":{"id":4262577,"number":"1207-3A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262359":{"id":4262359,"number":"1208-1","rent":1549,"availableOn":"07\/27\/2027","sqft":1457,"floor":"2","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":true,"BuildingName":"1"},"4262522":{"id":4262522,"number":"1209-3B","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262300":{"id":4262300,"number":"1212-1A","rent":1149,"availableOn":"07\/26\/2025","sqft":1084,"floor":"2","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262446":{"id":4262446,"number":"1213-1A","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"2","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262447":{"id":4262447,"number":"1214-1A","rent":1129,"availableOn":"07\/26\/2025","sqft":1074,"floor":"2","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262523":{"id":4262523,"number":"1215-3B","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262592":{"id":4262592,"number":"1216-3A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262584":{"id":4262584,"number":"1217-3A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":true,"BuildingName":"1"},"4262578":{"id":4262578,"number":"1218-3B","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262475":{"id":4262475,"number":"1219-1B","rent":1129,"availableOn":"07\/26\/2025","sqft":1074,"floor":"2","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262448":{"id":4262448,"number":"1220-2A","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"2","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262579":{"id":4262579,"number":"1222-4B","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262335":{"id":4262335,"number":"1223-1A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"2","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262476":{"id":4262476,"number":"1226-2B","rent":1129,"availableOn":"07\/27\/2027","sqft":1074,"floor":"2","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":true,"BuildingName":"1"},"4262593":{"id":4262593,"number":"1227-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262482":{"id":4262482,"number":"1228-1B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"2","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262301":{"id":4262301,"number":"1229-1B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"2","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262524":{"id":4262524,"number":"1230-4A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262302":{"id":4262302,"number":"1231-2B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"2","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262525":{"id":4262525,"number":"1232-3B","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262526":{"id":4262526,"number":"1233-1","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"}
4778,"4262480":{"id":4262480,"number":"1234-2B","rent":1129,"availableOn":"08\/26\/2026","sqft":1074,"floor":"2","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262483":{"id":4262483,"number":"1235-2A","rent":1129,"availableOn":"07\/27\/2026","sqft":1074,"floor":"2","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262623":{"id":4262623,"number":"1236-4A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":true,"BuildingName":"1"},"4262376":{"id":4262376,"number":"1237-4","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"2","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262303":{"id":4262303,"number":"1238-2B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"2","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262339":{"id":4262339,"number":"1242-2B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"2","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262594":{"id":4262594,"number":"1243-3B","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262449":{"id":4262449,"number":"1244-2B","rent":1129,"availableOn":"07\/26\/2025","sqft":1074,"floor":"2","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262374":{"id":4262374,"number":"1245-1","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"2","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262595":{"id":4262595,"number":"1246-3B","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262377":{"id":4262377,"number":"1247-3","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"2","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262340":{"id":4262340,"number":"1248-2B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"2","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262341":{"id":4262341,"number":"1249-1A","rent":1149,"availableOn":"07\/26\/2025","sqft":1084,"floor":"2","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262507":{"id":4262507,"number":"1252-3B","rent":1099,"availableOn":"07\/27\/2027","sqft":1268,"floor":"2","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":true,"BuildingName":"1"},"4262596":{"id":4262596,"number":"1253-3A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262495":{"id":4262495,"number":"1254-2","rent":1099,"availableOn":"08\/25\/2026","sqft":1268,"floor":"2","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262496":{"id":4262496,"number":"1255-2","rent":1099,"availableOn":"07\/26\/2026","sqft":1268,"floor":"2","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262450":{"id":4262450,"number":"1256-1A","rent":1129,"availableOn":"07\/28\/2026","sqft":1074,"floor":"2","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262511":{"id":4262511,"number":"1257-4B","rent":386,"availableOn":"07\/27\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262304":{"id":4262304,"number":"1258-1A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"2","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262527":{"id":4262527,"number":"1301-3A","rent":386,"availableOn":"07\/10\/2024","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"}
4778,"4262528":{"id":4262528,"number":"1302-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262360":{"id":4262360,"number":"1303-4","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"3","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262378":{"id":4262378,"number":"1304-3","rent":1549,"availableOn":"03\/31\/2026","sqft":1457,"floor":"3","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262597":{"id":4262597,"number":"1305-3B","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":true,"BuildingName":"1"},"4262529":{"id":4262529,"number":"1307-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262361":{"id":4262361,"number":"1308-3","rent":1549,"availableOn":"07\/26\/2025","sqft":1457,"floor":"3","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262530":{"id":4262530,"number":"1309-3B","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262331":{"id":4262331,"number":"1311-1B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262305":{"id":4262305,"number":"1312-2B","rent":1149,"availableOn":"09\/22\/2025","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262451":{"id":4262451,"number":"1313-1A","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"3","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262452":{"id":4262452,"number":"1314-2A","rent":1129,"availableOn":"07\/27\/2026","sqft":1074,"floor":"3","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262531":{"id":4262531,"number":"1315-1","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262532":{"id":4262532,"number":"1316-3B","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262598":{"id":4262598,"number":"1317-1","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262599":{"id":4262599,"number":"1318-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262484":{"id":4262484,"number":"1319-2B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"3","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262485":{"id":4262485,"number":"1320-1A","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"3","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262600":{"id":4262600,"number":"1322-1","rent":386,"availableOn":"07\/27\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262342":{"id":4262342,"number":"1323-1B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262453":{"id":4262453,"number":"1326-2B","rent":1129,"availableOn":"07\/27\/2026","sqft":1074,"floor":"3","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262533":{"id":4262533,"number":"1327-4A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262454":{"id":4262454,"number":"1328-1B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"3","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262306":{"id":4262306,"number":"1329-1B","rent":1149,"availableOn":"07\/20\/2026","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262534":{"id":4262534,"number":"1330-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262343":{"id":4262343,"number":"1331-2A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262601":{"id":4262601,"number":"1332-3A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262535":{"id":4262535,"number":"1333-4A","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262441":{"id":4262441,"number":"1334-1A","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"3","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262455":{"id":4262455,"number":"1335-2A","rent":1129,"availableOn":"07\/27\/2025","sqft":1074,"floor":"3","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262537":{"id":4262537,"number":"1336-4A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262350":{"id":4262350,"number":"1337-1","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"3","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262308":{"id":4262308,"number":"1338-2A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262344":{"id":4262344,"number":"1342-1A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"}
4778,"4262602":{"id":4262602,"number":"1343-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262456":{"id":4262456,"number":"1344-2B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"3","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262351":{"id":4262351,"number":"1345-4","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"3","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262538":{"id":4262538,"number":"1346-1","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262353":{"id":4262353,"number":"1347-4","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"3","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262309":{"id":4262309,"number":"1348-1A","rent":1149,"availableOn":"07\/26\/2025","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262310":{"id":4262310,"number":"1349-2B","rent":1149,"availableOn":"07\/26\/2025","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262497":{"id":4262497,"number":"1352-3B","rent":1099,"availableOn":"07\/26\/2026","sqft":1268,"floor":"3","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262536":{"id":4262536,"number":"1353-3A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262498":{"id":4262498,"number":"1354-3B","rent":1099,"availableOn":"07\/26\/2026","sqft":1268,"floor":"3","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262499":{"id":4262499,"number":"1355-3A","rent":1099,"availableOn":"07\/16\/2024","sqft":1268,"floor":"3","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262486":{"id":4262486,"number":"1356-2B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"3","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262603":{"id":4262603,"number":"1357-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262294":{"id":4262294,"number":"1358-1A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262345":{"id":4262345,"number":"1362-1B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262336":{"id":4262336,"number":"1365-2A","rent":1149,"availableOn":"10\/22\/2025","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262604":{"id":4262604,"number":"1401-4A","rent":386,"availableOn":"09\/05\/2023","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262539":{"id":4262539,"number":"1402-4B","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262354":{"id":4262354,"number":"1403-3","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"4","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262355":{"id":4262355,"number":"1404-1","rent":1549,"availableOn":"07\/27\/2026","sqft":1457,"floor":"4","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262513":{"id":4262513,"number":"1405-3A","rent":386,"availableOn":"02\/01\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262540":{"id":4262540,"number":"1407-3A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262362":{"id":4262362,"number":"1408-4","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"4","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262542":{"id":4262542,"number":"1409-1","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262295":{"id":4262295,"number":"1411-1B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262311":{"id":4262311,"number":"1412-2B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262487":{"id":4262487,"number":"1413-1B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"4","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262488":{"id":4262488,"number":"1414-2A","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"4","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262605":{"id":4262605,"number":"1415-3B","rent":386,"availableOn":"07\/27\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262541":{"id":4262541,"number":"1416-3A","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262583":{"id":4262583,"number":"1417-4B","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"}
4778,"4262543":{"id":4262543,"number":"1418-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262458":{"id":4262458,"number":"1419-1A","rent":1129,"availableOn":"07\/27\/2027","sqft":1074,"floor":"4","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":true,"BuildingName":"1"},"4262457":{"id":4262457,"number":"1420-1B","rent":1129,"availableOn":"06\/14\/2026","sqft":1074,"floor":"4","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262624":{"id":4262624,"number":"1422-3A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262312":{"id":4262312,"number":"1423-1A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262478":{"id":4262478,"number":"1426-2B","rent":1129,"availableOn":"08\/21\/2025","sqft":1074,"floor":"4","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262544":{"id":4262544,"number":"1427-4B","rent":386,"availableOn":"10\/30\/2025","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262459":{"id":4262459,"number":"1428-2B","rent":1129,"availableOn":"01\/23\/2026","sqft":1074,"floor":"4","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262313":{"id":4262313,"number":"1429-1A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262545":{"id":4262545,"number":"1430-1","rent":386,"availableOn":"08\/25\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262314":{"id":4262314,"number":"1431-2B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262606":{"id":4262606,"number":"1432-4B","rent":386,"availableOn":"07\/27\/2027","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":true,"BuildingName":"1"},"4262607":{"id":4262607,"number":"1433-3A","rent":386,"availableOn":"07\/27\/2027","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":true,"BuildingName":"1"},"4262472":{"id":4262472,"number":"1434-1B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"4","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262479":{"id":4262479,"number":"1435-2A","rent":1129,"availableOn":"09\/30\/2026","sqft":1074,"floor":"4","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262546":{"id":4262546,"number":"1436-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262363":{"id":4262363,"number":"1437-4","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"4","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262315":{"id":4262315,"number":"1438-1B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262316":{"id":4262316,"number":"1442-1B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262547":{"id":4262547,"number":"1443-1","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262460":{"id":4262460,"number":"1444-1B","rent":1129,"availableOn":"07\/27\/2026","sqft":1074,"floor":"4","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"}
4778,"4262364":{"id":4262364,"number":"1445-1","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"4","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262548":{"id":4262548,"number":"1446-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262365":{"id":4262365,"number":"1447-4","rent":1549,"availableOn":"07\/22\/2024","sqft":1457,"floor":"4","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262317":{"id":4262317,"number":"1448-1A","rent":1149,"availableOn":"07\/27\/2026","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262318":{"id":4262318,"number":"1449-2B","rent":1149,"availableOn":"07\/26\/2025","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262508":{"id":4262508,"number":"1452-3B","rent":1099,"availableOn":"07\/22\/2024","sqft":1268,"floor":"4","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262608":{"id":4262608,"number":"1453-1","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262500":{"id":4262500,"number":"1454-1","rent":1099,"availableOn":"07\/26\/2026","sqft":1268,"floor":"4","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262501":{"id":4262501,"number":"1455-3A","rent":1099,"availableOn":"07\/26\/2026","sqft":1268,"floor":"4","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262461":{"id":4262461,"number":"1456-2B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"4","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"1"},"4262549":{"id":4262549,"number":"1457-3A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262333":{"id":4262333,"number":"1458-1B","rent":1149,"availableOn":"07\/26\/2025","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262319":{"id":4262319,"number":"1462-2B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262320":{"id":4262320,"number":"1465-1B","rent":1149,"availableOn":"07\/24\/2023","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"1"},"4262321":{"id":4262321,"number":"2101-2B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"1","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262550":{"id":4262550,"number":"2102-3B","rent":386,"availableOn":"05\/06\/2026","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262332":{"id":4262332,"number":"2104-1B","rent":1149,"availableOn":"07\/28\/2026","sqft":1084,"floor":"1","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262366":{"id":4262366,"number":"2105-3","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"1","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262379":{"id":4262379,"number":"2107-1","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"1","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262489":{"id":4262489,"number":"2108-1B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"1","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262462":{"id":4262462,"number":"2109-2A","rent":1129,"availableOn":"07\/26\/2025","sqft":1074,"floor":"1","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262551":{"id":4262551,"number":"2110-3A","rent":386,"availableOn":"07\/27\/2026","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"}
4778,"4262349":{"id":4262349,"number":"2111-2B","rent":1149,"availableOn":"07\/28\/2026","sqft":1084,"floor":"1","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262463":{"id":4262463,"number":"2112-2A","rent":1129,"availableOn":"09\/30\/2026","sqft":1074,"floor":"1","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262502":{"id":4262502,"number":"2113-2","rent":1099,"availableOn":"07\/26\/2026","sqft":1268,"floor":"1","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262552":{"id":4262552,"number":"2115-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262553":{"id":4262553,"number":"2118-3A","rent":386,"availableOn":"08\/20\/2026","sqft":1714,"floor":"1","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262503":{"id":4262503,"number":"2119-3A","rent":1099,"availableOn":"07\/26\/2026","sqft":1268,"floor":"1","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262322":{"id":4262322,"number":"2201-1B","rent":1149,"availableOn":"07\/26\/2025","sqft":1084,"floor":"2","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262609":{"id":4262609,"number":"2202-1","rent":386,"availableOn":"07\/08\/2024","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262346":{"id":4262346,"number":"2203-2A","rent":1149,"availableOn":"07\/27\/2027","sqft":1084,"floor":"2","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":true,"BuildingName":"2"},"4262323":{"id":4262323,"number":"2204-1B","rent":1149,"availableOn":"07\/26\/2025","sqft":1084,"floor":"2","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262367":{"id":4262367,"number":"2205-1","rent":1549,"availableOn":"07\/24\/2023","sqft":1457,"floor":"2","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262368":{"id":4262368,"number":"2207-4","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"2","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262490":{"id":4262490,"number":"2208-1B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"2","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262491":{"id":4262491,"number":"2209-2A","rent":1129,"availableOn":"07\/27\/2026","sqft":1074,"floor":"2","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262610":{"id":4262610,"number":"2210-3B","rent":386,"availableOn":"07\/27\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262330":{"id":4262330,"number":"2211-2B","rent":1149,"availableOn":"08\/27\/2026","sqft":1084,"floor":"2","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":true,"BuildingName":"2"},"4262492":{"id":4262492,"number":"2212-1B","rent":1129,"availableOn":"07\/27\/2026","sqft":1074,"floor":"2","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262611":{"id":4262611,"number":"2213-1","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262554":{"id":4262554,"number":"2215-3B","rent":386,"availableOn":"07\/27\/2027","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":true,"BuildingName":"2"},"4262612":{"id":4262612,"number":"2218-3A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262613":{"id":4262613,"number":"2219-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262347":{"id":4262347,"number":"2301-1A","rent":1149,"availableOn":"07\/26\/2025","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262555":{"id":4262555,"number":"2302-1","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"}
4778,"4262298":{"id":4262298,"number":"2303-2A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262324":{"id":4262324,"number":"2304-1A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262369":{"id":4262369,"number":"2305-3","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"3","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262370":{"id":4262370,"number":"2307-4","rent":1549,"availableOn":"07\/26\/2025","sqft":1457,"floor":"3","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262464":{"id":4262464,"number":"2308-2A","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"3","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262465":{"id":4262465,"number":"2309-2B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"3","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262556":{"id":4262556,"number":"2310-3A","rent":386,"availableOn":"07\/27\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262325":{"id":4262325,"number":"2311-2A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"3","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262466":{"id":4262466,"number":"2312-1A","rent":1129,"availableOn":"12\/20\/2025","sqft":1074,"floor":"3","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262614":{"id":4262614,"number":"2313-4A","rent":386,"availableOn":"07\/28\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262557":{"id":4262557,"number":"2315-3A","rent":386,"availableOn":"07\/24\/2023","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262558":{"id":4262558,"number":"2318-4A","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262560":{"id":4262560,"number":"2319-1","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262327":{"id":4262327,"number":"2401-1A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262561":{"id":4262561,"number":"2402-1","rent":386,"availableOn":"08\/22\/2020","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262328":{"id":4262328,"number":"2403-2B","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262348":{"id":4262348,"number":"2404-2A","rent":1149,"availableOn":"07\/26\/2026","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262380":{"id":4262380,"number":"2405-3","rent":1549,"availableOn":"07\/27\/2026","sqft":1457,"floor":"4","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262381":{"id":4262381,"number":"2407-2","rent":1549,"availableOn":"07\/26\/2026","sqft":1457,"floor":"4","floorplanID":821081,"unitTypeName":"4x4 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262469":{"id":4262469,"number":"2408-1B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"4","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262470":{"id":4262470,"number":"2409-2B","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"4","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262562":{"id":4262562,"number":"2410-4B","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262329":{"id":4262329,"number":"2411-2B","rent":1149,"availableOn":"07\/26\/2025","sqft":1084,"floor":"4","floorplanID":821083,"unitTypeName":"2x2 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262471":{"id":4262471,"number":"2412-1A","rent":1129,"availableOn":"07\/26\/2026","sqft":1074,"floor":"4","floorplanID":821084,"unitTypeName":"2x2 A","spaceOptions":[],"available":false,"BuildingName":"2"},"4262563":{"id":4262563,"number":"2413-3A","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262564":{"id":4262564,"number":"2415-3A","rent":386,"availableOn":"09\/30\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262565":{"id":4262565,"number":"2418-4A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"2"},"4262566":{"id":4262566,"number":"2419-4A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":true,"BuildingName":"2"},"4262615":{"id":4262615,"number":"3201-1","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"},"4262616":{"id":4262616,"number":"3202-1","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"},"4262617":{"id":4262617,"number":"3203-3A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":true,"BuildingName":"3"},"4262509":{"id":4262509,"number":"3204-2","rent":1099,"availableOn":"07\/18\/2024","sqft":1268,"floor":"2","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"3"},"4262618":{"id":4262618,"number":"3205-1","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"},"4262619":{"id":4262619,"number":"3206-1","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"},"4262620":{"id":4262620,"number":"3207-4B","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"2","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"},"4262621":{"id":4262621,"number":"3301-1","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"},"4262622":{"id":4262622,"number":"3302-4A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"},"4262516":{"id":4262516,"number":"3303-3B","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"},"4262504":{"id":4262504,"number":"3304-3A","rent":1099,"availableOn":"07\/26\/2025","sqft":1268,"floor":"3","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"3"},"4262567":{"id":4262567,"number":"3305-3B","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"},"4262568":{"id":4262568,"number":"3306-3B","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":true,"BuildingName":"3"},"4262569":{"id":4262569,"number":"3307-2","rent":386,"availableOn":"08\/26\/2026","sqft":1714,"floor":"3","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"},"4262570":{"id":4262570,"number":"3401-3A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":true,"BuildingName":"3"},"4262571":{"id":4262571,"number":"3402-2","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"},"4262572":{"id":4262572,"number":"3403-4A","rent":386,"availableOn":"07\/26\/2026","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"},"4262510":{"id":4262510,"number":"3404-3A","rent":1099,"availableOn":"07\/26\/2026","sqft":1268,"floor":"4","floorplanID":821079,"unitTypeName":"3x3 A","spaceOptions":[],"available":false,"BuildingName":"3"},"4262581":{"id":4262581,"number":"3405-2","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"},"4262573":{"id":4262573,"number":"3406-4B","rent":386,"availableOn":"07\/24\/2023","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"},"4262574":{"id":4262574,"number":"3407-2","rent":386,"availableOn":"07\/26\/2025","sqft":1714,"floor":"4","floorplanID":821080,"unitTypeName":"4x4 B","spaceOptions":[],"available":false,"BuildingName":"3"}},"floorplans":{"821082":{"id":671,"name":"1x1 A","slug":"1x1","thumbnail":{"abs_url":null,"object_type":"image","file_loc":"\/home\/csrivesandiego\/public_html\/wp-content\/uploads\/2025\/12\/1x1-A.webp","file":"2025\/12\/1x1-A.webp","id":1237,"sizes":{"thumbnail":{"file":"1x1-A-150x150.webp","width":150,"height":150,"mime-type":"image\/webp","filesize":2946}
4778,"placeholder":{"file":"1x1-A-40x40.webp","width":40,"height":40,"mime-type":"image\/webp","filesize":706}},"caption":"","ImageClass":"Timber\\Image","PostClass":"Timber\\Post","TermClass":"Timber\\Term","custom":[],"ID":1237,"post_author":"1","post_content":"","post_date":"2026-07-22 20:08:29","post_excerpt":"","post_parent":671,"post_status":"inherit","post_title":"1x1 A","post_type":"attachment","slug":null,"filesize":13922,"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""},"_wp_attachment_metadata":"a:6:{s:5:\"width\";i:640;s:6:\"height\";i:640;s:4:\"file\";s:18:\"2025\/12\/1x1-A.webp\";s:8:\"filesize\";i:13922;s:5:\"sizes\";a:2:{s:9:\"thumbnail\";a:5:{s:4:\"file\";s:18:\"1x1-A-150x150.webp\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:2946;}s:11:\"placeholder\";a:5:{s:4:\"file\";s:16:\"1x1-A-40x40.webp\";s:5:\"width\";i:40;s:6:\"height\";i:40;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:706;}}s:10:\"image_meta\";a:13:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:0:\"\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:1:\"0\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}s:3:\"alt\";s:0:\"\";}}","_wp_attachment_image_alt":"1x1 A Floorplan","post_date_gmt":"2026-07-22 20:08:29","comment_status":"open","ping_status":"closed","post_password":"","post_name":"1x1-a","to_ping":"","pinged":"","post_modified":"2026-07-22 20:08:37","post_modified_gmt":"2026-07-22 20:08:37","post_content_filtered":"","guid":"https:\/\/therivesandiego.jumpem.host\/wp-content\/uploads\/2025\/12\/1x1-A.webp","menu_order":0,"post_mime_type":"image\/webp","comment_count":"0","filter":"raw","url":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/1x1-A.webp","placeholder":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/1x1-A-40x40.webp"},"tags":[],"entrata_api_id":"821082","beds":"1","enable_occupants":false,"baths":"1","sq_ft_min":"518","sq_ft_range":false,"units_available":"","banner":"","banner_color":"","rates":[{"label":"Standard, Single-Private","value":2299,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1","value":2309,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, View","value":2309,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1-View","value":2319,"special_value":false,"message":false,"sold_out":false}],"hide_rates":true,"sold_out":false,"links":false,"gallery":false,"description":"","short_description":"","disclaimer":"","admin_fee":"","application_fee":"","security_deposit":"","tabs":false,"starting_value_label":"","min_rate":2299,"max_rate":2319,"min_rate_special":false,"max_rate_special":false,"entrata":{"floorplanID":821082,"floorplanName":"1x1 A","floorNumber":"4","webVisible":true,"available":false,"affordable":false,"applyLink":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","units":[4262405],"floors":["4"]},"apply_link":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","flip_id":"one-bedroom-671"},"821084":{"id":672,"name":"2x2 A","slug":"2x2","thumbnail":{"abs_url":null,"object_type":"image","file_loc":"\/home\/csrivesandiego\/public_html\/wp-content\/uploads\/2025\/12\/2x2-A.webp","file":"2025\/12\/2x2-A.webp","id":1238,"sizes":{"thumbnail":{"file":"2x2-A-150x150.webp","width":150,"height":150,"mime-type":"image\/webp","filesize":3246},"placeholder":{"file":"2x2-A-40x40.webp","width":40,"height":40,"mime-type":"image\/webp","filesize":708}},"caption":"","ImageClass":"Timber\\Image","PostClass":"Timber\\Post","TermClass":"Timber\\Term","custom":[],"ID":1238,"post_author":"1","post_content":"","post_date":"2026-07-22 20:08:51","post_excerpt":"","post_parent":672,"post_status":"inherit","post_title":"2x2 A","post_type":"attachment","slug":null,"filesize":16218,"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"
47780","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""},"_wp_attachment_metadata":"a:6:{s:5:\"width\";i:640;s:6:\"height\";i:640;s:4:\"file\";s:18:\"2025\/12\/2x2-A.webp\";s:8:\"filesize\";i:16218;s:5:\"sizes\";a:2:{s:9:\"thumbnail\";a:5:{s:4:\"file\";s:18:\"2x2-A-150x150.webp\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:3246;}s:11:\"placeholder\";a:5:{s:4:\"file\";s:16:\"2x2-A-40x40.webp\";s:5:\"width\";i:40;s:6:\"height\";i:40;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:708;}}s:10:\"image_meta\";a:13:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:0:\"\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:1:\"0\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}s:3:\"alt\";s:0:\"\";}}","_wp_attachment_image_alt":"2x2 A Floorplan","post_date_gmt":"2026-07-22 20:08:51","comment_status":"open","ping_status":"closed","post_password":"","post_name":"2x2-a","to_ping":"","pinged":"","post_modified":"2026-07-22 20:08:57","post_modified_gmt":"2026-07-22 20:08:57","post_content_filtered":"","guid":"https:\/\/therivesandiego.jumpem.host\/wp-content\/uploads\/2025\/12\/2x2-A.webp","menu_order":0,"post_mime_type":"image\/webp","comment_count":"0","filter":"raw","url":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/2x2-A.webp","placeholder":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/2x2-A-40x40.webp"},"tags":[],"entrata_api_id":"821084","beds":"2","enable_occupants":false,"baths":"2","sq_ft_min":"1074","sq_ft_range":false,"units_available":"","banner":"","banner_color":"","rates":[{"label":"Standard, Duo-Shared","value":1129,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1","value":1139,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, View","value":1139,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-View","value":1149,"special_value":"","message":"","sold_out":false}],"hide_rates":true,"sold_out":false,"links":false,"gallery":false,"description":"","short_description":"","disclaimer":"","admin_fee":"","application_fee":"","security_deposit":"","tabs":false,"starting_value_label":"","min_rate":1129,"max_rate":1149,"min_rate_special":false,"max_rate_special":false,"entrata":{"floorplanID":821084,"floorplanName":"2x2 A","floorNumber":"4","webVisible":true,"available":false,"affordable":false,"applyLink":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","units":[4262442,4262443,4262476,4262458],"floors":["1","1","2","4"]},"apply_link":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","flip_id":"two-bedroom-672"},"821083":{"id":673,"name":"2x2 B","slug":"2x2-b","thumbnail":{"abs_url":null,"object_type":"image","file_loc":"\/home\/csrivesandiego\/public_html\/wp-content\/uploads\/2025\/12\/2x2-B.webp","file":"2025\/12\/2x2-B.webp","id":1239,"sizes":{"thumbnail":{"file":"2x2-B-150x150.webp","width":150,"height":150,"mime-type":"image\/webp","filesize":3998},"placeholder":{"file":"2x2-B-40x40.webp","width":40,"height":40,"mime-type":"image\/webp","filesize":812}},"caption":"","ImageClass":"Timber\\Image","PostClass":"Timber\\Post","TermClass":"Timber\\Term","custom":[],"ID":1239,"post_author":"1","post_content":"","post_date":"2026-07-22 20:09:11","post_excerpt":"","post_parent":673,"post_status":"inherit","post_title":"2x2 B","post_type":"attachment","slug":null,"filesize":13454,"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""},"_wp_attachment_metadata":"a:6:{s:5:\"width\";i:640;s:6:\"height\";i:640;s:4:\"file\";s:18:\"2025\/12\/2x2-B.webp\";s:8:\"filesize\";i:13454;s:5:\"sizes\";a:2:{s:9:\"thumbnail\";a:5:{s:4:\"file\";s:18:\"2x2-B-150x150.webp\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:3998;}s:11:\"placeholder\";a:5:{s:4:\"file\";s:16:\"2x2-B-40x40.webp\";s:5:\"width\";i:40;s:6:\"height\";i:40;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:812;}}s:10:\"image_meta\";a:13:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:0:\"\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:1:\"0\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}s:3:\"alt\";s:0:\"\";}}","_wp_attachment_image_alt":"2x2 B","post_date_gmt":"2026-07-22 20:09:11","comment_status":"open","ping_status":"closed","post_password":"","post_name":"2x2-b-2","to_ping":"","pinged":"","post_modified":"2026-07-22 20:09:15","post_modified_gmt":"2026-07-22 20:09:15","post_content_filtered":"","guid":"https:\/\/therivesandiego.jumpem.host\/wp-content\/uploads\/2025\/12\/2x2-B.webp","menu_order":0,"post_mime_type":"image\/webp","comment_count":"0","filter":"raw","url":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/2x2-B.webp","placeholder":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/2x2-B-40x40.webp"},"tags":[],"entrata_api_id":"821083","beds":"2","enable_occupants":false,"baths":"2","sq_ft_min":"1084","sq_ft_range":false,"units_available":"","banner":"","banner_color":"","rates":[{"label":"Standard, Duo-Shared","value":1149,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1","value":1159,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Duo-Shared, View","value":1159,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-View","value":1169,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Duo-Shared, Premium","value":1239,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-Premium","value":1249,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Premium-View","value":1249,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-Premium-View","value":1259,"special_value":false,"message":false,"sold_out":false}],"hide_rates":true,"sold_out":false,"links":false,"gallery":false,"description":"","short_description":"","disclaimer":"","admin_fee":"","application_fee":"","security_deposit":"","tabs":false,"starting_value_label":"","min_rate":1149,"max_rate":1259,"min_rate_special":false,"max_rate_special":false,"entrata":{"floorplanID":821083,"floorplanName":"2x2 B","floorNumber":"4","webVisible":true,"available":false,"affordable":false,"applyLink":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","units":[4262346,4262330],"floors":["2","2"]},"apply_link":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","flip_id":"two-bedroom-673"},"821079":{"id":823,"name":"3x3 A","slug":"3x3-a","thumbnail":{"abs_url":null,"object_type":"image","file_loc":"\/home\/csrivesandiego\/public_html\/wp-content\/uploads\/2025\/12\/3x3-A.webp","file":"2025\/12\/3x3-A.webp","id":1240,"sizes":{"thumbnail":{"file":"3x3-A-150x150.webp","width":150,"height":150,"mime-type":"image\/webp","filesize":3348}
4778,"placeholder":{"file":"3x3-A-40x40.webp","width":40,"height":40,"mime-type":"image\/webp","filesize":722}},"caption":"","ImageClass":"Timber\\Image","PostClass":"Timber\\Post","TermClass":"Timber\\Term","custom":[],"ID":1240,"post_author":"1","post_content":"","post_date":"2026-07-22 20:09:36","post_excerpt":"","post_parent":823,"post_status":"inherit","post_title":"3x3 A","post_type":"attachment","slug":null,"filesize":17558,"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""},"_wp_attachment_metadata":"a:6:{s:5:\"width\";i:640;s:6:\"height\";i:640;s:4:\"file\";s:18:\"2025\/12\/3x3-A.webp\";s:8:\"filesize\";i:17558;s:5:\"sizes\";a:2:{s:9:\"thumbnail\";a:5:{s:4:\"file\";s:18:\"3x3-A-150x150.webp\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:3348;}s:11:\"placeholder\";a:5:{s:4:\"file\";s:16:\"3x3-A-40x40.webp\";s:5:\"width\";i:40;s:6:\"height\";i:40;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:722;}}s:10:\"image_meta\";a:13:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:0:\"\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:1:\"0\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}s:3:\"alt\";s:0:\"\";}}","_wp_attachment_image_alt":"3x3 A Floorplan","post_date_gmt":"2026-07-22 20:09:36","comment_status":"open","ping_status":"closed","post_password":"","post_name":"3x3-
4778a-2","to_ping":"","pinged":"","post_modified":"2026-07-22 20:09:44","post_modified_gmt":"2026-07-22 20:09:44","post_content_filtered":"","guid":"https:\/\/therivesandiego.jumpem.host\/wp-content\/uploads\/2025\/12\/3x3-A.webp","menu_order":0,"post_mime_type":"image\/webp","comment_count":"0","filter":"raw","url":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/3x3-A.webp","placeholder":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/3x3-A-40x40.webp"},"tags":[],"entrata_api_id":"821079","beds":"3","enable_occupants":false,"baths":"3","sq_ft_min":"1268","sq_ft_range":false,"units_available":"","banner":"","banner_color":"","rates":[{"label":"Standard, Duo-Shared","value":1099,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1","value":1109,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Duo-Shared, View","value":1109,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-View","value":1209,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private","value":1499,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1","value":1509,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, View","value":1509,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1-View","value":1519,"special_value":false,"message":false,"sold_out":false}],"hide_rates":true,"sold_out":false,"links":false,"gallery":false,"description":"","short_description":"","disclaimer":"","admin_fee":"","application_fee":"","security_deposit":"","tabs":false,"starting_value_label":"","min_rate":1099,"max_rate":1519,"min_rate_special":false,"max_rate_special":false,"entrata":{"floorplanID":821079,"floorplanName":"3x3 A","floorNumber":"4","webVisible":true,"available":false,"affordable":false,"applyLink":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","units":[4262507],"floors":["2"]},"apply_link":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","flip_id":"three-bedroom-823"},"821081":{"id":678,"name":"4x4 A","slug":"4x4","thumbnail":{"abs_url":null,"object_type":"image","file_loc":"\/home\/csrivesandiego\/public_html\/wp-content\/uploads\/2025\/12\/4x4-A.webp","file":"2025\/12\/4x4-A.webp","id":1241,"sizes":{"thumbnail":{"file":"4x4-A-150x150.webp","width":150,"height":150,"mime-type":"image\/webp","filesize":3154},"placeholder":{"file":"4x4-A-40x40.webp","width":40,"height":40,"mime-type":"image\/webp","filesize":602}},"caption":"","ImageClass":"Timber\\Image","PostClass":"Timber\\Post","TermClass":"Timber\\Term","custom":[],"ID":1241,"post_author":"1","post_content":"","post_date":"2026-07-22 20:10:04","post_excerpt":"","post_parent":678,"post_status":"inherit","post_title":"4x4 A","post_type":"attachment","slug":null,"filesize":16000,"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""},"_wp_attachment_metadata":"a:6:{s:5:\"width\";i:640;s:6:\"height\";i:640;s:4:\"file\";s:18:\"2025\/12\/4x4-A.webp\";s:8:\"filesize\";i:16000;s:5:\"sizes\";a:2:{s:9:\"thumbnail\";a:5:{s:4:\"file\";s:18:\"4x4-A-150x150.webp\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:3154;}s:11:\"placeholder\";a:5:{s:4:\"file\";s:16:\"4x4-A-40x40.webp\";s:5:\"width\";i:40;s:6:\"height\";i:40;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:602;}}s:10:\"image_meta\";a:13:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:0:\"\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:1:\"0\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}s:3:\"alt\";s:0:\"\";}}","_wp_attachment_image_alt":"4x4 A","post_date_gmt":"2026-07-22 20:10:04","comment_status":"open","ping_status":"closed","post_password":"","post_name":"4x4-a","to_ping":"","pinged":"","post_modified":"2026-07-22 20:10:08","post_modified_gmt":"2026-07-22 20:10:08","post_content_filtered":"","guid":"https:\/\/therivesandiego.jumpem.host\/wp-content\/uploads\/2025\/12\/4x4-A.webp","menu_order":0,"post_mime_type":"image\/webp","comment_count":"0","filter":"raw","url":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/4x4-A.webp","placeholder":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/4x4-A-40x40.webp"},"tags":[],"entrata_api_id":"821081","beds":"4","enable_occupants":false,"baths":"4","sq_ft_min":"1457","sq_ft_range":false,"units_available":"","banner":"","banner_color":"","rates":[{"label":"Standard, Single-Private","value":1549,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1","value":1559,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, View","value":1559,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1-View","value":1569,"special_value":false,"message":false,"sold_out":false}],"hide_rates":true,"sold_out":false,"links":false,"gallery":false,"description":"","short_description":"","disclaimer":"","admin_fee":"","application_fee":"","security_deposit":"","tabs":false,"starting_value_label":"","min_rate":1549,"max_rate":1569,"min_rate_special":false,"max_rate_special":false,"entrata":{"floorplanID":821081,"floorplanName":"4x4 A","floorNumber":"4","webVisible":true,"available":false,"affordable":false,"applyLink":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","units":[4262359],"floors":["2"]},"apply_link":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","flip_id":"four-bedroom-678"},"821080":{"id":1267,"name":"4x4 B (6 Bed)","slug":"4x4-b-6-bed","thumbnail":{"abs_url":null,"object_type":"image","file_loc":"\/home\/csrivesandiego\/public_html\/wp-content\/uploads\/2025\/12\/4x4-B.webp","file":"2025\/12\/4x4-B.webp","id":1242,"sizes":{"thumbnail":{"file":"4x4-B-150x150.webp","width":150,"height":150,"mime-type":"image\/webp","filesize":3550}
4778,"placeholder":{"file":"4x4-B-40x38.webp","width":40,"height":38,"mime-type":"image\/webp","filesize":850}},"caption":"","ImageClass":"Timber\\Image","PostClass":"Timber\\Post","TermClass":"Timber\\Term","custom":[],"ID":1242,"post_author":"1","post_content":"","post_date":"2026-07-22 20:10:32","post_excerpt":"","post_parent":827,"post_status":"inherit","post_title":"4x4 B","post_type":"attachment","slug":null,"filesize":13902,"image_meta":{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0","keywords":[],"alt":""},"_wp_attachment_metadata":"a:6:{s:5:\"width\";i:483;s:6:\"height\";i:455;s:4:\"file\";s:18:\"2025\/12\/4x4-B.webp\";s:8:\"filesize\";i:13902;s:5:\"sizes\";a:2:{s:9:\"thumbnail\";a:5:{s:4:\"file\";s:18:\"4x4-B-150x150.webp\";s:5:\"width\";i:150;s:6:\"height\";i:150;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:3550;}s:11:\"placeholder\";a:5:{s:4:\"file\";s:16:\"4x4-B-40x38.webp\";s:5:\"width\";i:40;s:6:\"height\";i:38;s:9:\"mime-type\";s:10:\"image\/webp\";s:8:\"filesize\";i:850;}}s:10:\"image_meta\";a:13:{s:8:\"aperture\";s:1:\"0\";s:6:\"credit\";s:0:\"\";s:6:\"camera\";s:0:\"\";s:7:\"caption\";s:0:\"\";s:17:\"created_timestamp\";s:1:\"0\";s:9:\"copyright\";s:0:\"\";s:12:\"focal_length\";s:1:\"0\";s:3:\"iso\";s:1:\"0\";s:13:\"shutter_speed\";s:1:\"0\";s:5:\"title\";s:0:\"\";s:11:\"orientation\";s:1:\"0\";s:8:\"keywords\";a:0:{}s:3:\"alt\";s:0:\"\";}}","_wp_attachment_image_alt":"4x4 B Floorplan","post_date_gmt":"2026-07-22 20:10:32","comment_status":"open","ping_status":"closed","post_password":"","post_name":"4x4-b-2","to_ping":"","pinged":"","post_modified":"2026-07-22 20:10:42","post_modified_gmt":"2026-07-22 20:10:42","post_content_filtered":"","guid":"https:\/\/therivesandiego.jumpem.host\/wp-content\/uploads\/2025\/12\/4x4-B.webp","menu_order":0,"post_mime_type":"image\/webp","comment_count":"0","filter":"raw","url":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/4x4-B.webp","placeholder":"https:\/\/www.therivesandiego.com\/wp-content\/uploads\/2025\/12\/4x4-B-40x38.webp"},"tags":[],"entrata_api_id":"821080","beds":"4","enable_occupants":false,"baths":"4","sq_ft_min":"1714","sq_ft_range":false,"units_available":"","banner":"","banner_color":"","starting_value_label":"","rates":[{"label":"Standard, Duo-Shared","value":999,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1","value":1009,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, View","value":1009,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-View","value":1019,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Premium","value":1089,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-Premium","value":1099,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Premium-View","value":1099,"special_value":"","message":"","sold_out":false},{"label":"Standard, Duo-Shared, Floor Premium 1-Premium-View","value":1109,"special_value":"","message":"","sold_out":false},{"label":"Standard, Single-Private","value":1435,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1","value":1445,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, View","value":1445,"special_value":false,"message":false,"sold_out":false},{"label":"Standard, Single-Private, Floor Premium 1-View","value":1455,"special_value":false,"message":false,"sold_out":false}],"hide_rates":true,"sold_out":false,"links":false,"gallery":false,"description":"","short_description":"","disclaimer":"","admin_fee":"","application_fee":"","security_deposit":"","tabs":false,"min_rate":999,"max_rate":1455,"min_rate_special":false,"max_rate_special":false,"entrata":{"floorplanID":821080,"floorplanName":"4x4 B","floorNumber":"4","webVisible":true,"available":false,"affordable":false,"applyLink":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","units":[4262580,4262515,4262584,4262623,4262597,4262606,4262607,4262554,4262566,4262617,4262568,4262570],"floors":["1","1","2","2","3","4","4","2","4","2","3","4"]},"apply_link":"https:\/\/the-rive.prospectportal.com\/Apartments\/module\/application_authentication\/\\","flip_id":"six-bedroom-1267"}}};
4779
4780    const sightmap = "";
4781    localData.showAdditionalInfo = false;
4782    /** 
4783* This is a modified version of the polylabel library.
4784* https://github.com/mapbox/polylabel
4785*/
4786
4787function polylabel(polygon, precision = 1.0, debug = false) {
4788  // find the bounding box of the outer ring
4789  let minX = Infinity;
4790  let minY = Infinity;
4791  let maxX = -Infinity;
4792  let maxY = -Infinity;
4793
4794  for (const [x, y] of polygon[0]) {
4795    if (x < minX) minX = x;
4796    if (y < minY) minY = y;
4797    if (x > maxX) maxX = x;
4798    if (y > maxY) maxY = y;
4799  }
4800
4801  const width = maxX - minX;
4802  const height = maxY - minY;
4803  const cellSize = Math.max(precision, Math.min(width, height));
4804
4805  if (cellSize === precision) {
4806    const result = [minX, minY];
4807    result.distance = 0;
4808    return result;
4809  }
4810
4811  // a priority queue of cells in order of their "potential" (max distance to polygon)
4812  const cellQueue = new Queue([], (a, b) => b.max - a.max);
4813
4814  // take centroid as the first best guess
4815  let bestCell = getCentroidCell(polygon);
4816
4817  // second guess: bounding box centroid
4818  const bboxCell = new Cell(minX + width / 2, minY + height / 2, 0, polygon);
4819  if (bboxCell.d > bestCell.d) bestCell = bboxCell;
4820
4821  let numProbes = 2;
4822
4823  function potentiallyQueue(x, y, h) {
4824    const cell = new Cell(x, y, h, polygon);
4825    numProbes++;
4826    if (cell.max > bestCell.d + precision) cellQueue.push(cell);
4827
4828    // update the best cell if we found a better one
4829    if (cell.d > bestCell.d) {
4830      bestCell = cell;
4831      if (debug) console.log(`found best ${Math.round(1e4 * cell.d) / 1e4} after ${numProbes} probes`);
4832    }
4833  }
4834
4835  // cover polygon with initial cells
4836  let h = cellSize / 2;
4837  for (let x = minX; x < maxX; x += cellSize) {
4838    for (let y = minY; y < maxY; y += cellSize) {
4839      potentiallyQueue(x + h, y + h, h);
4840    }
4841  }
4842
4843  while (cellQueue.length) {
4844    // pick the most promising cell from the queue
4845    const { max, x, y, h: ch } = cellQueue.pop();
4846
4847    // do not drill down further if there's no chance of a better solution
4848    if (max - bestCell.d <= precision) break;
4849
4850    // split the cell into four cells
4851    h = ch / 2;
4852    potentiallyQueue(x - h, y - h, h);
4853    potentiallyQueue(x + h, y - h, h);
4854    potentiallyQueue(x - h, y + h, h);
4855    potentiallyQueue(x + h, y + h, h);
4856  }
4857
4858  if (debug) {
4859    console.log(`num probes: ${numProbes}\nbest distance: ${bestCell.d}`);
4860  }
4861
4862  const result = [bestCell.x, bestCell.y];
4863  result.distance = bestCell.d;
4864  return result;
4865}
4866
4867function Cell(x, y, h, polygon) {
4868  this.x = x; // cell center x
4869  this.y = y; // cell center y
4870  this.h = h; // half the cell size
4871  this.d = pointToPolygonDist(x, y, polygon); // distance from cell center to polygon
4872  this.max = this.d + this.h * Math.SQRT2; // max distance to polygon within a cell
4873}
4874
4875// signed distance from point to polygon outline (negative if point is outside)
4876function pointToPolygonDist(x, y, polygon) {
4877  let inside = false;
4878  let minDistSq = Infinity;
4879
4880  for (const ring of polygon) {
4881    for (let i = 0, len = ring.length, j = len - 1; i < len; j = i++) {
4882      const a = ring[i];
4883      const b = ring[j];
4884
4885      if ((a[1] > y !== b[1] > y) &&
4886        (x < (b[0] - a[0]) * (y - a[1]) / (b[1] - a[1]) + a[0])) inside = !inside;
4887
4888      minDistSq = Math.min(minDistSq, getSegDistSq(x, y, a, b));
4889    }
4890  }
4891
4892  return minDistSq === 0 ? 0 : (inside ? 1 : -1) * Math.sqrt(minDistSq);
4893}
4894
4895// get polygon centroid
4896function getCentroidCell(polygon) {
4897  let area = 0;
4898  let x = 0;
4899  let y = 0;
4900  const points = polygon[0];
4901
4902  for (let i = 0, len = points.length, j = len - 1; i < len; j = i++) {
4903    const a = points[i];
4904    const b = points[j];
4905    const f = a[0] * b[1] - b[0] * a[1];
4906    x += (a[0] + b[0]) * f;
4907    y += (a[1] + b[1]) * f;
4908    area += f * 3;
4909  }
4910  const centroid = new Cell(x / area, y / area, 0, polygon);
4911  if (area === 0 || centroid.d < 0) return new Cell(points[0][0], points[0][1], 0, polygon);
4912  return centroid;
4913}
4914
4915// get squared distance from a point to a segment
4916function getSegDistSq(px, py, a, b) {
4917  let x = a[0];
4918  let y = a[1];
4919  let dx = b[0] - x;
4920  let dy = b[1] - y;
4921
4922  if (dx !== 0 || dy !== 0) {
4923    const t = ((px - x) * dx + (py - y) * dy) / (dx * dx + dy * dy);
4924
4925    if (t > 1) {
4926      x = b[0];
4927      y = b[1];
4928
4929    } else if (t > 0) {
4930      x += dx * t;
4931      y += dy * t;
4932    }
4933  }
4934
4935  dx = px - x;
4936  dy = py - y;
4937
4938  return dx * dx + dy * dy;
4939}
4940
4941class Queue {
4942
4943  constructor(data = [], compare = (a, b) => (a < b ? -1 : a > b ? 1 : 0)) {
4944    this.data = data;
4945    this.length = this.data.length;
4946    this.compare = compare;
4947
4948    if (this.length > 0) {
4949      for (let i = (this.length >> 1) - 1; i >= 0; i--) this._down(i);
4950    }
4951  }
4952
4953  push(item) {
4954    this.data.push(item);
4955    this._up(this.length++);
4956  }
4957
4958  pop() {
4959    if (this.length === 0) return undefined;
4960
4961    const top = this.data[0];
4962    const bottom = this.data.pop();
4963
4964    if (--this.length > 0) {
4965      this.data[0] = bottom;
4966      this._down(0);
4967    }
4968
4969    return top;
4970  }
4971
4972  peek() {
4973    return this.data[0];
4974  }
4975
4976  _up(pos) {
4977    const { data, compare } = this;
4978    const item = data[pos];
4979
4980    while (pos > 0) {
4981      const parent = (pos - 1) >> 1;
4982      const current = data[parent];
4983      if (compare(item, current) >= 0) break;
4984      data[pos] = current;
4985      pos = parent;
4986    }
4987
4988    data[pos] = item;
4989  }
4990
4991  _down(pos) {
4992    const { data, compare } = this;
4993    const halfLength = this.length >> 1;
4994    const item = data[pos];
4995
4996    while (pos < halfLength) {
4997      let bestChild = (pos << 1) + 1; // initially it is the left child
4998      const right = bestChild + 1;
4999
5000      if (right < this.length && compare(data[right], data[bestChild]) < 0) {
5001        bestChild = right;
5002      }
5003      if (compare(data[bestChild], item) >= 0) break;
5004
5005      data[pos] = data[bestChild];
5006      pos = bestChild;
5007    }
5008
5009    data[pos] = item;
5010  }
5011}
5012    /**
5013 * This is the filters component.
5014 * It will be used to select filters and pass them back to the parent component.
5015 */
5016
5017const filters = {
5018  data() {
5019    return {
5020      open: false,
5021      floors: [],
5022      beds: [],
5023      price: [],
5024      sqft: [],
5025      search: '',
5026      tags: [],
5027      store
5028    }
5029  },
5030  props: {
5031    // Filters
5032    filters: {
5033      type: Object,
5034      required: true
5035    },
5036    // Hide the rates filter
5037    hideRates: {
5038      type: Boolean,
5039      default: false
5040    }
5041  },
5042  emits: ['update:filters'],
5043  computed: {
5044    value: {
5045      get() {
5046        return this.filters;
5047      },
5048      set(value) {
5049        this.$emit('update:filters', value);
5050      }
5051    },
5052    activeFilterCount() {
5053      let count = 0;
5054      for (const key in this.value) {
5055        if (this.value[key] != 'Any' && this.value[key] != '' && this.value[key].length > 0) {
5056          count++;
5057        }
5058      }
5059      return count;
5060    }
5061  },
5062  methods: {
5063    clearFilters() {
5064      this.value.floors = 'Any';
5065      this.value.beds = 'Any';
5066      this.value.price = 'Any';
5067      this.value.sqft = 'Any';
5068      this.value.search = '';
5069      this.value.tags = [];
5070    },
5071    toggle() {
5072      this.open = !this.open;
5073    }
5074  },
5075  mounted() {
5076
5077    /**
5078     * Set up the available filters options & tags
5079     */
5080
5081    let prices = []; sqft = [];
5082    // Loop through each key of the properties object
5083    for (const key in store.categories) {
5084        //console.log(key, store.categories[key]);
5085      // Loop through each floor plan
5086      store.categories[key].floorplans.forEach(fp => {
5087
5088
5089        /**
5090         * These two can be pushed and used directly as they are not ranges
5091         */
5092        if( fp.entrata && fp.entrata.floors ) {
5093          fp.entrata.floors.forEach(floor => {
5094            if (!this.floors.includes(floor)) {
5095              this.floors.push(floor);
5096            }
5097          });
5098        }
5099
5100        if (fp.beds && !this.beds.includes(fp.beds)) {
5101          this.beds.push(fp.beds);
5102        }
5103
5104        // Add "Bunk" if the floorplan belongs to the bunk category
5105        if (
5106          key.toLowerCase().includes('bunk') &&
5107          !this.beds.includes('bunk')
5108        ) {
5109          this.beds.push('bunk');
5110        }
5111
5112        /**
5113         * These two will be used to build the price and sqft ranges below
5114         */
5115        
5116        if (fp.min_rate && !prices.includes(fp.min_rate)) {
5117          prices.push(Number(fp.min_rate));
5118        }
5119
5120        if (fp.sq_ft_min && !sqft.includes(fp.sq_ft_min)) {
5121          sqft.push(Number(fp.sq_ft_min));
5122        }
5123
5124        /**
5125         * Tags
5126         */
5127        if (fp.tags) {
5128          fp.tags.forEach(tag => {
5129            // If the tag is not already in the tags array, add it
5130            if (!this.tags.find(item => item.term_id === tag.term_id)) {
5131              this.tags.push(tag);
5132            }
5133          });
5134        }
5135
5136      });
5137    }
5138
5139    /**
5140     * Sort the arrays
5141     */
5142    this.floors.sort();
5143    this.beds.sort();
5144
5145    this.beds.sort((a, b) => {
5146      if (a === 'bunk') return -1;
5147      if (b === 'bunk') return 1;
5148      return Number(a) - Number(b);
5149    });
5150
5151    /**
5152     * Establish the ranges for the price and sqft
5153     */
5154
5155    let minPrice = Math.min(...prices);
5156    let maxPrice = Math.max(...prices);
5157    // Create the steps for the price range
5158    let priceStep = 300;
5159    for (let i = minPrice; i <= maxPrice; i += priceStep) {
5160      // Round down to the nearest hundred
5161      i = Math.floor(i / 100) * 100;
5162      this.price.push(`${i} - ${i + priceStep}`);
5163    }
5164
5165    /**
5166     * Establish the ranges for the sqft
5167     */
5168
5169    let minSqft = Math.min(...sqft);
5170    let maxSqft = Math.max(...sqft);
5171    // Create the steps for the sqft range
5172    let sqftStep = 200;
5173    for (let i = minSqft; i <= maxSqft; i += sqftStep) {
5174      // Round to the nearest hundred
5175      i = Math.floor(i / 100) * 100;
5176      this.sqft.push(`${i} - ${i + sqftStep}`);
5177    }
5178
5179  },
5180  template: /*html */`
5181  <div class="fp-filters">
5182
5183    <!-- Modal Toggle -->
5184    <button class="fp-filters-toggle btn btn-primary btn-full" :class="{ open : open }" @click="toggle">
5185      Filter Results <span v-if="activeFilterCount">({{ activeFilterCount }})</span>
5186      <svg xmlns="http://www.w3.org/2000/svg" width="13" height="8" viewBox="0 0 13 8" fill="none"> <path d="M11.7158 6.60791L6.50013 1.39222L1.28445 6.60791" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="round"/> </svg>
5187    </button>
5188
5189    <div class="fp-filters-collapse" :class="{ open : open }">
5190
5191      <!-- Filters -->
5192      <div class="fp-filters-inner">
5193
5194        <!-- Floors -->
5195        <div v-if="filters.floor" class="fp-filter">
5196          <label class="fp-label" for="floor">Floor</label>
5197          <select v-model="filters.floors" class="fp-select" name="floor">
5198            <option value="Any">Test</option>
5199            <option v-for="option in floors">{{ option }}</option>
5200          </select>
5201        </div>
5202
5203        <!-- Beds -->
5204        <div class="fp-filter">
5205          <label class="fp-label" for="beds">{{ store.sectionDisplayOptions.filter_labels.bedrooms ? store.sectionDisplayOptions.filter_labels.bedrooms : 'Bedrooms' }}</label>
5206          <select v-model="filters.beds" class="fp-select" name="beds">
5207            <option value="Any">Any</option>
5208            <option v-for="option in beds" :value="option">  {{
5209              option === '0'
5210                ? 'Studio'
5211                : option === 'bunk'
5212                  ? 'Bunk'
5213                  : option
5214            }}</option>
5215          </select>
5216        </div>
5217
5218        <!-- Prices -->
5219        <div class="fp-filter" v-if="!hideRates">
5220          <label class="fp-label" for="price">{{ store.sectionDisplayOptions.filter_labels.price ? store.sectionDisplayOptions.filter_labels.price : 'Price' }}</label>
5221          <select v-model="filters.price" class="fp-select" name="price">
5222            <option value="Any">Any</option>
5223            <option v-for="option in price">{{ option }}</option>
5224          </select>
5225        </div>
5226
5227        <!-- SQ Footage -->
5228        <div class="fp-filter">
5229          <label class="fp-label" for="sqft">{{ store.sectionDisplayOptions.filter_labels.sqft ? store.sectionDisplayOptions.filter_labels.sqft : 'SQ Footage' }}</label>
5230          <select v-model="filters.sqft" class="fp-select" name="sqft">
5231            <option value="Any">Any</option>
5232            <option v-for="option in sqft">{{ option }}</option>
5233          </select>
5234        </div>
5235
5236        <!-- SQ Footage -->
5237        <div class="fp-filter">
5238          <div class="fp-tags">
5239            <button 
5240              v-for="tag in tags" 
5241              class="fp-tag" 
5242              @click="filters.tags.includes(tag) ? filters.tags = filters.tags.filter(item => item !== tag) : filters.tags.push(tag)"
5243            >
5244              <div class="fp-tag-indicator" :class="{ 'fp-tag-indicator-toggled' : filters.tags.includes(tag) }"></div>
5245              {{ tag.name === 'New' ? 'View Newest' : tag.name }}
5246            </button>
5247          </div>
5248        </div>
5249
5250      </div>
5251
5252      <!-- Clear Filters -->
5253      <div class="fp-filters-buttons" v-if="activeFilterCount > 0">
5254        <button class="fp-filters-clear" @click="clearFilters()">Clear Filters</button>
5255        <button class="fp-filters-done" @click="toggle">Done</button>
5256      </div>
5257
5258      <!-- Search -->
5259      <div class="fp-search">
5260        <label class="fp-label" for="search">Search</label>
5261        <input v-model="filters.search" class="fp-search-input" type="text" placeholder="Search" name="search">
5262      </div>
5263
5264    </div>
5265
5266  </div>
5267  `
5268};
5269    const poweredBy = {
5270  data() {
5271    return {
5272      store,
5273    }
5274  },
5275  template: /*html */`
5276    <div class="powered-by-jumpem"> 
5277      Powered by 
5278      <a href="https://www.jumpem.com/" target="_blank" title="Jumpem Web Design &amp; Internet Marketing">
5279        <img class="img-fluid " :src="store.baseURI + '/assets/images/jumpem.svg'" width="55" height="13" alt="Jumpem Web Design &amp; Internet Marketing" loading="lazy">
5280        <div class="sr-only">Jumpem</div>
5281      </a>
5282    </div>
5283  `
5284};
5285    const zoomControls = {
5286  emits: ['zoomIn', 'zoomOut', 'zoomReset'],
5287  methods: {
5288    zoomIn() {
5289      this.$emit('zoomIn');
5290    },
5291    zoomOut() {
5292      this.$emit('zoomOut');
5293    },
5294    zoomReset() {
5295      this.$emit('zoomReset');
5296    }
5297  },
5298  template: /*html*/`
5299      <div class="jumpem-map__zoom">
5300          <button
5301              @click.prevent="zoomIn"
5302              @touchstart.prevent="zoomIn"
5303              title="Zoom In"
5304          >
5305            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
5306              <path d="M9.03959 9.99858H7.65459C7.51259 9.99858 7.39393 9.95058 7.29859 9.85458C7.20326 9.75858 7.15526 9.63958 7.15459 9.49758C7.15393 9.35558 7.20193 9.23691 7.29859 9.14158C7.39526 9.04624 7.51393 8.99858 7.65459 8.99858H9.03959V7.61458C9.03959 7.47258 9.08759 7.35358 9.18359 7.25758C9.27893 7.16158 9.39759 7.11358 9.53959 7.11358C9.68159 7.11358 9.80026 7.16158 9.8956 7.25758C9.99093 7.35358 10.0389 7.47224 10.0396 7.61358V8.99858H11.4236C11.56
530656 8.99858 11.6843 9.04658 11.7796 9.14258C11.8749 9.23858 11.9229 9.35758 11.9236 9.49958C11.9243 9.64158 11.8763 9.76025 11.7796 9.85558C11.6829 9.95091 11.5643 9.99858 11.4236 9.99858H10.0396V11.3836C10.0396 11.5249 9.99159 11.6436 9.8956 11.7396C9.79959 11.8356 9.68059 11.8832 9.53859 11.8826C9.39659 11.8819 9.27793 11.8342 9.18259 11.7396C9.08726 11.6449 9.03959 11.5259 9.03959 11.3826V9.99858ZM9.53959 15.2286C7.93759 15.2286 6.58193 14.6746 5.47259 13.5666C4.36326 12.4572 3.80859 11.1022 3.80859 9.50158C3.80859 7.90091 4.36259 6.54524 5.47059 5.43458C6.57859 4.32391 7.93326 3.76824 9.53459 3.76758C11.1359 3.76758 12.4919 4.32224 13.6026 5.43158C14.7133 6.54158 15.2686 7.89724 15.2686 9.49858C15.2686 10.1932 15.1456 10.8656 14.8996 11.5156C14.6536 12.1656 14.3303 12.7216 13.9296 13.1836L19.8386 19.0906C19.9319 19.1839 19.9819 19.2989 19.9886 19.4356C19.9946 19.5709 19.9446 19.6919 19.8386 19.7986C19.7319 19.9052 19.6139 19.9586 19.4846 19.9586C19.3553 19.9586 19.2373 19.9052 19.1306 19.7986L13.2226 13.8906C12.7226 14.3166 12.1476 14.6462 11.4976 14.8796C10.8476 15.1129 10.1943 15.2296 9.53759 15.2296M9.53759 14.2296C10.8643 14.2296 11.9846 13.7729 12.8986 12.8596C13.8119 11.9462 14.2686 10.8259 14.2686 9.49858C14.2686 8.17124 13.8126 7.05124 12.9006 6.13858C11.9886 5.22591 10.8686 4.76924 9.54059 4.76858C8.21326 4.76858 7.09293 5.22524 6.17959 6.13858C5.26626 7.05191 4.80926 8.17191 4.80859 9.49858C4.80793 10.8252 5.26459 11.9452 6.17859 12.8586C7.09259 13.7719 8.21259 14.2286 9.53859 14.2286" fill="#2A2A2A"/>
5307            </svg>
5308          </button>
5309          <button
5310              @click.prevent="zoomOut"
5311              @touchstart.prevent="zoomOut"
5312              title="Zoom Out"
5313          >
5314            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
5315              <path d="M19.4856 20.1526L13.2236 13.8906C12.7236 14.3166 12.1486 14.6462 11.4986 14.8796C10.8486 15.1129 10.1953 15.2296 9.53859 15.2296C7.93726 15.2296 6.58193 14.6752 5.47259 13.5666C4.36326 12.4579 3.80859 11.1029 3.80859 9.50158C3.80859 7.90025 4.36259 6.54458 5.47059 5.43458C6.57859 4.32458 7.93326 3.76891 9.53459 3.76758C11.1359 3.76625 12.4919 4.32091 13.6026 5.43158C14.7133 6.54225 15.2686 7.89791 15.2686 9.49858C15.2686 10.1932 15.1456 10.8656 14.8996 11.5156C14.6536 12.1656 14.3303 12.7216 13.9296 13.1836L20.1916 19.4446L19.4856 20.1526ZM9.53959 14.2286C10.8663 14.2286 11.9863 13.7719 12.8996 12.8586C13.8129 11.9452 14.2696 10.8249 14.2696 9.49758C14.2696 8.17025 13.8129 7.05025 12.8996 6.13758C11.9863 5.22491 10.8663 4.76825 9.53959 4.76758C8.21293 4.76691 7.09259 5.22358 6.17859 6.13758C5.26459 7.05158 4.80793 8.17158 4.80859 9.49758C4.80926 10.8236 5.26593 11.9436 6.17859 12.8576C7.09126 13.7716 8.21126 14.2282 9.53859 14.2276M7.27059 9.99858V8.99858H11.8096V9.99858H7.27059Z" fill="#2A2A2A"/>
5316            </svg>
5317          </button>
5318          <button
5319              @click.prevent="zoomReset"
5320              @touchstart.prevent="zoomReset"
5321              title="Reset Zoom"
5322          >
5323            <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
5324              <path d="M12 21.0002C10.8907 21.0002 9.85133 20.7916 8.882 20.3742C7.91267 19.9569 7.06533 19.3856 6.34 18.6602C5.61467 17.9349 5.04333 17.0876 4.626 16.1182C4.20867 15.1489 4 14.1096 4 13.0002C4 11.8909 4.20867 10.8516 4.626 9.88223C5.04333 8.9129 5.61467 8.06557 6.34 7.34023C7.06533 6.6149 7.91267 6.04357 8.882 5.62623C9.85133 5.2089 10.8907 5.00023 12 5.00023H12.38L10.716 3.33423L11.423 2.61523L14.308 5.48123L11.462 8.34623L10.754 7.62723L12.38 6.00023H12C10.05 6.00023 8.396 6.67957 7.038 8.03823C5.68 9.3969 5.00067 11.0509 5 13.0002C4.99933 14.9496 5.67867 16.6039 7.038 17.9632C8.39733 19.3226 10.0513 20.0016 12 20.0002C13.9487 19.9989 15.603 19.3199 16.963 17.9632C18.323 16.6066 19.002 14.9522 19 13.0002H20C20 14.1096 19.7913 15.1489 19.374 16.1182C18.9567 17.0876 18.3853 17.9352 17.66 18.6612C16.9347 19.3872 16.0873 19.9582 15.118 20.3742C14.1487 20.7902 13.1093 20.9989 12 21.0002Z" fill="#2A2A2A"/>
5325            </svg>
5326          </button>
5327      </div>
5328  `
5329}
5330    const jumpemMapUnit = {
5331  data: function() {
5332    return {
5333      store
5334    }
5335  },
5336  props: {
5337    area: {
5338      type: Object,
5339      required: true
5340    },
5341    filters: {
5342      type: Object,
5343      required: false
5344    }
5345  },
5346  methods: {
5347    highlightName(name) {
5348      if (!this.filters) return name;
5349      return name.replace(new RegExp(this.filters.search, 'gi'), `<sp
5349an class="highlight">${this.filters.search}</span>`);
5350    },
5351  },
5352  emits: ['openAreaModal'],
5353  template: /*html*/`
5354    <li v-if="area.unit" class="fp-unit">
5355        <button 
5356          @click.prevent="$emit('openAreaModal', area.unit.id);"
5357          class="fp-unit-link"
5358          :class="{ 'active': area.selected }"
5359        >
5360          <img 
5361            v-if="area.previewImage"
5362            class="fp-unit-image img-fluid" 
5363            :src="area.previewImage.url"
5364            width="510"
5365            height="220"
5366          >
5367          <div class="fp-unit-content">
5368            <div class="fp-unit-title" v-html="highlightName('Unit ' + store.formatUnitName(area.unit.number))"></div>
5369            <div class="fp-unit-floorplan" v-if="area?.unit?.unitTypeName">{{ area?.unit?.unitTypeName }}</div>
5370            <div class="fp-unit-info">
5371              <span v-if="area.floorplan.beds === '0' && area.floorplan.name.includes('Murphy')">Murphy</span>
5372              <span v-else-if="area.floorplan.beds === '0'">Studio</span>
5373              <template v-else>
5374                <span>{{ area.floorplan.beds }} Bed</span>
5375                <span>{{ area.floorplan.baths }} Bath</span>
5376              </template>
5377              <span v-if="area.unit.sqft">{{ area.unit.sqft }} SF</span>
5378            </div>
5379            <template v-if="!store.hideRates">
5380              <div class="fp-unit-rent" v-if="area.unit.rent && store.sanitizeFloorplanRates(area.unit.rent)">Starting at{{ ' $' + store.sanitizeFloorplanRates(area.unit.rent) }}</div>
5381              <div class="fp-unit-rent" v-else>Call for availability</div>
5382            </template>
5383            <div class="fp-unit-available" v-if="store.unitAvailability">Available {{ store.formatDate(area.unit.availableOn) }}</div>
5384          </div>
5385        </button>
5386    </li>
5387  `
5388}
5389    const jumpemMapUnits = {
5390  props: {
5391    areas: {
5392      type: Object,
5393      required: true
5394    },
5395    tabName: {
5396      type: String,
5397      required: true
5398    },
5399    filters: {  
5400      type: Object,
5401      required: true
5402    }
5403  },
5404  methods: {
5405    openAreaModal(area) {
5406      this.$emit('openAreaModal', area);
5407    },
5408    clearFilters() {
5409      this.$emit('clearFilters');
5410    },
5411    formatPrice(price) {
5412      // Take a price range and format it with dollar signs
5413      const hasDash = price.includes('-');
5414      if(hasDash) {
5415        const [min, max] = price.split('-');
5416        return `$${min} - $${max}`;
5417      } else {
5418        return `$${price}`;
5419      }
5420    }
5421  },
5422  template: /*html*/`
5423    <div class="fp-units-sidebar">
5424      <div class="fp-units-list">
5425        <div class="fp-units-header">
5426          <div class="fp-units-list-title">{{ areas.length }} Matches</div>
5427          <div class="fp-units-list-tab-name">
5428            <filters-status 
5429              class="fp-units-mobile-filters" 
5430              :filters="filters" 
5431              @clearFilters="clearFilters" 
5432            />
5433          </div>
5434        </div>
5435        <div class="fp-units-scroll-track">
5436          <ul class="fp-units theme-scrollbar-2">
5437            <template v-for="area in areas" :key="area">
5438              <jumpem-map-unit 
5439                v-if="area.unit" 
5440                :area="area"
5441                :filters="filters"
5442                @openAreaModal="openAreaModal" 
5443                @mouseenter="area.selected = true"
5444                @mouseleave="area.selected = false"
5445              />
5446            </template>
5447          </ul>
5448        </div>
5449      </div>
5450    </div>
5451  `
5452}
5453    const sidebar = {
5454  props: {
5455    maps: {
5456      type: Object,
5457      required: true,
5458    },
5459    selectedImageMap: {
5460      type: Object,
5461      required: false,
5462    },
5463  },
5464  methods: {
5465    selectMap(map) {
5466      this.$emit('selectMap', map);
5467    },
5468    onChange(event) {
5469      const map = this.maps[event.target.value];
5470      this.$emit('selectMap', map);
5471    },
5472    activeMapAreas(map) {
5473      if(map && map.areas) {
5474        const areas = this.filterMapAreas(map);
5475        if(areas) {
5476          return areas.length;
5477        }
5478      }
5479      return 0;
5480    },
5481    filterMapAreas(map) {
5482      return this.$parent.filterMapAreas(map);
5483    }
5484  },
5485  template: /*html*/`
5486    <div class="fp-sidebar">
5487      <div class="fp-sidebar-list-view">
5488        <h2 class="fp-sidebar-title">Unit Type</h2>
5489        <ul class="fp-sidebar-items">
5490          <li v-for="map in maps" :key="map.id" class="fp-sidebar-item">
5491            <a
5492              href="#" 
5493              @click.prevent="selectMap(map)" 
5494              class="fp-sidebar-link"
5495              :class="{ 
5496                'fp-sidebar-link--disabled': filterMapAreas(map).length == 0,
5497                'fp-sidebar-link--active': selectedImageMap && selectedImageMap.title === map.title
5498              }"
5499            >
5500              <span class="fp-sidebar-link-title">{{ map.title }}</span>
5501              <span class="fp-sidebar-link-count">{{ activeMapAreas(map) }} units</span>
5502            </a>
5503          </li>
5504        </ul>
5505      </div>
5506      <div class="fp-sidebar-select-view">
5507        <label class="fp-label" for="floor">Select Floor</label>
5508        <select class="fp-select" name="floor" @change="onChange">
5509          <template v-for="(map, index) in maps" :key="index">
5510            <option :value="index">
5511              Floor {{ map.title }}
5512            </option>
5513          </template>
5514        </select>
5515      </div>
5516    </div>
5517  `
5518};
5519    const jumpemMap = {
5520  data() {
5521    return {
5522      selectedArea: null,
5523      image: null,
5524      zoom: 1,
5525      zoomMax: 4.9,
5526      zoomMin: 1,
5527      grabbing: false,
5528      touchLocked: false,
5529      viewBox: "0 0 0 0",
5530      height: 0,
5531      width: 0,
5532      translate: {
5533        x: -50,
5534        y: -50
5535      },
5536      store
5537    }
5538  },
5539  props: {
5540    map: {
5541      type: Object,
5542      required: true
5543    },
5544    areas: {
5545      type: Array,
5546      required: true
5547    },
5548    filters: {
5549      type: Object,
5550      required: true
5551    }
5552  },
5553  emits: ['openAreaModal'],
5554  methods: {
5555    zoomWheel(e) {
5556      // Get The Scroll Delta
5557      var delta = e.deltaY || e.detail || e.wheelDelta;
5558      // If the delta is positive, zoom in, otherwise zoom out
5559      if (delta < 0) {
5560        this.zoomIn();
5561      } else {
5562        this.zoomOut();
5563      }
5564    },
5565    zoomIn() {
5566      if (this.zoom >= this.zoomMax) {
5567        return;
5568      }
5569      this.zoom += 0.3;
5570    },
5571    zoomOut() {
5572      if (this.zoom <= this.zoomMin) {
5573        return;
5574      }
5575      this.zoom -= 0.3;
5576    },
5577    zoomReset() {
5578      this.zoom = 1;
5579      this.translate.x = -50;
5580      this.translate.y = -50;
5581    },
5582    // Get area width
5583    getAreaWidth(area) {
5584      if (typeof this.renderPoints(area.points) === 'undefined') return;
5585      const points = this.renderPoints(area.points);
5586      const xValues = points.map(point => point.x);
5587      return Math.max(...xValues) - Math.min(...xValues);
5588    },
5589    renderPoints(points) {
5590      if (!this.map.imageWidth) return;
5591      let _points = [];
5592      points.forEach(point => {
5593        if (typeof point === 'string') {
5594          point = JSON.parse(point);
5595        }
5596        _points.push({
5597          x: point.x * this.map.imageWidth,
5598          y: point.y * this.map.imageWidth
5599        })
5600      });
5601      return _points;
5602    },
5603    onResize() {
5604      this.height = this.drawingArea.clientHeight;
5605      this.width = this.drawingArea.clientWidth;
5606    },
5607    pan(e) {
5608      if (this.drawing) {
5609        return;
5610      }
5611      // Define mouse move handler
5612      var mouseMoveHandler = (e) => {
5613        this.grabbing = true;
5614        // Adjust the transform from -50%, -50 to account for the scroll
5615        this.translate.x += e.movementX * 0.1;
5616        this.translate.y += e.movementY * 0.1;
5617      };
5618      // Remove handlers on mouse up
5619      var mouseUpHandler = (e) => {
5620        document.removeEventListener("mousemove", mouseMoveHandler);
5621        document.removeEventListener("mouseup", mouseUpHandler);
5622        this.grabbing = false;
5623      };
5624      // Attach handlers
5625      document.addEventListener("mousemove", mouseMoveHandler);
5626      document.addEventListener("mouseup", mouseUpHandler);
5627    },
5628    computeAreaPath(area) {
5629      if (typeof this.renderPoints(area.points) === 'undefined') return;
5630      return 'M' + this.renderPoints(area.points).map(p => p.x + ',' + p.y).join(' L') + ' Z';
5631    },
5632    initTouchPan() {
5633      if (this.touchLocked) return;
5634      // Get the drawing area
5635      this.drawingArea = this.$refs.drawingArea;
5636      // Add the event listener
5637      this.drawingArea.addEventListener('touchstart', (e) => {
5638        e.stopPropagation();
5639        e.preventDefault();
5640        // If there is one touch
5641        if (e.touches.length === 1) {
5642          // Get the initial touch
5643          this.initialTouch = e.touches[0];
5644        }
5645      });
5646      // Add the event listener
5647      this.drawingArea.addEventListener('touchmove', (e) => {
5648        e.stopPropagation();
5649        e.preventDefault();
5650        // If there is one touch
5651        if (e.touches.length === 1) {
5652          // Get the current touch
5653          var currentTouch = e.touches[0];
5654          // Adjust the transform from -50%, -50 to account for the scroll
5655          this.translate.x += (currentTouch.clientX - this.initialTouch.clientX) * 0.1;
5656          this.translate.y += (currentTouch.clientY - this.initialTouch.clientY) * 0.1;
5657          // Set the initial touch
5658          this.initialTouch = currentTouch;
5659        }
5660      });
5661    },
5662    initPinchZoom() {
5663      // Get the drawing area
5664      this.drawingArea = this.$refs.drawingArea;
5665      // Add the event listener
5666      this.drawingArea.addEventListener('touchstart', (e) => {
5667        e.stopPropagation();
5668        e.preventDefault();
5669        // If there are two touches
5670        if (e.touches.length === 2) {
5671          this.touchLocked = true;
5672          setTimeout(() => {
5673            this.touchLocked = false;
5674          }, 500);
5675          // Get the initial distance
5676          this.initialDistance = Math.hypot(
5677            e.touches[0].clientX - e.touches[1].clientX,
5678            e.touches[0].clientY - e.touches[1].clientY
5679          );
5680          // Get the initial zoom
5681          this.initialZoom = this.zoom;
5682        }
5683      });
5684      // Add the event listener
5685      this.drawingArea.addEventListener('touchmove', (e) => {
5686        e.stopPropagation();
5687        e.preventDefault();
5688        // If there are two touches
5689        if (e.touches.length === 2) {
5690
5691          // Get the current distance
5692          var currentDistance = Math.hypot(
5693            e.touches[0].clientX - e.touches[1].clientX,
5694            e.touches[0].clientY - e.touches[1].clientY
5695          );
5696          // Get the zoom factor
5697          var zoomFactor = currentDistance / this.initialDistance;
5698          // Set the zoom
5699          if (this.initialZoom * zoomFactor > this.zoomMax) {
5700            this.zoom = this.zoomMax;
5701          } else if (this.initialZoom * zoomFactor < this.zoomMin) {
5702            this.zoom = this.zoomMin;
5703          } else {
5704            this.zoom = this.initialZoom * zoomFactor;
5705          }
5706        }
5707      });
5708    },
5709    isPointInPolygon(point, polygon, padding = 0) {
5710      var x = point.x;
5711      var y = point.y;
5712      var inside = false;
5713      for (var i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
5714        var xi = polygon[i].x;
5715        var yi = polygon[i].y;
5716        var xj = polygon[j].x;
5717        var yj = polygon[j].y;
5718        var intersect1 = ((yi - padding > y) != (yj - padding > y)) &&
5719          (x - padding < (xj - xi) * (y - padding - yi) / (yj - yi) + xi);
5720        var intersect2 = ((yi + padding < y) != (yj + padding < y)) &&
5721          (x + padding < (xj - xi) * (y - yi + padding) / (yj - yi) + xi);
5722        if (intersect1 || intersect2) inside = !inside;
5723      }
5724      return inside;
5725    },
5726    getAreaCenter(area) {
5727      const points = this.renderPoints(area.points);
5728      if (typeof points === 'undefined') {
5729        return {
5730          x: 0,
5731          y: 0
5732        };
5733      };
5734      // If we can, use simple center calculation
5735      const minX = Math.min(...points.map(p => p.x));
5736      const maxX = Math.max(...points.map(p => p.x));
5737      const minY = Math.min(...points.map(p => p.y));
5738      const maxY = Math.max(...points.map(p => p.y));
5739      const width = maxX - minX;
5740      const height = maxY - minY;
5741      let center = {
5742          x: minX + width / 2,
5743          y: minY + height / 2
5744      };
5745      if (this.isPointInPolygon(center, points, 100) || width < 100 || height < 100 || points.length < 5) {
5746        return center;
5747      }
5748      // If we can't, use polylabel
5749      else {
5750        // Convert points into [x, y] pairs for polylabel
5751        const polygon = [points.map(point => [point.x, point.y])];
5752        // Get the center of the area
5753        let center = polylabel(polygon);
5754        return {
5755          x: center[0],
5756          y: center[1]
5757        };
5758      }
5759    },
5760    watchForChanges() {
5761      const el = this.$el;
5762      const observer = new IntersectionObserver((entries) => {
5763        entries.forEach(entry => {
5764          if (entry.isIntersecting) {
5765            this.onResize();
5766          }
5767        });
5768      });
5769      observer.observe(el);
5770    },
5771    openAreaModal(area) {
5772      this.$emit('openAreaModal', area);
5773    }
5774  },
5775  mounted() {
5776    this.drawingArea = this.$refs.drawingArea;
5777    this.drawingAreaSVG = this.$refs.drawingAreaSVG;
5778    this.height = this.drawingArea.clientHeight;
5779    this.width = this.drawingArea.clientWidth;
5780    addEventListener('resize', this.onResize);
5781    this.initPinchZoom();
5782    this.initTouchPan();
5783  },
5784  template: /*html*/`
5785      <div class="fp-map">
5786          <div
5787              class="fp-map__viewport"
5788              @mousedown.stop.prevent="pan"
5789              @wheel.stop.prevent="zoomWheel($event)"
5790              ref="drawingArea"
5791          >
5792
5793              <!-- SVG -->
5794              <svg
5795                  class="fp-map__svg"
5796                  :view-box.camel="'0 0 ' + map.imageWidth + ' ' + map.imageHeight"
5797                  :style="{ 
5798                    transform: 'translate(' + translate.x + '%, ' + translate.y + '%)', 
5799                    width: (width * zoom) + 'px', 
5800                    height: (height * zoom) + 'px' 
5801                  }"
5802                  ref="drawingAreaSVG"
5803              >
5804
5805                  <!-- Background -->
5806                  <image
5807                      class="fp-map__image"
5808                      :href="map.imageSrc"
5809                      :width="map.imageWidth"
5810                      :height="map.imageHeight"
5811                  ></image>
5812
5813                  <!-- Areas -->
5814                  <transition-group name="fade" mode="out-in">
5815                      <template v-for="area, index in areas" :key="index">
5816                          <a 
5817                              v-if="area.unit"
5818                              class="fp-map__link" 
5819                              :class="{ 
5820                                active : area.selected,
5821                                'fp-map__link--small' : store.formatUnitName(area.title).length > 2 && getAreaWidth(area) < 44
5822                              }"
5823                              :href="area.apply" 
5824                              target="_blank" rel="nofollow noopener"
5825                              :title="area.title"
5826                              @click.prevent="$emit('openAreaModal', area.unit.id);"
5827                              @touchend="$emit('openAreaModal', area.unit.id);"
5828                              @mouseenter="area.selected = true"
5829                              @mouseleave="area.selected = false"
5830                          >
5831                              <g>
5832                                  <path
5833                                      class="fp-map__area"
5834                                      :d="computeAreaPath(area)"
5835                                  >
5836                                  </path>
5837                                  <text
5838                                    class="fp-map__area-title" 
5839                                    font-size="12" 
5840                                    :x="getAreaCenter(area).x" 
5841                                    :y="getAreaCenter(area).y"
5842                                    text-anchor="middle"
5843                                    alignment-baseline="middle"
5844                                >
5845                                  {{ store.formatUnitName(area.title) }}
5846                                </text>
5847                              </g>
5848                          </a>
5849                      </template>
5850                  </transition-group>
5851
5852              </svg>
5853
5854              <!-- Zoom Controls -->
5855              <jumpem-map-zoom-controls @zoomIn="zoomIn" @zoomOut="zoomOut" @zoomReset="zoomReset" />
5856
5857          </div>
5858
5859          <!-- Powered By -->
5860          <powered-by />
5861
5862          <!-- Mobile Filters -->
5863          <filters class="fp-map-mobile-filters" v-model:filters="filters" />
5864
5865          <!-- Sidebar -->
5866          <jumpem-map-units :areas="areas" :tabName="'Floor ' + map.title" :filters="filters" @openAreaModal="openAreaModal" @clearFilters="this.$emit('clearFilters');" />
5867      
5868      </div>         
5869  `
5870};
5871
5872    const maps = {
5873  data() {
5874    return {
5875      selectedImageMap: null,
5876      filters: {
5877        beds: 'Any',
5878        price: 'Any',
5879        sqft: 'Any',
5880        search: '',
5881        tags: []
5882      },
5883      store
5884    }
5885  },
5886  props: {
5887    // Floorplan
5888    maps: {
5889      type: Object,
5890      required: true
5891    },
5892  },
5893  emits: ['openAreaModal'],
5894  computed: {
5895    selectedImageMapFilteredAreas() {
5896      return this.filterMapAreas(this.selectedImageMap)
5897    },
5898    selectedImageMapIndex() {
5899      let index = -1;
5900      this.maps.forEach((map, i) => {
5901        if(map.title === this.selectedImageMap.title) {
5902          index = i;
5903        }
5904      }); 
5905      return 'fp-map-' + index;
5906    }
5907  },
5908  methods: {
5909    filterMapAreas(map) {
5910      if(!map) return [];
5911      if(!map.areas) return [];
5912      return this.filterAreas(map.areas);
5913    },
5914    filterAreas(areas){
5915      if(!areas) return [];
5916      let filterdAreas = [];
5917      areas.forEach(area => {
5918
5919        const unit = store.units[area.unit_id];
5920        if(!unit) return;
5921
5922        const floorplan = store.floorplans[unit.floorplanID];
5923        if(!floorplan) return;
5924
5925        if(this.filters.beds !== 'Any' && this.filters.beds !== floorplan.beds) return;
5926        
5927        if(this.filters.price !== 'Any' && this.filters.price !== unit.price) {
5928          const [min, max] = this.filters.price.split('-');
5929          if (unit.rent < min || unit.rent > max) {
5930            return;
5931          }
5932        }
5933
5934        if(this.filters.sqft !== 'Any' && this.filters.sqft !== unit.sqft) {
5935          const [min, max] = this.filters.sqft.split('-');
5936          if (Number((unit.sqft)) < Number(min) || unit.sqft > Number(max)) {
5937            return;
5938          }
5939        }
5940
5941        // Search
5942        if(
5943          // Unit Number
5944          (this.filters.search && !('unit ' + unit.number.toLowerCase()).includes(this.filters.search.toLowerCase())) &&
5945          // Floorplan Name
5946          (this.filters.search && !floorplan.name.toLowerCase().includes(this.filters.search.toLowerCase()))
5947        ) {
5948          return;
5949        }
5950
5951        // Tags
5952        if(this.filters.tags.length > 0) {
5953          let hasTag = false;
5954          this.filters.tags.forEach(tag => {
5955            floorplan.tags.forEach(fpTag => {
5956              if(fpTag.term_id === tag.term_id) {
5957                hasTag = true;
5958              }
5959            });
5960          });
5961          if(!hasTag) return;
5962        }
5963
5964        filterdAreas.push(area);
5965
5966      });
5967      return filterdAreas;
5968    },
5969    openAreaModal(area) {
5970      this.$emit('openAreaModal', area);
5971    },
5972    selectMap(map) {
5973      this.selectedImageMap = map;
5974    },
5975    clearFilters() {
5976      this.filters.beds = 'Any';
5977      this.filters.price = 'Any';
5978      this.filters.sqft = 'Any';
5979      this.filters.search = '';
5980    },
5981  },
5982  created() {
5983    this.selectedImageMap = this.maps[0];
5984  },
5985  template: /*html */`
5986    <div class="fp-maps" >
5987      <filters 
5988        class="fp-maps-filter-desktop" 
5989        v-model:filters="filters" 
5990        :hideRates="store.hideRates"
5991      />
5992      <jumpem-map-sidebar 
5993        :maps="maps" 
5994        :selectedImageMap="selectedImageMap" 
5995        :filters="filters" 
5996        @selectMap="selectMap" 
5997      />
5998      <jumpem-map 
5999        :class="[selectedImageMapIndex]"
6000        :map="selectedImageMap" 
6001        :areas="selectedImageMapFilteredAreas" 
6002        :filters="filters"
6003        @openAreaModal="openAreaModal"
6004        @clearFilters="clearFilters" 
6005      />
6006    </div>
6007  `
6008};
6009    const filterStatus = {
6010  props: {
6011    filters: {  
6012      type: Object,
6013      required: true
6014    }
6015  },
6016  methods: {
6017    clearFilters() {
6018      this.$emit('clearFilters');
6019    },
6020    formatPrice(price) {
6021      // Take a price range and format it with dollar signs
6022      const hasDash = price.includes('-');
6023      if(hasDash) {
6024        const [min, max] = price.split('-');
6025        return `$${min} - $${max}`;
6026      } else {
6027        return `$${price}`;
6028      }
6029    }
6030  },
6031  template: /*html*/`
6032    <span class="fp-units-list-tab-filters">
6033      <!-- List filters -->
6034      <!-- Beds -->
6035      <span v-if="filters.beds != 'Any'">{{ filters.beds }} Bedroom</span>
6036      <!-- Price -->
6037      <span v-if="filters.price != 'Any'">Prices from {{ formatPrice(filters.price) }}</span>
6038      <!-- Sqft -->
6039      <span v-if="filters.sqft != 'Any'">SF from {{ filters.sqft }}</span>
6040      <!-- Search -->
6041      <span v-if="filters.search">{{ filters.search }} Search</span>
6042      <!-- Tags -->
6043      <span v-if="filters.tags.length > 0">
6044        Showing:
6045        <span 
6046          v-for="(tag, index) in filters.tags" 
6047          :key="index" 
6048          class="fp-units-list-tab-filters-tag"
6049          >
6050            {{ tag.name }}
6051        </span>
6052      </span>
6053      <!-- Clear -->
6054      <a
6055        href="javascript:void(0);"
6056        class="fp-units-list-tab-filters-clear"
6057        v-if="filters.beds != 'Any' || filters.price != 'Any' || filters.sqft != 'Any' || filters.search != ''"
6058        @click.prevent="clearFilters"
6059      >
6060        Clear Filters
6061      </a>
6062    </span>
6063  `
6064}
6065    const floorplansModal = {
6066  data() {
6067    return {
6068      store
6069    }
6070  },
6071  props: {
6072    // Floorplan
6073    floorplan: {
6074      type: Object,
6075      required: true
6076    },
6077    open: {
6078      type: Boolean,
6079      required: true
6080    }
6081  },
6082  emits: ['close', 'openUnitModal'],
6083  methods: {
6084    close() {
6085      this.$emit('close');
6086    },
6087    openAreaModal(unitNumber) {
6088      this.$emit('openAreaModal', unitNumber);
6089    },
6090    formatDate(date) {
6091      // Change format of 8/1 to August, 1
6092      // First, convert the string 8/1 to a valid ISO date, assumeing the year is the current year
6093      let dateParts = date.split('/');
6094      let month = dateParts[0];
6095      let day = dateParts[1];
6096      let d = new Date(`${new Date().getFullYear()}/${month}/${day}`);
6097      // Assume the year is the current year
6098      const dateWithYear = `${new Date().getFullYear()}/${d}`;
6099      if (new Date(dateWithYear) < new Date()) return 'Now';
6100      // Add comma after month
6101      return d.toLocaleString('default', { month: 'long', day: 'numeric' });
6102    },
6103    navigateToFees() {
6104      // Close this modal
6105      this.$emit('close');
6106      // Get Navbar height
6107      const navbar = document.querySelector('.navbar');
6108      let navbarHeight = navbar ? navbar.offsetHeight + 20 : 0;
6109      // If there'a toast, scroll to the top of the toast
6110      const toast = document.querySelector('.toast');
6111      if (toast) {
6112        navbarHeight += toast.offsetHeight;
6113      }
6114      // Get the target element
6115      const target = document.querySelector('#fees');
6116      if (!target) return;
6117      // Get the target element's position
6118      const targetPosition = target.getBoundingClientRect().top;
6119      // Get the current scroll position
6120      const startPosition = window.pageYOffset;
6121      // Get the target position relative to the current scroll position
6122      const offset = targetPosition + startPosition - navbarHeight;
6123      // Scroll to the target position
6124      window.scrollTo({
6125        top: offset,
6126        behavior: 'smooth'
6127      });
6128    },
6129    openModalTab(index) {
6130      // If no floorplan.tabs or no slider or thumbsSlider, return
6131      if(!this?.floorplan?.tabs || !this?.floorplan?.tabs[index]) return;
6132      // Set all tabs to inactive
6133      this.floorplan.tabs.forEach(t => {
6134        t.active = false;
6135      });
6136      // Set the clicked tab to active
6137      this.floorplan.tabs[index].active = true;
6138      // If there's a swiper image for this tab, slide to it
6139      if (this.slider && this.thumbsSlider) {
6140        this.slider.slideTo(index);
6141      }
6142    },
6143    /**
6144     * Check if string contains 'sold out' (case insensitive)
6145     * Usage: applying a class to sold out floorplan unit types tabs
6146     * @param {*} string 
6147     * @returns 
6148     */
6149    contentContainsSoldOut(string) {
6150      if(!string) return false;
6151      return string.toLowerCase().includes('sold out');
6152    },
6153    checkLabel(label){
6154      if(label.includes('Spaces')){
6155        return false;
6156      }
6157      return true;
6158    }
6159  },
6160  beforeUnmount() {
6161    if (this.thumbsSlider) this.thumbsSlider.destroy();
6162    if (this.slider) this.slider.destroy();
6163  },
6164  created() {
6165    this.units = store.units;
6166  },
6167  mounted() {
6168
6169    const thumbsEl = this.$el.querySelector('.fp-modal-gallery-thumbnails .swiper');
6170    if (thumbsEl) {
6171      this.thumbsSlider = new Swiper(thumbsEl, {
6172        spaceBetween: 10,
6173        slidesPerView: 'auto',
6174        freeMode: true,
6175        watchSlidesProgress: true,
6176      });
6177    }
6178    const sliderEl = this.$el.querySelector('.fp-modal-gallery-swiper');
6179
6180    if (sliderEl) {
6181      this.slider = new Swiper(sliderEl, {
6182        initialSlide: 0,
6183        spaceBetween: 0,
6184        speed: 1000,
6185        parallax: true,
6186        thumbs: {
6187          swiper: this.thumbsSlider,
6188        },
6189      });
6190
6191      // If there are tabs, listen for slide changes to update the active tab
6192      if (this.floorplan.tabs && this.floorplan.tabs.length > 0) {
6193        this.slider.on('slideChange', () => {
6194          const activeIndex = this.slider.activeIndex;
6195          this.floorplan.tabs.forEach((tab, index) => {
6196            this.openModalTab(activeIndex);
6197          });
6198        });
6199      }
6200
6201    }
6202
6203    // If floorplan.tabs are not set, set the first tab to active
6204    if (this.floorplan.tabs && this.floorplan.tabs.length > 0) {
6205      this.floorplan.tabs.forEach((tab, index) => {
6206        tab.active = index === 0; // Set the first tab to active
6207      });
6208    }
6209
6210  },
6211  template: /*html */`
6212    <div class="fp-modal" :class="{ active: floorplan }">
6213
6214      <div class="fp-modal-inner">
6215
6216        <!-- Close Button -->
6217        <button @click="close" class="fp-modal-close">
6218          <svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 19 19" fill="none"> <path d="M1 1L18 18" stroke="black"/> <path d="M18 1L1 18" stroke="black"/></svg>
6219        </button> 
6220
6221        <div class="fp-modal-inner-inner theme-scrollbar-2">
6222
6223          <!-- Modal Gallery -->
6224          <div class="fp-modal-gallery">
6225            <div class="swiper fp-modal-gallery-swiper" :data-flip-id="floorplan.id">
6226              <div class="swiper-wrapper">
6227
6228                <!-- Initial Image -->
6229                <div 
6230                  v-if="floorplan.thumbnail" 
6231                  class="swiper-slide"
6232                  :class="{ 'fp-modal-gallery-swiper__slide--sold-out': floorplan.tabs && floorplan.tabs[0] && contentContainsSoldOut( floorplan.tabs[0].content )}"
6233                >
6234                  <div class="fp-modal-image-wrap" data-swiper-parallax="66%" data-swiper-parallax-opacity=".5">
6235                    <img :src="floorplan.thumbnail.url" :alt="floorplan.thumbnail.alt">
6236                    <span class="sr-only" v-if="floorplan.tabs && floorplan.tabs[0] && contentContainsSoldOut( floorplan.tabs[0].content )">Call for Availability</span>
6237                  </div>
6238                </div>
6239
6240                <!-- Tab Images (Part of the Floorplan consolidation update) -->
6241                <template v-if="floorplan?.tabs && floorplan?.tabs?.length > 1">
6242                  <div 
6243                    v-for="tab in floorplan.tabs.slice(1)" 
6244                    class="swiper-slide"
6245                    :class="{ 'fp-modal-gallery-swiper__slide--sold-out': contentContainsSoldOut(tab.content) }"
6246                  >
6247                    <img class="img-fluid fp-modal-image" :src="tab.image.url" width="781" height="532" :alt="tab?.image?.alt ?? tab?.title" data-swiper-parallax="66%" data-swiper-parallax-opacity=".5" >
6248                    <span class="sr-only" v-if="contentContainsSoldOut(tab.content)">Call for Availability</span>
6249                  </div>
6250                </template>
6251
6252                <!-- Gallery Images -->
6253                <template v-if="floorplan.gallery && floorplan.gallery.length > 0">
6254                  <div v-for="image in floorplan.gallery" class="swiper-slide">
6255                    <div v-if="image.youtube_video" class="fp-modal-iframe" v-html="image.youtube_video" data-swiper-parallax="66%" data-swiper-parallax-opacity=".5"></div>
6256                    <img v-else class="img-fluid" :src="image.url" alt="placeholder" data-swiper-parallax="66%" data-swiper-parallax-opacity=".5">
6257                  </div>
6258                </template>
6259
6260              </div>
6261            </div>
6262            <div class="fp-modal-gallery-spacer"></div>
6263          </div>
6264
6265          <div v-if="floorplan.gallery.length > 0 || floorplan?.tabs?.length > 1" class="fp-modal-gallery-thumbnails">
6266            <div thumbsSlider="" class="swiper">
6267              <div class="swiper-wrapper">
6268
6269                <!-- Initial Thumbnail -->
6270                <div v-if="floorplan.thumbnail" class="swiper-slide">
6271                  <div class="fp-modal-gallery-thumbnail" @click="openModalTab(0)">
6272                    <img class="img-fluid fp-modal-thumbnail--layout" :src="floorplan.thumbnail.url" alt="placeholder">
6273                  </div>
6274                </div>
6275
6276                <!-- Tab Thumbnails (Part of the Floorplan consolidation update) -->
6277                <template v-if="floorplan?.tabs && floorplan?.tabs?.length > 1">
6278                  <div v-for="(tab, index) in (floorplan.tabs.slice(1))" class="swiper-slide">
6279                    <div class="fp-modal-gallery-thumbnail" @click="openModalTab(index + 1)">
6280                      <img class="fp-modal-thumbnail fp-modal-thumbnail--layout img-fluid" :src="tab.image.url" width="107" height="107" :alt="tab?.image?.alt ?? tab?.title" data-swiper-parallax="66%" data-swiper-parallax-opacity=".5" >
6281                    </div>
6282                  </div>
6283                </template>
6284
6285                <!-- Gallery Thumbnails -->
6286                <template v-if="floorplan.gallery && floorplan.gallery.length > 0">
6287                  <div v-for="image in floorplan.gallery" class="swiper-slide">
6288                    <!-- Video -->
6289                    <div v-if="image.youtube_video" class="fp-modal-gallery-thumbnail fp-modal-video-thumbnail">
6290                      <img class="img-fluid" class="fp-modal-thumbnail" :src="image.url" alt="placeholder">
6291                    </div>
6292                      <!-- Image -->
6293                    <div v-else class="fp-modal-gallery-thumbnail">
6294                      <img class="img-fluid" class="fp-modal-thumbnail" :src="image.url" alt="placeholder">
6295                    </div>
6296                  </div>
6297                </template>
6298
6299              </div>
6300            </div>
6301            <small class="fp-modal-gallery-thumbnails__disclaimer">
6302              <span>Photos are for illustrative purposes and do not reflect the exact unit. Exact layouts and features of apartments may vary.</span>
6303            </small>
6304          </div>
6305
6306          <!-- Modal Content -->
6307          <div class="fp-modal-content">
6308
6309            <h2 class="fp-modal-title">{{ floorplan.name }}</h2>
6310            <div class="fp-modal-details h5">Floor Plan Details</div>
6311            <div class="fp-modal-notice" v-if="floorplan.banner" v-html="floorplan.banner"></div>
6312            <div class="fp-modal-description" v-if="floorplan.description != ''" v-html="floorplan.description"></div>
6313
6314            <!-- Info -->
6315            <div class="fp-modal-info">
6316              <span class="fp-modal-beds" v-if="floorplan.beds === '0' && floorplan.name.includes('Murphy')">Murphy</span>
6317              <span class="fp-modal-beds" v-else-if="floorplan.beds === '0'">Studio</span>
6318              <span class="fp-modal-beds" v-else>{{ floorplan.beds }} Bed</span>
6319              <span class="fp-modal-baths">{{ floorplan.baths }} Bath</span>
6320              <span class="fp-modal-sqft" v-if="floorplan.sq_ft_min">~{{ floorplan.sq_ft_min }} SF</span>
6321            </div>
6322
6323            <!-- Rates -->
6324            <div v-if="floorplan.rates" class="fp-modal-space-options">
6325              <!-- Space configuration pricing (disabled) -->                
6326              <template v-if="store?.sectionDisplayOptions?.space_configuration_pricing">
6327                <div class="fp-modal-space-options-title">Bed Prices From:</div>
6328                <ul class="fp-modal-space-options-list">
6329                  <template v-for="rate in floorplan.rates">
6330                    <li v-if="checkLabel(rate.label)" class="fp-modal-space-option">
6331                      <span class="fp-modal-rate">{{ rate.label }}</span>
6332                      <span v-if="rate.special_value && store.sanitizeFloorplanRates(rate.special_value)" class="fp-modal-value">
6333                        <span class="strikethrough">{{ '$' + store.sanitizeFloorplanRates(rate.value) }}</span>
6334                        <span>{{ '$' + store.sanitizeFloorplanRates(rate.special_value) }}</span>
6335                      </span>
6336                      <span v-else-if="store.sanitizeFloorplanRates(rate.value)" class="fp-modal-value">
6337                        {{ '$' + store.sanitizeFloorplanRates(rate.value) }}
6338                      </span>
6339                      <a href="javascript:;" style="text-decoration: underline;" class="fp-fees" @click.stop.prevent="navigateToFees">(plus fees)</a>
6340                    </li>
6341                  </template>
6342                </ul>
6343              </template>
6344              <!-- Min Rate pricing -->
6345              <template v-else-if="floorplan.min_rate && !floorplan.hide_rates">
6346                <ul class="fp-modal-space-options-list">
6347                  <li class="fp-modal-space-option">
6348                    <span>Bed Prices From: </span>
6349                    <span v-if="floorplan.min_rate_special && store.sanitizeFloorplanRates(floorplan.min_rate_special)">
6350                      <span class="strikethrough">{{ '$' + store.sanitizeFloorplanRates(floorplan.min_rate) }}</span>
6351                      <span>{{ '$' + store.sanitizeFloorplanRates(floorplan.min_rate_special) }}</span>
6352                    </span>
6353                    <span v-else-if="store.sanitizeFloorplanRates(floorplan.min_rate)">{{ '$' + store.sanitizeFloorplanRates(floorplan.min_rate) }}</span>
6354                    <a href="javascript:;" style="text-decoration: underline;" class="fp-fees" @click.stop.prevent="navigateToFees">(plus fees)</a>
6355                  </li>
6356                </ul>
6357              </template>
6358              <!-- Call for Pricing -->
6359              <template v-else>
6360                <ul class="fp-modal-space-options-list">
6361                  <li>
6362                    <span>{{ store?.sectionDisplayOptions?.hide_rates_text ? store?.sectionDisplayOptions?.hide_rates_text : 'Call for pricing' }}</span>
6363                  </li>
6364                </ul>
6365              </template>
6366            </div>
6367            <div v-else>
6368              <!-- Call for Pricing -->
6369              <ul class="fp-modal-space-options-list">
6370                <li>
6371                  <span>{{ store?.sectionDisplayOptions?.hide_rates_text ? store?.sectionDisplayOptions?.hide_rates_text : 'Call for pricing' }}</span>
6372                </li>
6373              </ul>
6374            </div>
6375
6376            <!-- Tabs (Space Configurations) -->
6377            <div v-if="floorplan.tabs && floorplan.tabs.length > 0" class="fp-modal-tabs">
6378              <div class="fp-modal-tabs__title h6">{{store?.sectionDisplayOptions?.modal_tab_title ? store?.sectionDisplayOptions?.modal_tab_title : 'Styles'}}</div>
6379              <ul class="fp-modal-tabs__nav" id="fpModalTabs" role="tablist">
6380                <li class="fp-modal-tabs__nav-item" v-for="(tab, index) in floorplan.tabs" :key="index">
6381                  <a 
6382                    class="fp-modal-tabs__nav-link" 
6383                    :class="{ active: tab.active, 'fp-modal-tabs__nav-link--sold-out': contentContainsSoldOut(tab.content) }"
6384                    href="javascript:;"
6385                    role="tab"  
6386                    :aria-controls="'fpModalTab' + index"
6387                    :aria-selected="tab.active"
6388                    @click.stop.prevent="openModalTab(index)"
6389                  >
6390                    {{ tab.title }}
6391                  </a>
6392                </li>
6393              </ul>
6394              <div class="fp-modal-tabs__body">
6395                <TransitionGroup tag="div" name="tab-fade" mode="out-in">
6396                  <template v-for="(tab, index) in floorplan.tabs" :key="index" >
6397                      <div
6398                        v-if="tab.active"
6399                        class="fp-modal-tabs__pane fade" 
6400                        :class="{ active: tab.active }"
6401                        :id="'fpModalTab' + index"
6402                        role="tabpanel"
6403                      >
6404                        <div 
6405                          class="fp-modal-tabs__content" 
6406                          :class="{ 'fp-modal-tabs__content--sold-out': contentContainsSoldOut(tab.content) }"
6407                          v-html="tab.content"
6408                        ></div>
6409                      </div>
6410                  </template>
6411                </TransitionGroup>
6412                <div class="disclaimer">
6413                  <span>Floorplan styles are preference based and assigned on a first-come, first-serve basis.</span>
6414                </div>
6415              </div>
6416            </div>
6417
6418            <!-- Apply Now -->
6419            <div v-if="(floorplan.rates && !floorplan?.hide_rates) || floorplan.links?.length" class="fp-modal-links">
6420              <a style="margin-top: 1rem;" class="btn btn-primary-alt" :href="floorplan.apply_link" target="_blank">
6421                <span>Apply now</span>
6422              </a>
6423  
6424              <a v-for="(link, index) in floorplan.links"
6425              :key="index"
6426              style="margin-top: 1rem;margin-left:1rem;"
6427              class="btn btn-primary-alt"
6428              :href="link.link.url"
6429              target="_blank"
6430            >
6431              <span>{{ link.link.title }}</span>
6432            </a>
6433          </div>
6434
6435            <!-- End Tabs (Space Configurations) -->
6436            <div v-if="floorplan.disclaimer" class="fp-modal-disclaimer">
6437              {{ floorplan.disclaimer }}
6438            </div>
6439
6440          </div>
6441
6442        </div>
6443      </div>
6444    </div>
6445  `
6446};
6447    const floorplans = {
6448  props: {
6449    categories: {
6450      type: Array,
6451      required: true
6452    },
6453  },
6454  data() {
6455    return {
6456      store,
6457      filters: {
6458        floors: 'Any',
6459        beds: 'Any',
6460        price: 'Any',
6461        sqft: 'Any',
6462        search: '',
6463        tags: []
6464      }
6465    }
6466  },
6467  emits: ['open-modal'],
6468  computed: {
6469    filteredCategories() {
6470      // Filter categories based on the filters
6471      return Object.keys(this.categories).reduce((acc, label) => {
6472        const category = this.categories[label];
6473        //console.log(label.toLowerCase());
6474        const floorplans = category.floorplans.filter(fp => {
6475          let matches = true;
6476          // Loop through each filter
6477          for (const key in this.filters) {
6478            // Skip if the filter is 'any'
6479            if (this.filters[key] === 'Any') {
6480              continue;
6481            }
6482            if (key === 'search') {
6483              if (!fp.name.toLowerCase().includes(this.filters[key].toLowerCase())) {
6484                matches = false;
6485                break;
6486              }
6487              continue;
6488            }
6489            // Skip if the filter is 'tags'
6490            if (key === 'tags') {
6491              if (this.filters.tags.length === 0) {
6492                continue;
6493              }
6494              let hasTag = false;
6495              this.filters.tags.forEach(tag => {
6496                fp.tags.forEach(fpTag => {
6497                  if(fpTag.term_id === tag.term_id) {
6498                    hasTag = true;
6499                  }
6500                });
6501              });
6502              if (!hasTag) {
6503                matches = false;
6504                break;
6505              }
6506              continue;
6507            }
6508            if (key === 'price') {
6509              const [min, max] = this.filters[key].split('-');
6510              if(typeof fp.min_rate === 'string') {
6511                fp.min_rate = parseInt(fp.min_rate.replace(/[^0-9.-]+/g, ''));
6512              }
6513              if (fp.min_rate < min || fp.min_rate > max) {
6514                matches = false;
6515                break;
6516              }
6517              continue;
6518            }
6519            if (key === 'sqft') {
6520              const [min, max] = this.filters[key].split('-');
6521              if(typeof fp.sq_ft_min === 'string') {
6522                fp.sq_ft_min = parseInt(fp.sq_ft_min.replace(/[^0-9.-]+/g, ''));
6523              }
6524              if (Number((fp.sq_ft_min)) < Number(min) || fp.sq_ft_min > Number(max)) {
6525                matches = false;
6526                break;
6527              }
6528              continue;
6529            }
6530            if (key === 'floors') {
6531              // If the floor is not in the array of floors
6532              if (!fp.entrata.floors.includes(this.filters[key])) {
6533                matches = false;
6534                break;
6535              }
6536              continue;
6537            }
6538            if (key === 'beds') {
6539              const bedsFilter = this.filters[key];
6540              const isBunkCategory = label.toLowerCase().includes('bunk'); // if fp is in the 'bunk' array;
6541
6542              // If selecting bunk, only allow bunk categories
6543              if (bedsFilter === 'bunk') {
6544                if (!isBunkCategory) {
6545                  matches = false;
6546                  break;
6547                }
6548
6549                // Don't compare fp.beds at all
6550                continue;
6551              }
6552
6553              // If NOT selecting bunk, hide bunk categories
6554              if (isBunkCategory) {
6555                matches = false;
6556                break;
6557              }
6558
6559              // Normal beds filtering
6560              if (String(fp.beds) !== String(bedsFilter)) {
6561                matches = false;
6562                break;
6563              }
6564
6565              continue;
6566            }
6567          }
6568          return matches;
6569        });
6570        if (floorplans.length) {
6571          acc[label] = {
6572            floorplans
6573          };
6574        }
6575        return acc;
6576      }, {});
6577    }
6578  },
6579  methods: {
6580    openModal(fp, event) {
6581      this.$emit('open-modal', fp);
6582    },
6583    highlightName(name) {
6584      if (!this.filters) return name;
6585      if (!this.filters.search || this.filters.search == '') return name;
6586      return name.replace(new RegExp(this.filters.search, 'gi'), `<span class="highlight">${this.filters.search}</span>`);
6587    },
6588    slugify(text) {
6589      return text.toString().toLowerCase()
6590        .replace(/\s+/g, '-')           // Replace spaces with -
6591        .replace(/[^\w-]+/g, '')        // Remove all non-word chars
6592        .replace(/--+/g, '-')           // Replace multiple - with single -
6593        .replace(/^-+/, '')             // Trim - from start of text
6594        .replace(/-+$/, '');            // Trim - from end of text
6595    }
6596  },
6597  mounted() {
6598    // If store.hash is set, scroll to the category
6599    if (store.hash) {
6600      const target = document.querySelector(store.hash);
6601      var navbar = document.querySelector('.navbar');
6602      var navbarHeight = 0;
6603      if(navbar) {
6604        navbarHeight = navbar.offsetHeight;
6605      }
6606      var offset = 50;
6607      // Distance from target to top
6608      var elementTop = target.getBoundingClientRect().top;
6609      elementTop = elementTop + window.pageYOffset - navbarHeight - offset;
6610      window.scrollTo({
6611        top: elementTop,
6612      });
6613      store.hash = null;
6614    }
6615  },
6616  template: /*html */`
6617    <div class="fp-view">
6618      <!-- Navigation -->
6619      <filters v-model:filters="filters" :categories="categories" ref="fpFilters" />
6620      <!-- Floorplan Categories -->
6621      <div class="fp-categories">
6622        <template v-for="(category, label) in filteredCategories" :key="label">
6623          <!-- Category -->
6624          <div class="fp-category" :id="slugify(label)">
6625            <div class="fp-category-heading">
6626              <!-- Category Title -->
6627              <h2 class="fp-category-title">{{ label }}</h2>
6628              <!-- Category Matches -->
6629              <span class="fp-category-matches">
6630                {{ category.floorplans.length }} Matches
6631              </span>
6632              <filters-status class="fp-category-mobile-filter-status" :filters="filters" @clearFilters="$refs.fpFilters.clearFilters()" />
6633            </div>
6634            <!-- Floorplans -->
6635            <div class="fps">
6636              <!-- Transition Wrapper -->
6637              <transition-group name="fp-transition">
6638                <!-- Floorplan -->
6639                <component  
6640                  v-for="fp in category.floorplans" 
6641                  :key="fp.id"
6642                  :id="slugify(label) + '-' + fp.slug"
6643                  @click="!fp.sold_out && openModal(fp, $event)" 
6644                  class="fp" 
6645                  :class="{ 'fp--soldout' : fp.sold_out, 'fp--highlight' : store.showAdditionalInfo && !fp.entrata }"
6646                  :is="fp.sold_out ? 'div' : 'button'"
6647                >
6648                  <!-- Image -->
6649                  <div class="fp-image">
6650                    <div class="fp-image-wrap">
6651                      <img class="img-fluid" v-if="fp.thumbnail" :src="fp.thumbnail.url" alt="placeholder" width="854" height="785" :data-flip-id="fp.id">
6652                    </div>
6653                  </div>
6654                  <div class="fp-text">
6655                    <!-- Banner -->
6656                    <div v-if="fp.banner && !fp.sold_out" v-html="fp.banner" class="fp-banner"></div>
6657                    <!-- Name -->
6658                    <h3 class="fp-title" v-html="highlightName(fp.name)"></h3>
6659                    <!-- Info -->
6660                    <div class="fp-info">
6661                      <span class="fp-beds" v-if="fp.beds === '0' && fp.name.includes('Murphy')">Murphy</span>
6662                      <span class="fp-beds" v-else-if="fp.beds === '0'">Studio</span>
6663                      <template v-else>
6664                        <span class="fp-beds">{{ fp.beds }} Bed</span>
6665                        <span class="fp-baths">{{ fp.baths }} Bath</span>
6666                      </template>
6667                      <span v-if="fp.sq_ft_min" class="fp-sqft">{{ fp.sq_ft_min }} SF</span>
6668                    </div>
6669                    <!-- Rate Display -->
6670                    <div v-if="!fp.sold_out && fp.min_rate && store.sanitizeFloorplanRates(fp.min_rate) && !fp.hide_rates" class="fp-starting-at">
6671                      <span v-if="fp.min_rate_special">
6672                        Starting at 
6673                        <span class="strikethrough">{{ '$' + store.sanitizeFloorplanRates(fp.min_rate) }}</span>
6674                        <span>{{ '$' + store.sanitizeFloorplanRates(fp.min_rate_special) }}</span>
6675                      </span>
6676                      <span v-else>Starting at <span>{{ '$' + store.sanitizeFloorplanRates(fp.min_rate) }}</span></span>
6677                      <span class="fp-fees">(plus fees)</span>
6678                    </div>
6679                    <!-- Sold Out -->
6680                    <a v-else-if="fp.sold_out && store.scheduleTourLink" :href="store.scheduleTourLink" class="fp-call-availability">{{fp.banner || 'Call for availability' }}</a>
6681                    <!-- Hide Rates -->
6682                    <div v-else class="fp-starting-at">
6683                      <span>{{ store?.sectionDisplayOptions?.hide_rates_text ? store?.sectionDisplayOptions?.hide_rates_text : 'Call for pricing' }}</span>
6684                    </div>
6685                    <!-- Disclaimer -->
6686                    <div class="fp-disclaimer">
6687                      Exact layouts and features of apartments may vary.
6688                    </div>
6689                    <!-- Message -->
6690                    <div v-if="store.floorplansOptions && store.floorplansOptions.message" v-html="store.floorplansOptions.message" class="fp-disclaimer"></div>
6691                  </div>
6692                </component>
6693              </transition-group>
6694            </div>
6695          </div>
6696        </template>
6697        <!-- No Results -->
6698        <div v-if="Object.keys(filteredCategories).length === 0" class="fp-no-results">
6699          <h2>No Results</h2>
6700          <p>
6700Try adjusting your search filters to find the perfect floorplan for you.</p>
6701        </div>
6702      </div>
6703    <div>
6704  `
6705};
6706
6707    const unitsModal = {
6708  data() {
6709    return {
6710      store,
6711      unit: null,
6712      floorplan: null
6713    }
6714  },
6715  props: {
6716    unitID: {
6717      type: Number,
6718      required: true
6719    },
6720    open: {
6721      type: Boolean,
6722      required: true
6723    }
6724  },
6725  emits: ['close', 'openAreaModal'],
6726  methods: {
6727    close() {
6728      this.$emit('close');
6729    },
6730    openAreaModal(area) {
6731      this.$emit('openAreaModal', area);
6732    },
6733    youMayAlsoLike(floorplanID, unitID) {
6734      const units = store.units;
6735      let floorplan = store.floorplans[floorplanID];
6736      let filteredUnits = Object.values(units).filter(unit => unit.floorplanID === floorplanID && unit.id !== unitID);
6737      // If there are no units, then search other floorplans
6738      if (filteredUnits.length < 4) {
6739        // Try to find units with the same bed count
6740        for (let [key, value] of Object.entries(store.floorplans)) {
6741          // If the floorplan is the same, skip it
6742          if (parseInt(key) === floorplanID) continue;
6743          // If the floorplan has a different number of beds, skip it
6744          if (value.beds !== floorplan.beds) continue;
6745          // Find all units that match the floorplanID, except the current unit
6746          let unitsToAdd = Object.values(units).filter(unit => unit.floorplanID === parseInt(key) && unit.id !== unitID);
6747          // Add any units found this way to the filteredUnits array
6748          filteredUnits = filteredUnits.concat(unitsToAdd);
6749          // If we have 4 units, break
6750          if (filteredUnits.length >= 4) break;
6751        }
6752      }
6753
6754      // Convert Units to Areas, and return the first 4
6755      const areas = [];
6756      let index = 0;
6757      filteredUnits.forEach(unit => {
6758        if (index++ >= 4) return;
6759        let previewImage;
6760        let unitFloorplan = store.floorplans[unit.floorplanID];
6761        if (unitFloorplan.gallery.length > 0) {
6762          // previewImage = unitFloorplan.gallery[index % unitFloorplan.gallery.length];
6763          previewImage = unitFloorplan.thumbnail;
6764        }
6765        const area = {
6766          unit: unit,
6767          floorplan: unitFloorplan,
6768          previewImage: previewImage
6769        };
6770        areas.push(area);
6771      });
6772      return areas;
6773    },
6774    formatDate(date) {
6775      // Change format of 8/1 to August, 1
6776      // First, convert the string 8/1 to a valid ISO date, assumeing the year is the current year
6777      let dateParts = date.split('/');
6778      let month = dateParts[0];
6779      let day = dateParts[1];
6780      let d = new Date(`${new Date().getFullYear()}/${month}/${day}`);
6781      // Assume the year is the current year
6782      const dateWithYear = `${new Date().getFullYear()}/${d}`;
6783      if (new Date(dateWithYear) < new Date()) return 'Now';
6784      // Add comma after month
6785      return d.toLocaleString('default', { month: 'long', day: 'numeric' });
6786    }
6787  },
6788  beforeUnmount() {
6789    if (this.thumbsSlider) this.thumbsSlider.destroy();
6790    if (this.slider) this.slider.destroy();
6791  },
6792  beforeMount() {
6793    this.unit = store.units[this.unitID];
6794    this.floorplan = store.floorplans[this.unit.floorplanID];
6795  },
6796  mounted() {
6797    const thumbsEl = this.$el.querySelector('.fp-modal-gallery-thumbnails .swiper');
6798    if (thumbsEl) {
6799      this.thumbsSlider = new Swiper(thumbsEl, {
6800        spaceBetween: 10,
6801        slidesPerView: 'auto',
6802        freeMode: true,
6803        watchSlidesProgress: true,
6804      });
6805    }
6806    const sliderEl = this.$el.querySelector('.fp-modal-gallery-swiper');
6807    if (sliderEl) {
6808      this.slider = new Swiper(sliderEl, {
6809        initialSlide: 0,
6810        spaceBetween: 0,
6811        speed: 1000,
6812        parallax: true,
6813        thumbs: {
6814          swiper: this.thumbsSlider,
6815        },
6816      });
6817    }
6818  },
6819  template: /*html */`
6820    <div class="fp-modal">
6821
6822      <div class="fp-modal-inner">
6823
6824        <!-- Close Button -->
6825        <button @click="close" class="fp-modal-close">
6826          <svg xmlns="http://www.w3.org/2000/svg" width="19" height="19" viewBox="0 0 19 19" fill="none"> <path d="M1 1L18 18" stroke="black"/> <path d="M18 1L1 18" stroke="black"/></svg>
6827        </button>
6828
6829        <div class="fp-modal-inner-inner theme-scrollbar-2">
6830
6831          <!-- Modal Gallery -->
6832          <div class="fp-modal-gallery">
6833            <div class="swiper fp-modal-gallery-swiper" :data-flip-id="floorplan.id">
6834              <div class="swiper-wrapper">
6835                <div class="swiper-slide">
6836                  <div class="fp-modal-image-wrap" data-swiper-parallax="66%" data-swiper-parallax-opacity=".5">
6837                    <img :src="floorplan.thumbnail.url" :alt="floorplan.thumbnail.alt">
6838                  </div>
6839                </div>
6840                <div v-for="image in floorplan.gallery" class="swiper-slide">
6841                  <!-- If it's a video -->
6842                  <div v-if="image.youtube_video" class="fp-modal-iframe" v-html="image.youtube_video" data-swiper-parallax="66%" data-swiper-parallax-opacity=".5"></div>
6843                  <!-- If it's an image -->
6844                  <img v-else class="img-fluid" :src="image.url" alt="placeholder" data-swiper-parallax="66%" data-swiper-parallax-opacity=".5">
6845                </div>
6846            </div>
6847            </div>
6848            <div class="fp-modal-gallery-spacer"></div>
6849          </div>
6850
6851          <div v-if="floorplan.gallery.length >
6851 0" class="fp-modal-gallery-thumbnails">
6852            <div thumbsSlider="" class="swiper">
6853              <div class="swiper-wrapper">
6854                <div class="swiper-slide">
6855                  <div class="fp-modal-gallery-thumbnail">
6856                    <img class="img-fluid" :src="floorplan.thumbnail.url" alt="placeholder">
6857                  </div>
6858                </div>
6859                <div v-for="image in floorplan.gallery" class="swiper-slide">
6860                  <!-- If it's a video -->
6861                  <div v-if="image.youtube_video" class="fp-modal-gallery-thumbnail fp-modal-video-thumbnail">
6862                    <img class="img-fluid" class="fp-modal-thumbnail" :src="image.url" alt="placeholder">
6863                  </div>
6864                    <!-- If it's an image -->
6865                  <div v-else class="fp-modal-gallery-thumbnail">
6866                    <img class="img-fluid" class="fp-modal-thumbnail" :src="image.url" alt="placeholder">
6867                  </div>
6868                </div>
6869              </div>
6870            </div>
6871            <small class="fp-modal-gallery-thumbnails__disclaimer">
6872              <span>Photos are for illustrative purposes and do not reflect the exact unit. Exact layouts and features of apartments may vary.</span>
6873            </small>
6874          </div>
6875
6876          <!-- Modal Content -->
6877          <div class="fp-modal-content">
6878            <h2 class="fp-modal-title">Unit {{ store.formatUnitName(unit.number) }}</h2>
6879            <div class="fp-modal-details h5">{{ unit?.unitTypeName ? unit?.unitTypeName : floorplan.name }} {{ floorplan.category }}</div>
6880            <div class="fp-modal-notice" v-if="floorplan.banner" v-html="floorplan.banner"></div>
6881            <div class="fp-modal-description" v-if="floorplan.description != ''" v-html="floorplan.description"></div>
6882            <div class="fp-modal-info">
6883              <span v-if="floorplan.beds === '0' && floorplan.name.includes('Murphy')">Murphy</span>
6884              <span v-else-if="floorplan.beds === '0'">Studio</span>
6885              <template v-else>
6886                <span >{{ floorplan.beds }} Bed</span>
6887                <span>{{ floorplan.baths }} Bath</span>
6888              </template>
6889              <span class="fp-modal-sqft">{{ unit.sqft }} SF</span>
6890            </div>
6891            <template v-if="!store.hideRates">
6892              <div v-if="unit.spaceOptions.length" class="fp-modal-space-options">
6893                <ul class="fp-modal-space-options-list">
6894                  <li v-for="spaceOption in unit.spaceOptions" class="fp-modal-space-option">
6895                    <span class="fp-modal-rate">{{ spaceOption.title }}</span>
6896                    <span class="fp-modal-value">{{ '$' + spaceOption.rent }}</span>
6897                  </li>
6898                </ul>
6899                <span class="fp-modal-availableOn" v-if="store.unitAvailability">Available {{ store.formatDate(unit.availableOn) }}</span>
6900              </div>
6901              <div v-else>
6902                <div class="fp-modal-rates">
6903                  <span class="fp-modal-rate" v-if="unit.rent">Starting at {{ '$' + unit.rent }}</span>
6904                  <span class="fp-modal-rate" v-else>Call for availability</span>
6905                </div>
6906                <span class="fp-modal-availableOn" v-if="store.unitAvailability">Available {{ store.formatDate(unit.availableOn) }}</span>
6907              </div>
6908            </template>
6909            <div v-if="floorplan.disclaimer" class="fp-modal-disclaimer">
6910              {{ floorplan.disclaimer }}
6911            </div>
6912            <div class="fp-modal-apply" v-if="store.unitAvailability && floorplan.apply_link">
6913              <!-- Apply now button -->
6914              <a style="margin-top: 1rem;" class="btn btn-primary" :href="floorplan.apply_link" target="_blank">
6915                <span>Apply now</span>
6916              </a>
6917            </div>
6918          </div>
6919
6920          <div class="fp-modal-also" v-if="youMayAlsoLike(unit.floorplanID, unit.id).length">
6921            <h3 class="fp-modal-also-title">You Might Also Like</h3>
6922            <ul class="fp-modal-recommend">
6923              <template v-for="unit in youMayAlsoLike(unit.floorplanID, unit.id)" :key="unit">
6924                <jumpem-map-unit v-if="unit" :area="unit" @openAreaModal="openAreaModal" />
6925              </template>
6926            </ul>
6927          </div>
6928
6929        </div>
6930
6931      </div>
6932
6933    </div>
6934  `
6935};
6936    const fpAppCore = {
6937  data() {
6938    return {
6939      transitionName: 'fade',
6940      transitionMode: null,
6941      units: null,
6942      floorplans: null,
6943      categories: null,
6944      activeFP: null,
6945      activeArea: null,
6946      maps: null,
6947      store,
6948    }
6949  },
6950  props: {
6951    view: {
6952      type: String,
6953      default: 'maps'
6954    }
6955  },
6956  methods: {
6957    openAreaModal(area) {
6958      if(this.activeFP || this.activeArea) {
6959        this.transitionName = 'modal-slide';
6960        this.transitionMode = 'out-in';
6961      } else {
6962        this.transitionName = 'fade';
6963        this.transitionMode = 'null';
6964      }
6965      if(this.activeFP) {
6966        this.closeFPModal();
6967      }
6968      this.activeArea = area;
6969      // Lock the body
6970      document.body.classList.add('no-scroll');
6971    },
6972    closeAreaModal() {
6973      this.transitionName = 'fade';
6974      this.transitionMode = 'null';
6975      this.activeArea = null;
6976      // Unlock the body
6977      document.body.classList.remove('no-scroll');
6978    },
6979    openFPModal(fp) {
6980      this.activeFP = fp;
6981      // Lock the body
6982      document.body.classList.add('no-scroll');
6983    },
6984    closeFPModal() {
6985      this.activeFP = null;
6986      // Unlock the body
6987      document.body.classList.remove('no-scroll');
6988    },
6989    FPModalBeforeEnter(el) {
6990      // Save the current state
6991      const images = gsap.utils.toArray('.fp-image img');
6992      if(images.length) {
6993        lastState = Flip.getState(images, { props: "transform" });
6994      }
6995    },
6996    FPModalEnter(el) {
6997      if(this.transitionName == 'modal-slide') {
6998        return;
6999      }
7000      const elemToFlip = el.querySelector('.fp-modal-gallery-swiper');
7001      const flipId = elemToFlip.getAttribute('data-flip-id');
7002      const flipEl = document.querySelector(`.fp-image img[data-flip-id="${flipId}"]`);
7003      if(flipEl) {
7004        flipEl.style.opacity = 0;
7005      }
7006      if(elemToFlip && lastState && this.view == 'floorplans') {
7007        Flip.from(lastState, { 
7008          duration: .55, 
7009          ease: "power1.inOut",
7010          targets: elemToFlip,
7011          zIndex: 999,
7012        });
7013      }
7014    },
7015    FPModalBeforeLeave(el) {
7016      const elemToFlip = el.querySelector('.fp-modal-gallery-swiper');
7017      if(elemToFlip) {
7018        // Remove it
7019        lastState = Flip.getState(elemToFlip, { props: "transform" });
7020        elemToFlip.remove();
7021      }
7022    },
7023    FPModalLeave(el) {
7024      if(this.transitionName == 'modal-slide') {
7025        return;
7026      }
7027      const images = gsap.utils.toArray('.fp-image img');
7028      if(images.length && lastState && this.view == 'floorplans') {
7029        // Find the opacity 0 image and set it to 1
7030        images.forEach(img => {
7031          if(img.style.opacity == 0) {
7032            img.style.opacity = 1;
7033          }
7034        });
7035        Flip.from(lastState, { 
7036          duration: .55, 
7037          ease: "power1.inOut",
7038          targets: images,
7039          zIndex: 999,
7040        });
7041      }
7042    },
7043  },
7044  async setup() {
7045    const data = localData.apiTransitionData;
7046    let galleryIndex = 0;
7047    this.categories = store.categories = data.categories;
7048    this.units = store.units = data.units;
7049    this.floorplans = store.floorplans = data.floorplans;
7050    this.maps = localData.imageMaps;
7051    if(this.maps) {
7052      this.maps.forEach(map => {
7053        if(map.areas && map.areas.length) {
7054          map.areas.forEach(area => {
7055            const unit = this.units[area.unit_id];
7056            if(unit) {
7057              area.unit = unit;
7058              const floorPlanID = unit.floorplanID;
7059              const floorplan = this.floorplans[floorPlanID];
7060              if(floorplan) {
7061                area.floorplan = floorplan;
7062                // area.previewImage = floorplan.gallery[(galleryIndex++ % floorplan.gallery.length)];
7063                area.previewImage = floorplan.thumbnail;
7064              }
7065            }
7066          });
7067          galleryIndex = 0;
7068        }
7069      });
7070    }
7071    return {
7072      categories: this.categories,
7073      units: this.units,
7074      floorplans: this.floorplans,
7075      maps: this.maps,
7076    }
7077  },
7078  template: /*html */`
7079    <div class="fp-app__core">
7080
7081      <!-- Views -->
7082      <div class="fp-app__views">
7083        <Transition name="view" mode="out-in">
7084          <!-- SightMap View -->
7085          <div 
7086            v-if="maps && view === 'maps' && store.enableSightmap && store.sightmap"
7087            class="fp-app-sightmap-wrap"
7088          >
7089          <KeepAlive>
7090            <div 
7091              class="fp-app-sightmap"
7092              v-html="store.sightmap"
7093            >
7094            </div>
7095          </KeepAlive>
7096          </div>
7097          <!-- Map View -->
7098          <maps 
7099            v-else-if="maps && view === 'maps'" 
7100            :maps="maps" 
7101            :units="units"
7102            :floorplans="floorplans"
7103            :categories="categories"
7104            :key="units"
7105            @openAreaModal="openAreaModal"
7106          />
7107          <!-- Plan View -->
7108          <floorplans 
7109            v-else-if="view === 'floorplans' && categories" 
7110            :categories="categories" 
7111            @open-modal="openFPModal" 
7112          />
7113        </Transition>
7114      </div>
7115
7116      <!-- Modals -->
7117      <div class="fp-app__modals">
7118        <Transition 
7119          :name="transitionName"
7120          :mode="transitionMode"
7121          @before-enter="FPModalBeforeEnter"
7122          @enter="FPModalEnter"
7123          @after-enter="FPModalAfterEnter"
7124          @before-leave="FPModalBeforeLeave"
7125          @leave="FPModalLeave"
7126        >
7127          <!-- Plan Modal -->
7128          <floorplans-modal v-if="activeFP" :floorplan="activeFP" :units="units" @close="closeFPModal" @openAreaModal="openAreaModal" />
7129          <!-- Unit Modal -->
7130          <area-modal v-if="activeArea" :key="activeArea" :unitID="activeArea" @openAreaModal="openAreaModal" @close="closeAreaModal" />
7131        </Transition >
7132      </div>
7133
7134    </div>`
7135};
7136    gsap.registerPlugin(Flip);
7137
7138let lastState;
7139
7140const store = JumpemVue.reactive({
7141  categories: null,
7142  floorplans: null,
7143  units: null,
7144  sightmap: sightmap,
7145  entrataSupport: localData.entrataSupport,
7146  title: localData.title,
7147  content: localData.content,
7148  hasImageMap: localData.imageMaps && localData.imageMaps.length && localData.imageMaps[0].image && ( localData.enableJumpemMap || localData.enableSightmap ),
7149  enableSightmap: localData.enableSightmap,
7150  hash: null,
7151  baseURL: localData.baseURL,
7152  baseURI: localData.baseURI,
7153  showAdditionalInfo: localData.showAdditionalInfo,
7154  scheduleTourLink: localData.scheduleTourLink,
7155  spaceConfigurationPricing: localData.spaceConfigurationPricing,
7156  floorplansOptions: localData.floorplansOptions,
7157  hideRates: localData.hideRates,
7158  sectionDisplayOptions: localData.sectionDisplayOptions || {},
7159  apiTransitionData: localData.apiTransitionData || null,
7160  formatUnitName: function(name) {
7161    // Remove the "Unit" prefix
7162    name =  name.replace(/Unit /, '');
7163    // Remove anything after the dash
7164    return name.replace(/-.*/, '');
7165  },
7166  formatDate: function(date) {
7167    // Return 'Now' if the date is in the past
7168    if (new Date(date) < new Date()) return 'Now';
7169    // Otherwise, we can omit the year and return in the format '8/1'
7170    return new Date(date).toLocaleDateString('default', { month: 'numeric', day: 'numeric' });
7171  },
7172  sanitizeFloorplanRates: function(rate) {
7173    // Check if the rate is a number less than 200, if so returns null
7174    if (!rate || isNaN(rate)) return '';
7175    if (Number(rate) < 200) return '';
7176    return Number(rate);
7177  }
7178})
7179
7180// Check for ?floorplan request
7181if (window.location.search) {
7182  const urlParams = new URLSearchParams(window.location.search);
7183  const floorplan = urlParams.get('floorplan');
7184  if (floorplan) {
7185    store.hash = '#' + floorplan;
7186    window.history.replaceState({}, document.title, window.location.pathname);
7187  }
7188}
7189
7190const fpApp = JumpemVue.createApp({
7191  data() {
7192    return {
7193      store,
7194      // view:  store.hasImageMap && !store.hash ? 'maps' : 'floorplans'
7195      view: 'floorplans'
7196    }
7197  },
7198  methods: {
7199    activateView(view) {
7200      this.view = view;
7201    },
7202  },
7203  template: /*html */`
7204    <div class="fp-app">
7205
7206      <!-- Intro -->
7207      <div class="fp-app__intro">
7208      
7209        <!-- Heading -->
7210        <div class="fp-app__heading">
7211          <h2 v-html="store.title"></h2>
7212          <div v-html="store.content"></div>
7213        </div>  
7214        
7215        <!-- View Select -->
7216        <div class="fp-app__views-select" v-if="store.hasImageMap && (store.entrataSupport || store.sightmap)">
7217          <!-- Map View Button -->
7218          <button @click="activateView('maps')" class="fp-app__btn" :class="{ active: view == 'maps' }">
7219            Map View
7220          </button>
7221          <!-- Plan View Button -->
7222          <button @click="activateView('floorplans')" class="fp-app__btn" :class="{ active: view == 'floorplans' }">
7223            Plan View
7224          </button>
7225        </div>
7226
7227      </div>
7228      
7229      <Transition name="load" mode="out-in">
7230        <Suspense>
7231          <fp-app-core :view="view" />
7232          <template #fallback>
7233            <div class="loader-wrap" v-if="!store.categories">
7234                <div class="loader" >Loading...</div>
7235                <svg class="loader-logo" version="1.1" id="Layer_3" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="848px" height="161px" viewBox="0 0 848 161" enable-background="new 0 0 848 161" xml:space="preserve"> <g> <path fill="#29B354" d="M32.058,7.09v13.184v13.184h16.65h16.65v29.15v29.15c0,2.572-0.021,5.025-0.062,7.361 c-0.041,2.335-0.102,4.553-0.183,6.652c-0.082,2.1-0.33,4.073-0.745,5.921s-0.997,3.568-1.745,5.163 c-0.716,1.628-1.689,3.077-2.918,4.347c-1.229,1.27-2.714,2.359-4.455,3.271c-1.742,0.912-3.854,1.596-6.335,2.051 c-2.482,0.456-5.334,0.684-8.557,0.684c-2.507,0-4.786-0.126-6.837-0.378s-3.874-0.631-5.468-1.136 c-1.595-0.504-3.158-1.029-4.688-1.574c-1.53-0.546-3.027-1.111-4.492-1.697h-1.66h-1.66v14.746v14.746 c2.148,0.455,4.468,0.858,6.958,1.209c2.49,0.35,5.151,0.646,7.983,0.891s5.762,0.427,8.789,0.55 c3.027,0.122,6.152,0.183,9.375,0.183c4.329,0,8.406-0.261,12.231-0.781c3.825-0.521,7.398-1.302,10.718-2.344 c3.32-1.041,6.421-2.376,9.302-4.003c2.881-1.628,5.542-3.549,7.983-5.763c2.181-1.953,4.084-4.113,5.712-6.482 c1.628-2.367,2.979-4.943,4.053-7.727s1.88-5.66,2.417-8.631c0.537-2.97,0.806-6.034,0.806-9.191V58.457V7.09H66.97H32.058z"/> <path fill="#29B354" d="M213.308,7.09v45.361v45.361c0,5.241-0.493,9.767-1.477,13.575c-0.985,3.809-2.462,6.9-4.431,9.276 c-1.97,2.376-4.497,4.159-7.581,5.347c-3.084,1.188-6.726,1.782-10.925,1.782c-4.297,0-7.996-0.618-11.096-1.855 c-3.101-1.236-5.603-3.093-7.507-5.566s-3.333-5.59-4.285-9.35s-1.428-8.163-1.428-13.209V52.451V7.09h-18.262h-18.262v46.436 v46.436c0,9.082,1.314,17.074,3.942,23.975c2.629,6.901,6.572,12.712,11.829,17.432c5.256,4.721,11.641,8.26,19.152,10.62 c7.512,2.36,16.15,3.54,25.916,3.54c10.059,0,18.884-1.2,26.477-3.601s13.953-6.002,19.08-10.804 c5.127-4.801,8.972-10.641,11.536-17.517s3.845-14.791,3.845-23.743V53.477V7.09H231.57H213.308z"/> <polygon fill="#29B354" points="405.349,7.09 394.827,7.09 384.304,7.09 376.272,25.034 368.24,42.979 360.208,60.923 352.175,78.867 344.119,60.923 336.062,42.979 328.005,25.034 319.949,7.09 309.426,7.09 298.904,7.09 288.381,7.09 277.859,7.09 277.859,43.442 277.859,79.795 277.859,116.147 277.859,152.5 286.453,152.5 295.046,152.5 303.64,152.5 312.234,152.5 312.234,128.403 312.234,104.307 312.234,80.21 312.234,56.113 318.85,71.665 325.466,87.217 332.083,102.769 338.699,118.32 344.924,118.32 351.15,118.32 357.375,118.32 363.601,118.32 370.217,102.769 376.833,87.217 383.45,71.665 390.066,56.113 390.066,80.21 390.066,104.307 390.066,128.403 390.066,152.5 399.148,152.5 408.23,152.5 417.312,152.5 418.496,152.5 418.496,122.125 418.496,91.75 418.496,61.375 418.496,31 416.294,31 411.372,31 406.449,31 411.35,25.022 416.251,19.045 421.152,13.067 426.054,7.09 415.872,7.09 	"/> <polygon fill="#29B354" points="557.841,7.09 557.841,79.795 557.841,152.5 607.012,152.5 656.182,152.5 656.182,138.633 656.182,124.766 625.176,124.766 594.169,124.766 594.169,106.406 594.169,88.047 622.734,88.047 651.298,88.047 651.298,74.18 651.298,60.313 622.734,60.313 594.169,60.313 594.169,47.568 594.169,34.824 625.176,34.824 656.182,34.824 656.182,20.957 656.182,7.09 607.012,7.09 	"/> <polygon fill="#29B354" points="808.379,7.09 787.334,7.09 771.27,42.979 755.205,78.867 739.092,42.979 722.979,7.09 701.934,7.09 680.889,7.09 680.889,79.795 680.889,152.5 698.076,152.5 715.264,152.5 715.264,104.307 715.264,56.113 728.496,87.217 741.729,118.32 754.18,118.32 766.631,118.32 779.8
723563,87.217 793.096,56.113 793.096,104.307 793.096,152.5 811.26,152.5 829.423,152.5 829.423,79.795 829.423,7.09 	"/> <path fill="#29B354" d="M537.184,41.26c-0.375-1.81-0.843-3.55-1.403-5.217c-0.562-1.667-1.216-3.263-1.966-4.783 c-0.746-1.52-1.57-2.965-2.475-4.335c-0.903-1.37-1.886-2.665-2.945-3.885c-1.056-1.215-2.19-2.355-3.403-3.419 c-1.213-1.063-2.502-2.051-3.867-2.961c-1.24-0.83-2.513-1.605-3.82-2.324s-2.65-1.381-4.03-1.986s-2.795-1.155-4.245-1.65 s-2.935-0.936-4.455-1.32c-1.524-0.38-3.119-0.712-4.786-0.999c-1.666-0.287-3.403-0.526-5.214-0.721 c-1.81-0.19-3.692-0.333-5.647-0.428c-1.955-0.095-3.982-0.143-6.082-0.143h-28.225h-28.225h-0.34l2.472,2.989l2.472,2.989 l2.472,2.989l2.472,2.989l2.472,2.989l2.472,2.989l2.472,2.989L445.829,31h-3.922h-5.922h-2.202v30.375V91.75v30.375V152.5h10.877 h18.265v-23.78v-23.78h9.57h9.57c1.3,0,2.569-0.024,3.809-0.077c1.238-0.052,2.445-0.132,3.621-0.242 c1.175-0.105,2.319-0.234,3.434-0.393c1.113-0.157,2.196-0.343,3.246-0.558c1.05-0.21,2.08-0.439,3.09-0.691 c1.01-0.251,2-0.523,2.971-0.818c0.975-0.295,1.93-0.607,2.864-0.94c0.935-0.332,1.85-0.685,2.745-1.06 c0.895-0.375,1.77-0.771,2.626-1.186c0.856-0.414,1.694-0.85,2.515-1.305c0.814-0.46,1.611-0.938,2.391-1.434 c0.778-0.497,1.539-1.012,2.278-1.546c0.74-0.54,1.466-1.09,2.175-1.651c0.711-0.561,1.406-1.133,2.086-1.719 c0.68-0.585,1.345-1.182,1.994-1.792c0.65-0.61,1.285-1.232,1.906-1.867c1.004-1.025,1.954-2.115,2.846-3.268 c0.891-1.153,1.724-2.368,2.493-3.643c0.775-1.28,1.49-2.623,2.146-4.027c0.654-1.405,1.25-2.873,1.785-4.403 c0.54-1.53,1.01-3.08,1.412-4.65s0.738-3.16,1.008-4.77s0.473-3.242,0.607-4.895c0.135-1.652,0.203-3.325,0.203-5.015 c0-2.1-0.096-4.128-0.284-6.083C537.841,44.952,537.559,43.07,537.184,41.26z M500.731,57.019 c-0.056,0.994-0.138,1.932-0.247,2.812c-0.11,0.875-0.248,1.695-0.413,2.458c-0.165,0.764-0.357,1.471-0.577,2.122 c-0.221,0.655-0.49,1.3-0.811,1.939c-0.32,0.639-0.689,1.271-1.11,1.901c-0.42,0.625-0.887,1.245-1.404,1.859 s-1.085,1.221-1.705,1.821c-0.295,0.295-0.62,0.583-0.976,0.862c-0.357,0.28-0.744,0.552-1.165,0.817 c-0.42,0.265-0.869,0.523-1.351,0.773s-0.994,0.492-1.539,0.727s-1.082,0.45-1.614,0.646c-0.53,0.196-1.056,0.374-1.575,0.534 c-0.516,0.16-1.025,0.3-1.528,0.42c-0.502,0.12-0.997,0.22-1.481,0.3c-0.57,0.1-1.166,0.188-1.784,0.265 c-0.619,0.078-1.261,0.145-1.927,0.205c-0.67,0.055-1.362,0.1-2.079,0.136c-0.716,0.036-1.456,0.064-2.221,0.084 c-0.765,0.015-1.542,0.027-2.333,0.039c-0.79,0.011-1.592,0.021-2.407,0.031c-0.81,0.01-1.635,0.015-2.474,0.018 s-1.691,0.002-2.556,0.002h-1.265h-1.265V56.015V34.24h2.585h2.585c1.35,0,2.63,0.007,3.84,0.021c1.21,0.014,2.35,0.034,3.42,0.059 c1.069,0.03,2.069,0.068,3,0.111c0.929,0.044,1.789,0.094,2.579,0.149s1.59,0.152,2.398,0.29s1.627,0.315,2.451,0.53 c0.825,0.215,1.66,0.47,2.506,0.765c0.845,0.295,1.7,0.63,2.565,1.005c0.68,0.275,1.337,0.61,1.971,1.002 c0.634,0.393,1.243,0.842,1.828,1.348c0.591,0.51,1.153,1.078,1.69,1.703s1.05,1.308,1.54,2.047c0.485,0.74,0.913,1.518,1.278,2.33 c0.366,0.813,0.672,1.66,0.911,2.54c0.245,0.885,0.431,1.805,0.555,2.76c0.124,0.955,0.187,1.945,0.187,2.97 C500.814,54.975,500.786,56.025,500.731,57.019z"/> </g> </svg>
7236            </div>
7237          </template>
7238        </Suspense>
7239      </Transition>
7240    </div>
7241    `
7242});
7243
7244/**
7245 * Components to go here
7246 */
7247fpApp.component('powered-by', poweredBy);
7248fpApp.component('jumpem-map-zoom-controls', zoomControls);
7249fpApp.component('jumpem-map-unit', jumpemMapUnit);
7250fpApp.component('jumpem-map-units', jumpemMapUnits);
7251fpApp.component('jumpem-map-sidebar', sidebar);
7252fpApp.component('jumpem-map', jumpemMap);
7253fpApp.component('maps', maps);
7254fpApp.component('filters-status', filterStatus);
7255fpApp.component('filters', filters);
7256fpApp.component('floorplans-modal', floorplansModal);
7257fpApp.component('area-modal', unitsModal);
7258fpApp.component('floorplans', floorplans);
7259fpApp.component('fp-app-core', fpAppCore);
7260
7261/**
7262 * Mount up
7263 */
7264fpApp.mount('#fp-app-root');
7265
7266  </script>
7266
7267  
7268  
7269  
7269<script>
7270    const hero = document.querySelector('.hero');
7271    if(hero) {
7272      gsap.registerPlugin(ScrollTrigger);
7273
7274      // Footer outro animation
7275      gsap.timeline({
7276          scrollTrigger: {
7277              trigger: '.footer-outro',
7278              start: 'top bottom-=250',
7279              end: 'top bottom-=250',
7280              toggleActions: "play pause pause reverse",
7281              scrub: 3
7282          },
7283      })
7284      .fromTo('.footer-outro__intro', {autoAlpha: 0, y: 50}, {autoAlpha: 1, y: 0, duration: .5, ease: 'cubic-bezier(0.25, 0.00, 0.35, 1.00)'}, 0)
7285      
7286      // Footer banner animation
7287      const footerOutroTimeline = gsap.timeline({
7288          scrollTrigger: {
7289              trigger: '.footer-outro',
7290              start: 'top bottom',
7291              scrub: 1.5,
7292          },
7293      })
7294      .fromTo('.footer-outro__banner', {scale: 1}, {scale: 1.2, ease: 'cubic-bezier(0.25, 0.00, 0.35, 1.00)'}, 0)
7295      const directionsCounters = { '=300px': 0, '-300px': 0, }
7296      for(let i = 0; i < 9; i++) {
7297        const randomStart = Math.random() * 0.25; // Random start time between 0 and 0.25 seconds
7298        const randomEase = `cubic-bezier(${Math.random()}, ${Math.random()}, ${Math.random()}, ${Math.random()})`; // Random ease
7299        // No more than 5 lines should move in the same direction
7300        let randomDirection = Math.random() < 0.5 ? '-300px' : '300px';
7301        if(directionsCounters[randomDirection] >= 5) {
7302          randomDirection = randomDirection === '-300px' ? '300px' : '-300px';
7303        }
7304        directionsCounters[randomDirection]++;
7305        footerOutroTimeline.fromTo(`.footer-tape-banner .tape-line:nth-of-type(${i + 1}) .tape-line-inner`, { x: randomDirection }, { x: '0%', duration: 1.5, ease: randomEase }, randomStart);
7306      }
7307      footerOutroTimeline.fromTo(`.primary-tape-line .tape-line-inner`, { x: '-300px' }, { x: '0', duration: 1, ease: 'power1.out' }, 0);
7308
7309
7310      // Footer animation
7311      gsap.timeline({
7312          scrollTrigger: {
7313              trigger: '.footer__container',
7314              start: 'top bottom-=250',
7315              end: 'top bottom-=250',
7316              toggleActions: "play pause pause reverse",
7317              scrub: 3
7318          },
7319      })
7320      .fromTo('.footer__logo, .footer__translate, .footer__sns', {autoAlpha: 0, y: 15}, {autoAlpha: 1, y: 0, duration: .5, ease: 'cubic-bezier(0.25, 0.00, 0.35, 1.00)'}, 0)
7321      .fromTo('.footer__contact, .footer__values, .footer__menu', {autoAlpha: 0, y: 15}, { delay: .2, autoAlpha: 1, y: 0, duration: .5, ease: 'cubic-bezier(0.25, 0.00, 0.35, 1.00)'}, 0)
7322      .fromTo('.footer__partnerships, .footer__certifications', {autoAlpha: 0, y: 15}, { delay: .3, autoAlpha: 1, y: 0, duration: .5, ease: 'cubic-bezier(0.25, 0.00, 0.35, 1.00)'}, 0)
7323      .fromTo('.footer__copyright', {autoAlpha: 0, y: 15}, { delay: .4, autoAlpha: 1, y: 0, duration: .5, ease: 'cubic-bezier(0.25, 0.00, 0.35, 1.00)'}, 0)
7324    
7325    }
7326  </script>
vendor: 1 bytes, line 7326
7326
7327<script type="module">
7328// Accordion
7329var accordionItems = document.querySelectorAll('.accordion-item');
7330// Loop through items
7331accordionItems.forEach(function(item) {
7332    // If item is open by default, set max height
7333    if(item.classList.contains('accordion-item--open')) {
7334        var collapse = item.querySelector('.accordion-item__content');
7335        collapse.style.maxHeight = collapse.scrollHeight + "px";
7336    }
7337    // Get button
7338    var btn = item.querySelector('.accordion-item__button');
7339    // Add click event listener
7340    btn.addEventListener('click', function() {
7341        // Get collapse element
7342        var collapse = item.querySelector('.accordion-item__content');
7343        if(item.classList.contains('accordion-item--open')) {
7344            // Remove open class
7345            collapse.style.maxHeight = 0;
7346            // Set aria
7347            btn.setAttribute('aria-expanded', 'false');
7348            // Remove open class
7349            item.classList.remove('accordion-item--open');
7350            // Add collapsing class
7351            item.classList.add('accordion-item--collapsing');
7352            setTimeout(function(){
7353                // Remove collapsing class
7354                item.classList.remove('accordion-item--collapsing');
7355                // If gsap is available, refresh scrolltriggers
7356                if (typeof gsap !== 'undefined') {
7357                    ScrollTrigger.refresh()
7358                }
7359            }, 400);
7360        } else {
7361            accordionCloseAll();
7362            item.classList.add('accordion-item--collapsing');
7363            // Set max height
7364            collapse.style.maxHeight = collapse.scrollHeight + "px";
7365            // Add open class
7366            item.classList.add('accordion-item--open');
7367            setTimeout(function(){
7368                // Remove collapsing class
7369                item.classList.remove('accordion-item--collapsing');
7370                // Set aria
7371                btn.setAttribute('aria-expanded', 'true');
7372                // If gsap is available, refresh scrolltriggers
7373                if (typeof gsap !== 'undefined') {
7374                    ScrollTrigger.refresh()
7375                }
7376            }, 400);
7377        }
7378    });
7379});
7380function accordionCloseAll() {
7381  const openItems = document.querySelectorAll('.accordion-item--open');
7382  openItems.forEach(item => {
7383    // If the accordion parent doesn't have the allow-multiple class, close all other items
7384    if (!item.closest('.accordion').classList.contains('allow-multiple')) {
7385      var collapse = item.querySelector('.accordion-item__content');
7386      var btn = item.querySelector('.accordion-item__button');
7387      // Remove open class
7388      collapse.style.maxHeight = 0;
7389      // Set aria
7390      btn.setAttribute('aria-expanded', 'false');
7391      // Remove open class
7392      item.classList.remove('accordion-item--open');
7393      // Add collapsing class
7394      item.classList.add('accordion-item--collapsing');
7395      setTimeout(function(){
7396          // Remove collapsing class
7397          item.classList.remove('accordion-item--collapsing');
7398          // If gsap is available, refresh scrolltriggers
7399          if (typeof gsap !== 'undefined') {
7400              ScrollTrigger.refresh()
7401          }
7402      }, 400);
7403    }
7404  });
7405}
7406</script>
7406
7407
7408
7409	
7409<script>
7410		// If gsap is defined, add an event to reset triggers on resize
7411		if (typeof gsap !== 'undefined') {
7412			window.addEventListener('resize', function() {
7413				ScrollTrigger.refresh();
7414			});
7415		}
7416    (async function () {
7417
7418  try {
7419
7420    /**
7421     * Logs a message to the console if logging is enabled  
7422     * @param {*} message 
7423     */
7424    class Logger {
7425
7426      static logging = false; // Set to true to enable logging
7427
7428      static log(message, ...args) {
7429        if (Logger.logging) {
7430          console.log('%c[Lead Source Tracking]', 'color: #29b354; font-weight: bold;', message, ...args);
7431        }
7432      }
7433
7434      static warn(message, ...args) {
7435        if (Logger.logging) {
7436          console.warn('[Lead Source Tracking]', message, ...args);
7437        }
7438      }
7439
7440    }
7441
7442    /**
7443     * Tracking parameters to look for in the URL
7444     */
7445    const trackingParams = [
7446      'switch_cls[id]'
7447    ];
7448
7449    /**
7450     * Observe these targets for dynamically added links
7451     */
7452    const mutationTargets = document.querySelectorAll(
7453      '.floor-plans-section-1, .fpe'
7454    );
7455
7456    /**
7457     * Tracked Referrers
7458     */
7459    const trackedReferrers = {
7460      // Google Search 
7461      'www.google.com': '63582'
7462    };
7463
7464    const siteTitle = 'The Rive San Diego';
7465    const siteSlug = sanitize(siteTitle);
7466    const applyLinkURL = 'https://the-rive.prospectportal.com/Apartments/module/application_authentication/\';
7467    const storageCookieName = siteSlug ? `switch_param_${siteSlug}` : 'switch_param';
7468
7469    // Initialize the switch_param variable
7470    let switchParam = null;
7471
7472    // Check for an existing switch_param cookie
7473    const existingParam = document.cookie.split('; ').find(row => row.startsWith(storageCookieName + '='))?.split('=')[1] ?? null;
7474
7475    // Check if the URL contains any of the tracking parameters
7476    const urlParams = new URLSearchParams(window.location.search);
7477
7478    // If the URL contains any of the tracking parameters, set the switch_param variable
7479    let urlParam = null;
7480    trackingParams.forEach(param => {
7481      if (urlParams.has(param)) {
7482        urlParam = urlParams.get(param);
7483      }
7484    });
7485
7486    let referrer = null;
7487    if(document.referrer) {
7488      referrer = new URL(document.referrer);
7489    }
7490
7491    // If the cookie has a switch_param, use that
7492    if (existingParam) {
7493      switchParam = existingParam;
7494      Logger.log('Switch parameter found in cookie:', switchParam);
7495    }
7496    // If no cookie is found, use the URL parameter if available
7497    else if (urlParam) {
7498      switchParam = urlParam;
7499      Logger.log('Switch parameter found in URL:', urlParam);
7500    }
7501    else if (document.referrer && referrer && trackedReferrers[referrer && referrer.hostname]) {
7502      switchParam = trackedReferrers[referrer.hostname];
7503      Logger.log('Switch parameter found in referrer:', switchParam);
7504    }
7505    // If no switch_param found in URL, cookie, or referrer, exit
7506    else {
7507      Logger.log('No switch parameter found in URL, cookie, or referrer. Exiting lead source tracking.');
7508      return;
7509    }
7510
7511    // Set the cookie with the switch_param value
7512    // If it's an existing parameter, we'll not overwrite it so it can expire
7513    if(!existingParam || switchParam !== existingParam) {
7514      document.cookie = `${storageCookieName}=${switchParam}; max-age=7776000; path=/`; // 90 days
7515    }
7516
7517    // Replace the apply link with the updated URL
7518    replaceApplyLinks();
7519
7520    // Replace the lead source in any forms on the page
7521    replaceFormLeadSource();
7522
7523    /**
7524     * Replaces the apply links on the page with the updated URL
7525     * @returns {void}
7526     */
7527    function replaceApplyLinks() {
7528      if (!applyLinkURL) {
7529        Logger.warn('No apply link URL provided.');
7530        return;
7531      }
7532      // Replace the apply link with the updated URL
7533      const applyLinks = document.querySelectorAll('a[href^="' + applyLinkURL + '"]');
7534      if (applyLinks?.length === 0) {
7535        Logger.warn('No apply links found to update.');
7536        return;
7537      }
7538      applyLinks.forEach(link => {
7539        const href = link.href;
7540        const url = new URL(link.href);
7541        url.searchParams.set('switch_cls[id]', switchParam);
7542        link.href = url.toString();
7543        Logger.log('Updated apply link', link, 'from:', href, 'to:', link.href);
7544      });
7545
7546      // If we have targets, start observing them for changes
7547      if (mutationTargets && mutationTargets.length > 0) {
7548        // Define the observer to watch for dynamically added links
7549        const observer = new MutationObserver((mutations) => {
7550          mutations.forEach((mutation) => {
7551            if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {
7552              mutation.addedNodes.forEach((node) => {
7553                if (node.nodeType === Node.ELEMENT_NODE) {
7554                  const dynamicApplyLinks = node.querySelectorAll('a[href^="' + applyLinkURL + '"]');
7555                  if(dynamicApplyLinks?.length > 0) {
7556                    dynamicApplyLinks.forEach((dynamicLink) => {
7557                      const href = dynamicLink.href;
7558                      const url = new URL(dynamicLink.href);    
7559                      url.searchParams.set('switch_cls[id]', switchParam);
7560                      dynamicLink.href = url.toString();
7561                      Logger.log('Updated dynamically added apply link', dynamicLink, 'from:', href, 'to:', dynamicLink.href);
7562                    });
7563                  }
7564                }
7565              });
7566            }
7567          });
7568        });
7569        // Start observing the targets for changes
7570        mutationTargets.forEach(target => {
7571          observer.observe(target, {
7572            childList: true,
7573            subtree: true
7574          });
7575        });
7576        Logger.log('Observing mutation targets:', mutationTargets);
7577      }
7578      else {
7579        Logger.warn('No mutation targets found to observe.');
7580      }
7581
7582    }
7583
7584    /**
7585     * Replaces the lead source in any forms on the page
7586     * @returns {void}
7587     */
7588    function replaceFormLeadSource() {
7589
7590      const leadSourceID = switchParam.toString();
7591
7592      const leadSourceSelect = document.getElementById('lead_source_id');
7593      if (!leadSourceSelect) {
7594        Logger.warn('No lead source select element found on the page.');
7595        return;
7596      }
7597
7598      // Get the closest form group parent and hide it
7599      const formGroup = leadSourceSelect.closest('.form__group');
7600      if (formGroup) {
7601        formGroup.style.display = 'none';
7602        Logger.log('Hid form group for lead source select element.');
7603      }
7604
7605      // Remove the select field and replace it with a hidden field with the same name, id
7606      const hiddenInput = document.createElement('input');
7607      hiddenInput.type = 'hidden';
7608      hiddenInput.name = leadSourceSelect.name;
7609      hiddenInput.id = leadSourceSelect.id;
7610      hiddenInput.value = leadSourceID;
7611      leadSourceSelect.parentNode.insertBefore(hiddenInput, leadSourceSelect);
7612      leadSourceSelect.remove();
7613      Logger.log('Replaced lead source select element with hidden input field.');
7614
7615    }
7616
7617    /**
7618     * Convert a title or url to a sanitized string to append to the cookie name
7619     * This will remove any characters that are not alphanumeric or underscore
7620     * @param {string} string - The string to sanitize
7621     * @returns {string} - The sanitized string
7622     */
7623    function sanitize(string) {
7624      if (!string) return '';
7625      return string.replace(/[^a-zA-Z0-9_]/g, '').toLowerCase();
7626    }
7627
7628  } catch (error) {
7629    console.error(error);
7630  }
7631
7632})();	</script>
7632
7633
7634		
7635<script type="application/ld+json">
7636{
7637    "@context": "https://schema.org",
7638     
7639    "@type": ["ApartmentComplex", "LocalBusiness"],
7640        "logo": "https://www.therivesandiego.com/wp-content/uploads/2026/07/TheRive_SanDiego_logo.svg",
7641    "image": [
7642        "https://www.therivesandiego.com/wp-content/uploads/2026/07/TheRive_SanDiego_logo.svg"
7643    ],
7644    "name": "The Rive San Diego",
7645    "description": "",
7646            "address": {
7647        "@type": "PostalAddress",
7648        "streetAddress": "6345 El Cajon Blvd",
7649        "addressLocality": "San Diego",
7650        "addressRegion": "CA",
7651        "postalCode": "92115",
7652        "addressCountry": "US"
7653    },
7654        "geo": {
7655        "@type": "GeoCoordinates",
7656        "latitude": "32.7640387",
7657        "longitude": "-117.0644412"
7658    },
7659    "url": "https://www.therivesandiego.com",
7660    "telephone": "",
7661    "openingHoursSpecification": [            {
7662                "@type": "OpeningHoursSpecification",
7663                "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
7664                "opens": "10:00",
7665                "closes": "18:00"
7666            }
7667            ,            {
7668                "@type": "OpeningHoursSpecification",
7669                "dayOfWeek": ["Saturday"],
7670                "opens": "13:00",
7671                "closes": "17:00"
7672            }
7673            ,            {
7674                "@type": "OpeningHoursSpecification",
7675                "dayOfWeek": ["Sunday"],
7676                "opens": "00:00",
7677                "closes": "00:00"
7678            }
7679            ]
7680}
7681</script>
7681
7682
7683
7684				
7684<script src="https://widget.rentgrata.com/rentgrata.js"></script>
vendor: 2 bytes, line 7684
7684
7685<script> rentgrata.Widget.render({ widget_key: '61e2cb75-257a-46c1-8651-6899a8898b96' }); </script>
7685
7686
7687<script type="module">
7688
7689    import MEChat from 'https://cdn.skypack.dev/@meetelise/chat';
7690
7691    MEChat.start({
7692
7693      organization: "801dcf07-7dc2-4f38-a2a7-e82242375c41"
7694
7695    });
7696
7697  </script>
7697
7698	
7699		
7699<script>
7700		var widgetRoot = document.querySelector('#accessibilityWidget');
7701		if (widgetRoot) {
7702			widgetRoot.addEventListener('click', () => {
7703				if (typeof UserWay !== 'undefined') {
7704					UserWay.widgetToggle();
7705				} else {
7706					widgetRoot.classList.add('loading');
7707					var script = document.createElement('script');
7708					script.src = 'https://cdn.userway.org/widget.js';
7709					script.setAttribute("data-account", "Vzf4LsM1bL");
7710					script.setAttribute("src", "https://cdn.userway.org/widget.js");
7711					script.async = true;
7712					script.onload = () => {
7713						document.addEventListener('userway:init_completed', function (event) {
7714							UserWay.iconVisibilityOff()
7715							UserWay.widgetOpen()
7716							document.addEventListener('userway:render_completed', function (event) {
7717								widgetRoot.classList.remove('loading');
7718								widgetRoot.classList.add('loaded');
7719							})
7720						})
7721					};
7722					document.body.appendChild(script);
7723				}
7724			});
7725		}
7726    </script>
7726
7727    <noscript>Please ensure Javascript is enabled for purposes of <a href="https://userway.org">website accessibility</a></noscript>
7728
7729</body>
7730
7731</html>
7732<!--
7733Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin
7734
7735
7736Served from: www.therivesandiego.com @ 2026-10-06 13:03:03 by W3 Total Cache
7737-->

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.