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 & Dryer In Each Apartment</li> 3698<li aria-level="1">Private Balconies & 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>© 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 & Internet Marketing"> 5279 <img class="img-fluid " :src="store.baseURI + '/assets/images/jumpem.svg'" width="55" height="13" alt="Jumpem Web Design & 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.