1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 2<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> 3<head id="head"> 4 <!-- OneTrust consent script must load before GTM and any tracking/analytics tag (TFS 2965948). --> 5 <!-- OneTrust Cookies Consent Notice start for boardwalkresearch.com -->
6<script type="text/javascript" src="https://cdn.cookielaw.org/consent/fa3f1558-1398-4a4d-baac-62227a6de47a/OtAutoBlock.js"></script>
vendor: 1 bytes, line 6
6
7<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" data-document-language="true" type="text/javascript" charset="UTF-8" data-domain-script="fa3f1558-1398-4a4d-baac-62227a6de47a"></script>
vendor: 1 bytes, line 7
7
8<script type="text/javascript"> 9function OptanonWrapper() { } 10</script>
10 11<!-- OneTrust Cookies Consent Notice end for boardwalkresearch.com --><meta name="viewport" content="width=device-width, initial-scale=1" /><title> 12 Browse Luxury Apartments in San Antonio | Boardwalk Research 13</title><meta name="description" content="Our luxury apartments in San Antonio at Boardwalk Research offer exceptional pet-friendly amenities, like a resort-style pool, fitness center, and bark park." /> 14<meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 15<meta http-equiv="pragma" content="no-cache" /> 16<meta http-equiv="content-style-type" content="text/css" /> 17<meta http-equiv="content-script-type" content="text/javascript" /> 18<meta name="keywords" content="TX Apartment Amenities, Amenities for apartments in San Antonio, TX, Boardwalk Research Luxury Apartments Apartment amenities TX" /> 19<link href="/CMSPages/GetResource.ashx?stylesheetname=RPcssMaster_C0051-GS-Balcony" type="text/css" rel="stylesheet" /> 20<!-- MasterPageIncludes --><link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/themes/ui-lightness/jquery-ui.css" type="text/css" rel="preload" as="style" onload="this.rel='stylesheet'" integrity="sha256-YUNa6t/JONQ+iBynZFpRTKfiPdqfpMKCPOQEFmtF70Q=" crossorigin="anonymous"></link>
20<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js" type="text/javascript" integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous" data-ot-ignore="data-ot-ignore"></script>
20<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js" type="text/javascript" integrity="sha256-VazP97ZCwtekAsvgPBSUwPFKdrwD3unUfSGVYrahUqU=" crossorigin="anonymous" data-ot-ignore="data-ot-ignore"></script>
20<script src="https://cs-cdn.realpage.com/CWS/2671865/CMSScripts/Custom/RPWebParts/global.min.js" type="text/javascript" integrity="" crossorigin="anonymous"></script>
20<script src="https://cs-cdn.realpage.com/CWS/2671865/Accessibe/Accessibe.js" type="text/javascript" integrity="" crossorigin="anonymous"></script>
20<!-- /MasterPageIncludes --><meta name="viewport" content="width=device-width,initial-scale=1" /> 21<meta name="geo.position" content="29.542154;-98.585745" /> 22<meta name="geo.placename" content="San Antonio" /> 23<meta name="geo.region" content="US-TX" /> 24<meta name="ICBM" content="29.542154, -98.585745" /> 25 26<link type="text/css" href="/TemplateResources/Global/Icons/font-awesome.min.css" rel="preload" as="style" onload="this.rel='stylesheet'" /> 27<link type="text/css" href="/TemplateResources/Global/Icons/fontello.css" rel="preload" as="style" onload="this.rel='stylesheet'" /> 28<link type="text/css" href="/GlobalResources/Bootstrap/css/bootstrap.min.css" rel="preload" as="style" onload="this.rel='stylesheet'" /> 29<link type="text/css" href="https://fonts.googleapis.com/css?family=Open+Sans:400,700|Lato:600|Unica+One" rel="preload" as="style" onload="this.rel='stylesheet'" /> 30
31<script src="/GlobalResources/Bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
31 32<!--
32<script src="/templateresources/greystar/balcony/js/custom.js" type="text/javascript"></script>
32 --> 33 34<!-- RPTheme --> 35<style> 36.gridlines { display: none; } 37</style> 38<style> 39/* ============================================================================ 40 * Greystar WCAG ââ¬â Contrast-Safe Theme :: STATIC LAYER (generic base) 41 * ---------------------------------------------------------------------------- 42 * Pairs with contrast-safe.base.js (the auto-contrast engine ââ¬â element-agnostic, 43 * do NOT edit per template). Everything ABOVE the "PER-TEMPLATE TUNING" divider 44 * is generic and applies to every GS-22 template unchanged. Add template-specific 45 * selectors ONLY below the divider, per template, and only if a Silktide check on 46 * that template flags something the generic rules + engine didn't catch. Most 47 * templates need NOTHING below the divider. 48 * ========================================================================== */ 49 50/* --- Scrim behind text over photos/gradients (the JS adds .cs-scrim at runtime) --- */ 51.cs-scrim { position: relative; isolation: isolate; } 52.cs-scrim::before { 53 content: ""; position: absolute; inset: -0.25em -0.6em; z-index: -1; 54 background: radial-gradient(ellipse at center, 55 rgba(0,0,0,0.72) 0%, rgba(0,0,0,0.66) 55%, rgba(0,0,0,0) 100%); 56 border-radius: 6px; pointer-events: none; 57} 58.cs-scrim .cs-scrim::before { display: none; } /* never nest scrims */ 59 60/* --- Visible focus indicator (WCAG 2.4.7) ââ¬â generic, all interactive elements --- */ 61a:focus-visible, button:focus-visible, input:focus-visible, 62select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { 63 outline: 2px solid #1a1a1a !important; 64 outline-offset: 1px; 65} 66 67/* ============================================================================ 68 * PER-TEMPLATE TUNING ââ¬â edit per template, only when Silktide flags something 69 * the engine + generic rules above didn't clear. Most templates need NOTHING here. 70 * Do NOT change brand color values; do NOT hardcode form-control border colors 71 * (the engine sets those context-aware ââ¬â a fixed #595959 breaks dark panels). 72 * ---------------------------------------------------------------------------- 73 * Example 1 ââ¬â pre-paint scrim on a hero/banner caption block (removes a brief 74 * flash before the JS runs). Point at THIS template's caption container: 75 * 76 * .background-gallery .bg-caption-container, 77 * .hero-caption { 78 * background: linear-gradient(rgba(0,0,0,0.55), rgba(0,0,0,0.55)); 79 * padding: 0.4em 0.6em; border-radius: 3px; 80 * } 81 * 82 * Example 2 ââ¬â body-copy links distinguished by color only (add non-color cue): 83 * 84 * .content a, .main-content a { text-decoration: underline; } 85 * 86 * Example 3 ââ¬â a control/widget the engine's input/select/textarea sweep misses 87 * (e.g. a custom div-based control) ââ¬â give it a measured border in JS-land, or 88 * add a template-scoped rule here as a last resort. 89 * ========================================================================== */ 90 91/* TFS 3060525 (WCAG 2.4.13 AAA, PME-507688 follow-up) -- the ContactUsFloating 92 widget's own inline focus ring (CMS/RPWebParts/ContactUs/ContactUsFloating.ascx) 93 still paints the old low-contrast blue+white ring on its mobile contact form 94 (.contact-mobile-form), independent of this theme. Override it with the same 95 white+black double ring already shipped fleet-wide for this rework (PR #438603 96 footer links, PR #437588 Floor Plans V4; see also the generic focus-visible 97 rule above). NOTE: as of 2026-09-03 this rule has no rendering effect -- see 98 the file header's KNOWN LIMITATION section. The functional fix already 99 shipped as code: branch feature/3060525-pme-507688-contactusfloating-focus-contrast. */ 100.contact-mobile-form input:focus-visible, 101.contact-mobile-form select:focus-visible, 102.contact-mobile-form textarea:focus-visible, 103.contact-mobile-form button:focus-visible, 104.contact-mobile-form input:focus, 105.contact-mobile-form select:focus, 106.contact-mobile-form textarea:focus, 107.contact-mobile-form button:focus { 108 outline-offset: 2px; 109 box-shadow: 0 0 0 2px #fff, 0 0 0 4px #000 !important; 110} 111 112 113 114/* ========================================================================== 115 * PER-TEMPLATE NOTE ââ¬â C0051-GS-Balcony (ticket #2979407) 116 * Authoritative Silktide AA-contrast residual WITH the generic theme (across core pages): 117 * text-over-image (1.4.3): 2 plain-text (1.4.3): 1 non-text (1.4.11): 0 [total 3] 118 * Fix direction: detector found no DOM text-over-image (Silktide may still flag lazy/carousel cases) ââ¬â confirm in-browser. 119 * 120 * SAT test site (validate here): https://balcony012523.sat-ws.realpage.com/?preview=1 121 * HOW TO CLOSE THE RESIDUAL (dev): 122 * 1. Open the SAT test site in Silktide's inspector; open the 1.4.3 / 1.4.11 checks to see the 123 * EXACT failing elements (the auto-detector can't hand these over reliably ââ¬â carousel/lazy 124 * images and dark-text-on-banner are invisible to a DOM luminance scan). 125 * 2. For LIGHT text on a photo: add class .cs-scrim (below) to that template's caption/hero 126 * container, OR replicate its ::before on the specific selector. 127 * 3. For DARK text on a banner image: a dark scrim makes it WORSE ââ¬â give the caption a light 128 * panel background or recolor the text (no brand-hex change). 129 * 4. Re-scan in Silktide; done = 1.4.3 / 1.4.11 pass on this template. 130 * Do NOT hardcode form-control borders (the engine handles those context-aware). 131 * ========================================================================== */ 132</style> 133
134<script type="text/javascript"> 135 136/* ============================================================================ 137 * Greystar WCAG - Contrast-Safe Theme (auto-contrast engine) - PROTOTYPE 138 * ---------------------------------------------------------------------------- 139 * Fixes WCAG 1.4.3 (text contrast) and 1.4.11 (UI/non-text contrast) at RENDER 140 * time by RE-PLACING which color sits where - it does NOT change brand hex values. 141 * 142 * Why JS: the RPcssMaster CSS bakes each site's brand colors into fixed selectors 143 * via server macros (no CSS variables), and the brand palette differs per site. 144 * Only runtime can read an element's *computed* foreground/background, measure the 145 * real contrast ratio, and pick a compliant text color (from the existing black/ 146 * white/neutral tokens) when it fails. This is element-agnostic - it does not rely 147 * on knowing selectors, so it survives any per-site color scheme. 148 * 149 * Loaded as the JsFile of an lsTheme row (group "Accessibility"), enabled per-site 150 * via lsCmsSiteToTheme (PreviewThemeId to preview, PublishThemeId to publish). 151 * 152 * SCOPE: prototype for the Aurora default scheme + real Greystar schemes. Validate 153 * on a Silktide re-scan (confirm the scanner executes this) before fleet rollout. 154 * ========================================================================== */ 155(function () { 156 "use strict"; 157 158 var TEXT_MIN = 4.5; // 1.4.3 normal text 159 var LARGE_MIN = 3.0; // 1.4.3 large text (>=24px, or >=18.66px bold) 160 var UI_MIN = 3.0; // 1.4.11 UI component / graphical boundary 161 var DARK = "#1a1a1a"; // near-black neutral (not pure #000, softer) 162 var LIGHT = "#ffffff"; 163 // v13: the solid backing the scrim now paints, so the scanner can actually see it. 164 // #2b2b2b against #ffffff text = 12.4:1, comfortably over the 4.5 AA threshold, and dark 165 // enough to read as the same soft panel the ::before produced. 166 var SCRIM_SOLID = "#2b2b2b"; 167 168 // ---- color helpers ------------------------------------------------------- 169 function parseRGB(s) { 170 if (!s) return null; 171 var m = s.match(/rgba?\(([^)]+)\)/i); 172 if (!m) return null; 173 var p = m[1].split(",").map(function (x) { return parseFloat(x.trim()); }); 174 return { r: p[0], g: p[1], b: p[2], a: p.length > 3 ? p[3] : 1 }; 175 } 176 function relLum(c) { 177 var f = function (v) { 178 v = v / 255; 179 return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4); 180 }; 181 return 0.2126 * f(c.r) + 0.7152 * f(c.g) + 0.0722 * f(c.b); 182 } 183 function ratio(a, b) { 184 var l1 = relLum(a), l2 = relLum(b); 185 var hi = Math.max(l1, l2), lo = Math.min(l1, l2); 186 return (hi + 0.05) / (lo + 0.05); 187 } 188 var W = { r: 255, g: 255, b: 255 }, K = { r: 26, g: 26, b: 26 }; 189 190 // Effective background: walk ancestors and prefer the nearest SOLID background 191 // color - even if some ancestor also has a background-image. This is the key fix 192 // for "black box on dark gray": text sitting on a solid dark panel is measured 193 // against that panel (and usually already passes -> no scrim), instead of being 194 // wrongly treated as over-image. Only flag overImage when NO solid bg exists 195 // anywhere up the chain (genuinely floating text on a photo). 196 function effectiveBg(el) { 197 var node = el, imgContainer = null; 198 while (node && node.nodeType === 1) { 199 var cs = getComputedStyle(node); 200 var bg = parseRGB(cs.backgroundColor); 201 if (bg && bg.a >= 0.5) return { bg: bg, overImage: false, node: node }; 202 if (!imgContainer && cs.backgroundImage && cs.backgroundImage !== "none" 203 && cs.backgroundImage.indexOf("gradient") === -1) { 204 imgContainer = node; // remember, but keep looking for a solid bg first 205 } 206 node = node.parentElement; 207 } 208 if (imgContainer) return { bg: null, overImage: true, node: imgContainer }; 209 return { bg: W, overImage: false, node: document.body }; // page default = white 210 } 211 212 function luminance(c) { return relLum(c); } 213 214 function isLargeText(cs) { 215 var size = parseFloat(cs.fontSize) || 16; 216 var bold = (parseInt(cs.fontWeight, 10) || 400) >= 700; 217 return size >= 24 || (bold && size >= 18.66); 218 } 219 220 // Pick a text color that actually MEETS the required ratio for this background. 221 // 2026-07-27: the old version returned whichever of near-black/white scored higher, 222 // even when neither passed - so e.g. #1a1a1a on the brand taupe #8c7d75 scored 4.34 223 // and was left failing (needs 4.5). Pure black on that same background scores 5.31. 224 // Ladder: near-black -> pure black -> white -> pure white, first that meets `need`; 225 // if none do, fall back to the best available and report it so the caller can decide. 226 var BLACK = { r: 0, g: 0, b: 0 }; 227 function bestTextFor(bg, need) { 228 var cands = [[K, DARK], [BLACK, "#000000"], [W, LIGHT]]; 229 var best = null, bestR = -1; 230 for (var i = 0; i < cands.length; i++) { 231 var r = ratio(cands[i][0], bg); 232 if (r >= need) return { css: cands[i][1], ratio: r, ok: true }; 233 if (r > bestR) { bestR = r; best = cands[i][1]; } 234 } 235 return { css: best, ratio: bestR, ok: false }; 236 } 237 function safeTextFor(bg) { 238 return ratio(K, bg) >= ratio(W, bg) ? DARK : LIGHT; 239 } 240 241 // 2026-07-28 (v13, BUG 2): CENTER was absent, so hero captions in the older Kentico 242 // templates were never evaluated at all - no data-cs-sig, untouched. On 243 // broadstoneon9th.com that was 5 of 31 failures on the home page alone 244 // ("Relax. Laugh. Enjoy", "Thoughtful Amenities", "Around Town", "photo tour", "Special!"). 245 // Added the other legacy/inline text tags these templates use at the same time. 246 var TEXT_TAGS = /^(P|SPAN|A|LI|H1|H2|H3|H4|H5|H6|LABEL|BUTTON|TD|TH|DT|DD|FIGCAPTION|SMALL|STRONG|EM|B|I|DIV|BLOCKQUOTE|CITE|SUMMARY|LEGEND|CENT
246ER|FONT|ADDRESS|CAPTION|TIME|MARK|ABBR|OUTPUT|U|S|SUB|SUP|Q|PRE|CODE|DL|OL|UL|NAV|HEADER|FOOTER|ASIDE|SECTION|ARTICLE|MAIN)$/; 247 248 // Nearest block-level ancestor that groups the text (caption/heading block), so a 249 // single scrim covers the whole caption instead of one box per line. Stops short 250 // of the page body / huge sections. 251 function nearestBlock(el) { 252 var node = el; 253 while (node && node.parentElement && node.parentElement !== document.body) { 254 var cs = getComputedStyle(node); 255 var r = node.getBoundingClientRect(); 256 if ((cs.display === "block" || cs.display === "flex" || cs.display === "inline-block") 257 && r.height > 0 && r.height < window.innerHeight * 0.8) { 258 return node; 259 } 260 node = node.parentElement; 261 } 262 return el; 263 } 264 265 // Apply the scrim without disturbing layout. The ::before needs a containing block, but an 266 // element that is already positioned (relative/absolute/fixed/sticky) IS one - and overriding 267 // that positioning is what broke Tableau (see the v12 note in the CSS). So only promote a 268 // genuinely static element, and do it inline rather than from the class. 269 // 2026-07-28 (v13, BUG 1): the scrim earned NO CREDIT from Silktide. It painted its backdrop 270 // with a ::before, and Silktide computes contrast exactly the way effectiveBg() does - it 271 // walks ancestor `background-color` and ignores pseudo-elements. Its own payload proves it: 272 // colorContrast.backgrounds = [{"background-color":"rgb(255,255,255)"}] 273 // So every element the over-image branch and the v9 light-on-light guard "fixed" still 274 // reported a violation: fg == bg == white at ratio 1.00, or brand-colour-on-white at 1.45. 275 // Instance-weighted this was the DOMINANT residual (liveatriverterrace.com 171 of 172 276 // instances; hammockparknaples.com 97 of 97; sparroliving.com 213 of 257). 277 // We fixed our own blind spot with a technique that lands in the scanner's identical one. 278 // 279 // So paint a REAL background-color on the element as well. Solid, not rgba() - it is not 280 // known whether Silktide composites alpha, and guessing wrong reproduces the same failure. 281 // The ::before is kept: it still carries the soft inset/rounding so the visual result is 282 // unchanged on layouts where it was already acceptable. 283 function applyScrim(node) { 284 // v13.1 hard guard: never scrim something with no rendered box. This is the v11 Tableau 285 // regression (position:relative on a hidden off-canvas nav = +486px on every page). 286 var _cs = getComputedStyle(node), _r = node.getBoundingClientRect(); 287 if (_cs.display === "none" || _cs.visibility === "hidden" || _r.width === 0 || _r.height === 0) return; 288 node.classList.add("cs-scrim"); 289 if (getComputedStyle(node).position === "static") { 290 node.style.setProperty("position", "relative"); 291 } 292 // Only paint if the node has no solid background of its own to preserve. 293 var _b = parseRGB(getComputedStyle(node).backgroundColor); 294 if (!_b || _b.a < 0.5) { 295 node.style.setProperty("background-color", SCRIM_SOLID, "important"); 296 node.setAttribute("data-cs-scrimbg", "1"); 297 } 298 } 299 300 function hasDirectText(el) { 301 for (var i = 0; i < el.childNodes.length; i++) { 302 var n = el.childNodes[i]; 303 if (n.nodeType === 3 && n.nodeValue.trim().length) return true; 304 } 305 return false; 306 } 307 308 function fixTextElement(el) { 309 // 2026-07-27: form controls carry their label in `value`, and INPUT/SELECT/TEXTAREA 310 // were absent from TEXT_TAGS, so they were never processed. 311 var isControl = /^(INPUT|SELECT|TEXTAREA)$/.test(el.tagName); 312 if (!isControl && !TEXT_TAGS.test(el.tagName)) return; 313 if (isControl) { 314 var ct = (el.getAttribute("type") || "text").toLowerCase(); 315 if (ct === "hidden" || ct === "image" || ct === "checkbox" || ct === "radio" || ct === "file") return; 316 } else if (!hasDirectText(el)) return; // only elements holding actual text 317 318 // 2026-07-27: the old permanent `data-cs-done="1"` flag meant an element evaluated 319 // BEFORE a widget restyled it was never re-checked. Real case: a floorplan date 320 // button judged passing on its initial background, later restyled to brand teal, 321 // left at white-on-#7fb9b5 = 2.21. Store the (fg|bg) signature we validated instead, 322 // and re-evaluate whenever it changes. 323 var _cs0 = getComputedStyle(el); 324 var sig = _cs0.color + "|" + _cs0.backgroundColor; 325 if (el.getAttribute("data-cs-sig") === sig) return; 326 327 var cs = getComputedStyle(el); 328 329 // 2026-07-29 (v13.1): do NOT bail on un-rendered text any more - fix its COLOUR, just never 330 // give it a scrim. Silktide evaluates hidden content and counts it as failing, and it is right 331 // to: on sparroliving.com the fee-calculator panel DIV.details is display:none and holds white 332 // text on rgb(247,249,248), so the moment a resident expands it the text is unreadable. That 333 // panel was 13 of the 18 residual failures after v13 shipped to the canary. 334 // The v11 Tableau regression was caused by the SCRIM (applyScrim promotes position:static to 335 // relative, which dropped a hidden off-canvas nav back into flow and grew every page by 486px) 336 // - NOT by recolouring. Colour and background-color are layout-neutral, position is not. 337 // So: un-rendered => colour-only path, and every applyScrim() call site is guarded below. 338 var unrendered = (cs.visibility === "hidden" || cs.display === "none"); 339 340 // 2026-07-27 (v11): visibility/display are not the only ways an element is un-rendered. A 341 // collapsed off-canvas menu has visibility:visible and display:block but a ZERO-SIZE box, and 342 // scrimming it is actively harmful: .cs-scrim sets position:relative, which re-anchors the
343 // hidden nav into normal flow. Measured on Tableau (chancerysquare.com): #nav-wrapper and 344 // ul#menuElem got scrimmed, .off-canvas-content went 0 -> 486px and every page grew by exactly 345 // 486px (711->1197, 821->1307, 1090->1575). Nothing with no rendered box needs a contrast fix 346 // anyway - if it becomes visible later, the re-sweeps and the MutationObserver pick it up then. 347 var _r = el.getBoundingClientRect(); 348 if (_r.width === 0 || _r.height === 0) unrendered = true; // v13.1: colour-only, see above 349 350 var fg = parseRGB(cs.color); 351 if (!fg) return; 352 var ctx = effectiveBg(el); 353 354 // v13.1: over-image needs a scrim to be fixable, and a scrim is layout-affecting, so 355 // un-rendered text takes the colour-only path below instead of being scrimmed here. 356 if (ctx.overImage && !unrendered) { 357 // Text genuinely floating on a photo (no solid bg anywhere up the chain). 358 // Only intervene for LIGHT text (which needs a dark backing); dark text over 359 // imagery is a different/rarer case we don't guess at. Scrim ONCE at the 360 // nearest caption container and skip if an ancestor is already scrimmed - so 361 // it reads as one soft caption panel, never stacked or redundant boxes. 362 // 2026-07-27: previously bailed here ("dark text over imagery: leave it"), which 363 // left e.g. #1f1f26 on an effective #6b6b6b at 3.07 (white scores 5.34). Only bail 364 // if the dark text already passes against a dark backing; otherwise fix it below. 365 if (luminance(fg) < 0.5 && ratio(fg, K) >= (isLargeText(cs) ? LARGE_MIN : TEXT_MIN)) { 366 signIfPassing(el); return; 367 } 368 if (!el.closest(".cs-scrim")) { 369 // nearestBlock() falls back to `el` itself when no sized ancestor qualifies, so re-check 370 // that whatever we are about to scrim actually has a box (see the v11 note above). 371 var _nb = nearestBlock(el), _nbr = _nb.getBoundingClientRect(); 372 if (_nbr.width > 0 && _nbr.height > 0) applyScrim(_nb); 373 } 374 el.style.setProperty("color", LIGHT, "important"); 375 signIfPassing(el); 376 return; 377 } 378 379 // 2026-07-27 (v9): effectiveBg() walks ANCESTORS only, so it cannot see a backdrop painted 380 // by a ::before/::after or an absolutely-positioned sibling image. On those layouts the walk 381 // falls through to the page default (white, ctx.node === document.body) and the code below 382 // would flip legible LIGHT text to near-black - which then sits on a photograph. 383 // Real case (Teracy .cta-content spans, callenapartments.com /Amenities.aspx + /floor-plans.aspx): 384 // white 21px/weight-100 text that axe scored 0 violations BEFORE and 3.65 AFTER we darkened it. 385 // A designer does not put light text on a light background, so light-on-light with no solid bg 386 // found anywhere means the WALK is wrong, not the page. Treat it as over-image: scrim the caption 387 // block and keep the light text. This is also the right outcome in the other reading - if the 388 // text really were white-on-white and invisible, the scrim makes it legible. 389 if (luminance(fg) > 0.5 && relLum(ctx.bg) > 0.5 && ctx.node === document.body && !unrendered) { 390 if (!el.closest(".cs-scrim")) { 391 // nearestBlock() falls back to `el` itself when no sized ancestor qualifies, so re-check 392 // that whatever we are about to scrim actually has a box (see the v11 note above). 393 var _nb = nearestBlock(el), _nbr = _nb.getBoundingClientRect(); 394 if (_nbr.width > 0 && _nbr.height > 0) applyScrim(_nb); 395 } 396 el.style.setProperty("color", LIGHT, "important"); 397 signIfPassing(el); 398 return; 399 } 400 401 // 2026-07-29 (v13.1a): un-rendered text is only safe to recolour when we have a REAL measured 402 // background to decide against. Two reasons, both found by shipping v13.1 to a canary: 403 // (a) It made River Terrace WORSE - a collapsed date picker went from untouched to white on 404 // rgb(176,176,176) at 2.17. For hidden elements the ancestor walk is less reliable (the 405 // picker's real backdrop is not in its computed chain while collapsed), so the engine 406 // chose against the page default and got it wrong. Dark would have passed at 7.8. 407 // (b) If ctx.overImage is true, ctx.bg is NULL - and with the over-image branch now skipped 408 // for un-rendered elements, ratio(fg, null) would throw. run()'s try/catch swallowed it, 409 // so it failed silently rather than visibly. My bug, introduced with the v13.1 guard. 410 // So: no trustworthy background => leave it exactly as it was. This keeps the fee-calculator
411 // fix (a real panel background of rgb(247,249,248) IS found) and drops the date-picker case. 412 // TESTED AND NARROWED (2026-07-29): the first version of this guard also bailed when 413 // ctx.node === document.body, and that BROKE the fee-calculator fix - those two elements went 414 // straight back to white/unsigned, because their panel background is NOT in the computed 415 // ancestor chain while collapsed, so the walk legitimately falls through to the page default. 416 // Bailing there costs a real resident-facing fix to avoid one 1-instance date-picker failure 417 // that may just be crawl variance. So the guard is now ONLY the crash case. 418 if (unrendered && (ctx.overImage || !ctx.bg)) return; 419 420 var need = isLargeText(cs) ? LARGE_MIN : TEXT_MIN; 421 if (ratio(fg, ctx.bg) >= need) { el.setAttribute("data-cs-sig", getComputedStyle(el).color + "|" + getComputedStyle(el).backgroundColor); return; } 422 423 // Failing: re-place the TEXT color with one that MEETS `need` for this background. 424 var pick = bestTextFor(ctx.bg, need); 425 el.style.setProperty("color", pick.css, "important"); 426 // If no text color can pass on this background (mid-tone brand panels), give the 427 // element its own compliant backing so the pair passes, rather than leaving a fail. 428 if (!pick.ok) { 429 var lum = relLum(ctx.bg); 430 el.style.setProperty("background-color", lum > 0.18 ? "#ffffff" : "#000000", "important"); 431 el.style.setProperty("color", lum > 0.18 ? "#000000" : "#ffffff", "important"); 432 el.setAttribute("data-cs-bg", "1"); 433 } 434 435 // Links: keep a non-color distinction so they're not identified by color alone. 436 if (el.tagName === "A" && cs.textDecorationLine.indexOf("underline") === -1) { 437 el.style.setProperty("text-decoration", "underline", "important"); 438 } 439 signIfPassing(el, need); 440 } 441 442 // 2026-07-28 (v13, BUG 4): the signature used to be written unconditionally, straight from 443 // computed style AFTER the fix attempt - so if anything won the cascade, or a widget had 444 // already overwritten us, the engine stored the FAILING state as "validated" and never 445 // looked at the element again. Verify against the RENDERED result and only sign when it 446 // actually passes; otherwise leave it unsigned so the next sweep or the attribute observer 447 // retries. This is also the first step toward measuring the rendered backdrop rather than 448 // the walked one - the durable fix for the ancestor-walk limitation. 449 function signIfPassing(el, need) { 450 var cs2 = getComputedStyle(el); 451 var fg2 = parseRGB(cs2.color); 452 var ctx2 = effectiveBg(el); 453 var bg2 = ctx2.bg; 454 // Over-image / scrimmed elements: the solid backing applyScrim() now paints IS the 455 // background, so effectiveBg() sees it and this check is meaningful for them too. 456 if (!fg2 || !bg2) return; // cannot verify - leave unsigned, retry later 457 var n2 = need || (isLargeText(cs2) ? LARGE_MIN : TEXT_MIN); 458 if (ratio(fg2, bg2) >= n2) { 459 el.setAttribute("data-cs-sig", cs2.color + "|" + cs2.backgroundColor); 460 } else if (el.hasAttribute("data-cs-sig")) { 461 el.removeAttribute("data-cs-sig"); // stale pass - force re-evaluation 462 } 463 } 464 465 function run(root) { 466 var els = (root || document).querySelectorAll("body *"); 467 for (var i = 0; i < els.length; i++) { 468 try { fixTextElement(els[i]); } catch (e) { /* never break the page */ } 469 } 470 } 471 472 // WCAG 1.4.11: a form control's boundary must have >=3:1 against BOTH its 473 // surrounding background and its own fill. A fixed border color can't satisfy 474 // that on both light and dark panels - so pick a neutral border per control: 475 // light (#cfcfcf) on dark surroundings, dark (#595959) on light. Only overrides 476 // when the current border actually fails 3:1 against the surrounding. 477 var LIGHTB = { r: 207, g: 207, b: 207 }, DARKB = { r: 89, g: 89, b: 89 }; 478 function fixControlBorder(e) { 479 var t = (e.getAttribute("type") || "").toLowerCase(); 480 if (t === "hidden" || t === "submit" || t === "button" || t === "image") return; 481 var cs = getComputedStyle(e); 482 if (cs.display === "none" || cs.visibility === "hidden") return; 483 if (e.getAttribute("data-cs-border") === "1") return; 484 var ctx = effectiveBg(e); 485 var surround = ctx.overImage ? K : (ctx.bg || W); 486 var fill = parseRGB(cs.backgroundColor); 487 var effFill = (fill && fill.a >= 0.5) ? fill : surround; // transparent shows surrounding 488 var cur = parseRGB(cs.borderBottomColor) || parseRGB(cs.borderTopColor); 489 if (cur && ratio(cur, surround) >= 3 && ratio(cur, effFill) >= 3) { 490 e.setAttribute("data-cs-border", "1"); return; // already compliant 491 } 492 // choose the neutral that clears 3:1 against the surrounding (and prefer one 493 // that also clears the fill); fall back to the better of the two. 494 var pick = ratio(LIGHTB, surround) >= 3 ? LIGHTB : DARKB; 495 if (ratio(pick, effFill) < 3) { 496 var alt = pick === LIGHTB ? DARKB : LIGHTB; 497 if (ratio(alt, surround) >= 3 && ratio(alt, effFill) >= 3) pick = alt; 498 } 499 e.style.setProperty("border-color", pick === LIGHTB ? "#cfcfcf" : "#595959", "important"); 500 if (parseFloat(cs.borderBottomWidth) < 1 && parseFloat(cs.borderWidth) < 1) { 501 e.style.setProperty("border-bottom-width", "2px", "important"); 502 e.style.setProperty("border-bottom-style", "solid", "important"); 503 } 504 e.setAttribute("data-cs-border", "1"); 505 }
506 function runControls(root) { 507 var els = (root || document).querySelectorAll("input, select, textarea"); 508 for (var i = 0; i < els.length; i++) { 509 try { fixControlBorder(els[i]); } catch (e) {} 510 } 511 } 512 513 // Run ASAP to minimize flash; re-run for late/dynamic content (galleries, popups). 514 function boot() { 515 run(document); 516 runControls(document); 517 // Widgets (floorplan filters, date pickers, carousels) restyle existing nodes after 518 // load; a childList MutationObserver never sees that. Re-sweep a few times - the 519 // signature check above makes each sweep cheap and idempotent. 520 [800, 2000, 4500].forEach(function (d) { 521 setTimeout(function () { try { run(document); runControls(document); } catch (e) {} }, d); 522 }); 523 // catch dynamically injected content (Special Offers pop-up, AJAX widgets) 524 if (window.MutationObserver) { 525 // 2026-07-28 (v13, BUG 3): childList-only meant a widget REWRITING AN EXISTING node's 526 // style/class was never seen, and the timed sweeps stop at 4500ms - so anything restyled 527 // after that stayed broken permanently. Measured on broadstoneon9th.com: the 528 // "Check Availability" button has own bg rgb(253,210,85) and computes WHITE text at 1.45, 529 // even though effectiveBg() reads the yellow correctly and bestTextFor() returns #1a1a1a 530 // at 12.05 - i.e. the engine chose right and was overwritten afterwards. 531 // Watch attributes as well. The signature check makes re-entry cheap, and guarding on 532 // our own attributes stops the observer reacting to its own writes. 533 var OURS = { "data-cs-sig": 1, "data-cs-bg": 1, "data-cs-scrimbg": 1 }; 534 var mo = new MutationObserver(function (muts) { 535 for (var i = 0; i < muts.length; i++) { 536 var m = muts[i]; 537 if (m.type === "attributes") { 538 if (OURS[m.attributeName]) continue; // our own write - ignore 539 if (m.target && m.target.nodeType === 1) { 540 try { fixTextElement(m.target); } catch (e) {} 541 } 542 continue; 543 } 544 for (var j = 0; j < m.addedNodes.length; j++) { 545 var n = m.addedNodes[j]; 546 if (n.nodeType === 1) { try { fixTextElement(n); run(n); runControls(n); } catch (e) {} } 547 } 548 } 549 }); 550 mo.observe(document.body, { 551 childList: true, subtree: true, 552 attributes: true, attributeFilter: ["style", "class"] 553 }); 554 } 555 } 556 557 if (document.readyState === "loading") { 558 document.addEventListener("DOMContentLoaded", boot); 559 } else { 560 boot(); 561 } 562})(); 563 564</script>
564 565 566 567 568<!-- HeadInclude -->
569<script type="text/javascript">var botName="boardwalk2";</script>
vendor: 1 bytes, line 569
569
570<script src="https://dashboard.betterbot.ai/embed/loader.js" defer="defer" type="text/javascript"></script>
vendor: 1 bytes, line 570
570
571<script src="https://cs-cdn.realpage.com/CAL/v1.0/cs-calendar-widget.min.js" type="text/javascript"></script>
vendor: 1 bytes, line 571
571
572<script type="text/javascript">var calendar = new csCalendar("606809997980")</script>
572 573 574<!-- <link type="text/css" href="/templateresources/greystar/balcony/css/style.css" rel="stylesheet"> --> 575
576<script type="text/javascript"> 577 $( document ).ready(function() { 578 f_intersectCheck('#headerIntersect'); 579 f_intersectCheck('#footerIntersect'); 580 f_intersectCheckAddClass('#hiddenBannerImg'); 581 f_intersectCheckAddClass('#accordionImg1'); 582 f_intersectCheckAddClass('#accordionImg2'); 583 f_intersectCheckAddClass('#accordionImg3'); 584 f_intersectCheckAddClass('#accordionImg4'); 585 f_intersectCheckAddClass('#galleryImg1'); 586 f_intersectCheckAddClass('#galleryImg2'); 587 f_intersectCheckAddClass('#galleryImg3'); 588 f_intersectCheckAddClass('#galleryImg4'); 589}); 590</script>
590<script src="/RPresourceFiles/misc/jquery.easing.1.3.js" type="text/javascript"></script>
vendor: 1 bytes, line 590
590
591<script src="/RPresourceFiles/misc/jquery.mousewheel.min.js" type="text/javascript"></script>
591 592<style type="text/css"> 593 .dvAmtImg { 594 border:1px solid #B56209; 595 } 596 597 .featured-amenities-wrapper{ 598 padding-top:20px; 599 } 600 .featured-amenities{ 601 min-height:254px; 602 border:1px solid #B56209; 603 } 604 .amenities-wrapper 605 { 606 min-height:350px; 607 } 608#AmenitiesContent { 609 clear: both; 610 padding: 20px 0 0; 611} 612#AmenitiesContent li { 613 margin: 0 0 0 15px; 614} 615#AmenitiesContent h3 { 616 margin: 10px 0; 617} 618/* #AmenitiesContent a { 619 text-decoration:underline; 620 color: #585858; 621} 622#AmenitiesContent a:hover { 623 text-decoration:none; 624 color: #000000; 625} */ 626</style> 627<noscript> 628 <style type="text/css"> 629 #mcs_container .customScrollBox{overflow:auto;} 630 #mcs_container .dragger_container{display:none;} 631 </style> 632</noscript> 633<link href="https://s7d6.scene7.com/is/image/Greystar/Greystar_Favicon" rel="shortcut icon" /> 634<link href="https://s7d6.scene7.com/is/image/Greystar/Greystar_Favicon" rel="icon" /> 635<link href="/CmsPages/GetResource.ashx?stylesheetname=rpWebpartCss_MediaViewer;RpWebpartCss_PopUp;rpWebpartCss_CookiesConsent;rpWebPartCSS_SocialMedia;rpWebpartCss_AmenitiesStacked;rpWebpartCss_CCPA" type="text/css" rel="stylesheet" /> 636 637
637<script type="text/javascript">var firstTouchEnabled=true</script>
637 638 639 640 <style> 641 :root { 642 --RPcolor1: #ffffff !important; 643 --RPcolor2: #585858 !important; 644 --RPcolor3: #000000 !important; 645 --RPcolor4: #000000 !important; 646 --RPcolor5: #ffffff !important; 647 --RPcolor6: #585858 !important; 648 --RPcolor7: #585858 !important; 649 --RPcolor8: #585858 !important; 650 --RPcolor9: #ffffff !important; 651 652 --RPHeaderFont: '', Helvetica, Arial, sans-serif; 653 --RPBodyFont: '', Helvetica, Arial, sans-serif; 654 655 --FPCardImageHeight: 200px; 656 --FPCardImageHeight-Medium: 200px; 657 --FPCardImageHeight-Large: 200px; 658 --FPModalImageHeight: 500px; 659 --FPModalImageHeightMedium: 500px; 660 --FPModalImageHeightLarge: 500px; 661 --FPCardCarouselPadding: 15px; 662 --FPCardCarouselPadding-Large: 30px; 663 } 664 665 /* WCAG 2.4.11 â footer content not obscured by the OneTrust cookie banner. All 3 rules gated on the banner being visible so nothing applies when OneTrust is dismissed / absent. */ 666 html:has(#onetrust-banner-sdk:not([style*="display: none"])) { 667 scroll-padding-bottom: 220px; 668 } 669 body:has(#onetrust-banner-sdk:not([style*="display: none"])) { 670 padding-bottom: 220px; 671 } 672 html:has(#onetrust-banner-sdk:not([style*="display: none"])) :focus-visible { 673 scroll-margin-bottom: 220px; 674 } 675 676 /* WCAG 1.4.10 (TFS 3041085) â OneTrust's own responsive CSS for the banner 677 (and its "Cookies Settings" button) can render briefly at desktop width 678 before its breakpoint styles finish applying, pushing the page into 679 horizontal scroll on mobile. This stylesheet is inline in <head>, so it 680 applies to #onetrust-banner-sdk the instant OneTrust injects it â no 681 dependency on OneTrust's own script/CSS load order. */ 682 @media (max-width: 767px) { 683 #onetrust-banner-sdk { 684 max-width: 100vw !important; 685 box-sizing: border-box !important; 686 overflow-x: hidden; 687 } 688 } 689 </head></style> 690 691
691<script src="https://cdn.jsdelivr.net/npm/css-vars-ponyfill@1" type="text/javascript"></script>
691 692
692<script src="/RPWebParts/General/CommonData.js" type="text/javascript"></script>
692 693
693<script type="text/javascript"> 694 cssVars(); 695 </script>
695 696 697
697<script type="text/javascript"> 698 var sourcesList = JSON.parse('[{"DisplayName":"Affordable Housing Agency","PmSourceId":"3377"},{"DisplayName":"Airbnb","PmSourceId":"4860"},{"DisplayName":"Apartment List","PmSourceId":"46"},{"DisplayName":"Apartment Locator","PmSourceId":"48"},{"DisplayName":"ApartmentRatings.com","PmSourceId":"52"},{"DisplayName":"Apartments.com","PmSourceId":"56"},{"DisplayName":"Corporate Housing","PmSourceId":"215"},{"DisplayName":"Craigslist.org","PmSourceId":"229"},{"DisplayName":"Direct Mail","PmSourceId":"1562"},{"DisplayName":"Employee Referral","PmSourceId":"1129"},{"DisplayName":"Event Marketing","PmSourceId":"300"},{"DisplayName":"Greystar Property Referral","PmSourceId":"394"},{"DisplayName":"Greystar.com","PmSourceId":"393"},{"DisplayName":"In House Transfer","PmSourceId":"430"},{"DisplayName":"LiveWork In Area","PmSourceId":"501"},{"DisplayName":"Local Internet Listings","PmSourceId":"507"},{"DisplayName":"Local Internet Source","PmSourceId":"3245"},{"DisplayName":"Local Publication","PmSourceId":"513"},{"DisplayName":"Military Housing","PmSourceId":"546"},{"DisplayName":"MLS Listing","PmSourceId":"5373"},{"DisplayName":"NonPaid Referral","PmSourceId":"3382"},{"DisplayName":"NonPaid Social","PmSourceId":"3385"},{"DisplayName":"Off Site Signage","PmSourceId":"1603"},{"DisplayName":"Online Business Listing","PmSourceId":"3388"},{"DisplayName":"Outbound","PmSourceId":"603"},{"DisplayName":"Outreach Marketing","PmSourceId":"614"},{"DisplayName":"Paid Audio","PmSourceId":"6352"},{"DisplayName":"Paid Display","PmSourceId":"3391"},{"DisplayName":"Paid Email","PmSourceId":"3394"},{"DisplayName":"Paid Search","PmSourceId":"3483"},{"DisplayName":"Paid Social","PmSourceId":"1742"},{"DisplayName":"Paid Video","PmSourceId":"3400"},{"DisplayName":"Paid Zillow Boost","PmSourceId":"3403"},{"DisplayName":"Pilot ILS","PmSourceId":"3412"},{"DisplayName":"Pilot Organic Digital ","PmSourceId":"6250"},{"DisplayName":"Pilot Paid Locators","PmSourceId":"6390"},{"DisplayName":"Pilot Referral","PmSourceId":"3415"},{"DisplayName":"Pilot Social and Reputation","PmSourceId":"3421"},{"DisplayName":"Pilot Student Living","PmSourceId":"6251"},{"DisplayName":"Pilot Traditional","PmSourceId":"3424"},{"DisplayName":"Preferred Employer","PmSourceId":"2070"},{"DisplayName":"Property Website","PmSourceId":"970"},{"DisplayName":"Relate 24 7","PmSourceId":"1694"},{"DisplayName":"RentMarketplace","PmSourceId":"6232"},{"DisplayName":"Resident Referral","PmSourceId":"2875"},{"DisplayName":"Sister Property Referral","PmSourceId":"2953"},{"DisplayName":"StreetEasy","PmSourceId":"840"},{"DisplayName":"Student Housing","PmSourceId":"845"},{"DisplayName":"Walk In","PmSourceId":"942"},{"DisplayName":"Yelp.com","PmSourceId":"1001"},{"DisplayName":"Zillow Rental Network","PmSourceId":"1007"},{"DisplayName":"Zumper","PmSourceId":"1015"}]'); 699 var propertyKey = '606809997980'; 700 var propertyId = '6099790'; 701 var leadList = [ 702 { hcLeadChannelName: "Apartment Finder", Domain: "ApartmentFinder.com"}, 703 { hcLeadChannelName: "Apartment Home Living Export", Domain: "ApartmentHomeLiving.com"}, 704 { hcLeadChannelName: "ApartmentGuide.com", Domain: "ApartmentGuide.com"}, 705 { hcLeadChannelName: "Apartments.com Network", Domain: "Apartments.com" }, 706 { hcLeadChannelName: "Rent.com", Domain: "Rent.com" }, 707 { hcLeadChannelName: "ForRent.com", Domain: "ForRent.com" }, 708 { hcLeadChannelName: "Move.com", Domain: "Move.com" }, 709 { hcLeadChannelName: "ApartmentFinder.com", Domain: "ApartmentFinder.com" }, 710 { hcLeadChannelName: "ApartmentShowcase.com", Domain: "ApartmentShowcase.com" }, 711 { hcLeadChannelName: "ApartmentList.com", Domain: "ApartmentList.com" }, 712 { hcLeadChannelName: "Zillow Rental Network", Domain: "zillow.com" }, 713 { hcLeadChannelName: "LiveLovely.com", Domain: "LiveLovely.com" }, 714 { hcLeadChannelName: "Google.com", Domain: "Google.com" }, 715 { hcLeadChannelName: "MyLeasestar", Domain: "myleasestar.com" }, 716 { hcLeadChannelName: "Greystar", Domain: "greystar.com" } 717 ]; 718 719 //Defined in CommonData 720 //matchedSource = f_getSessionStorage('matchedSource'); 721 //matchedSourceId = f_getSessionStorage('matchedSourceId'); 722 723 tryMatchingSourceFromReferrerUrl(window.document, sourcesList); 724 </script>
724 725 726
726<script type="text/javascript"> 727 var utmConfigInfo = ''; 728 729 $(document).ready(function () { 730 commonDataOnReady(document, sourcesList); 731 }); 732 733 734 function setSEONumber(phoneNumber) { 735 $('.seo-number').each(function() { 736 if ($(this).find('span').length) { 737 $(this).find('span').html(phoneNumber); 738 } else { 739 $(this).html(phoneNumber); 740 } 741 742 if ($(this).attr('href') && $(this).attr('href').indexOf('tel:') > -1) 743 $(this).attr('href', 'tel: ' + phoneNumber); 744 if ($(this).attr('onclick') && $(this).attr('onclick').indexOf('f_analyticsSendEvent(') > -1) { 745 $(this).attr('onclick', "f_analyticsSendEvent('general', 'click-phone-number', '" + phoneNumber + '\')'); 746 } 747 }); 748 749 750 } 751 752 </script>
752 753 754 <!-- OG Image Information --> 755 <meta property="og:image" content="https://capi.myleasestar.com/v2/dimg-crop/57167823/1200x1200/57167823.jpg" /> 756 <!-- END OG Image Information -->
756<script type="text/javascript">var propertyId='6099790';var lsApi='https://c-leasestar-api.realpage.com';var cacheUrl='';</script>
756<script type="text/javascript">var leadObj=[{"PhoneNumber":"","LeadChannelName":"MyNewPlace"},{"PhoneNumber":"(210) 880-6074","LeadChannelName":"Greystar"},{"PhoneNumber":"(210) 455-0867","LeadChannelName":"Leasing Tablet"},{"PhoneNumber":"(210) 455-0867","LeadChannelName":"Syndication"},{"PhoneNumber":"(210) 801-9815","LeadChannelName":"Apartments.com Network"},{"PhoneNumber":"(210) 801-9707","LeadChannelName":"Apartmentsearch.com"},{"PhoneNumber":"(210) 405-4577","LeadChannelName":"Rent."},{"PhoneNumber":"(210) 880-0156","LeadChannelName":"ApartmentList.com"},{"PhoneNumber":"(210) 775-0297","LeadChannelName":"Zillow Rental Network"},{"PhoneNumber":"(210) 455-0867","LeadChannelName":"AirBnB"},{"PhoneNumber":"(210) 880-2813","LeadChannelName":"ApartmentRatings"},{"PhoneNumber":"(210) 880-2115","LeadChannelName":"Website"},{"PhoneNumber":"(210) 455-0867","LeadChannelName":"Appointment Widget"},{"PhoneNumber":"","LeadChannelName":"Moving ILS"}];var googleCallTrackingEnabled = false;</script>
756 757<link rel="canonical" href="https://www.boardwalkresearch.com/Amenities.aspx" /> 758 <!-- ExternalResources_Header --> 759 <link href="https://cs-cdn.realpage.com/CWS/2671865/TemplateResources/Greystar/WCAG/wcag-c0051-gs-balcony.css" type="text/css" rel="stylesheet" integrity="" crossorigin="anonymous"></link> 760 <!-- /ExternalResources_Header --> 761 <style> 762 /* WCAG 2.4.1 Bypass Blocks ââ¬â visible-on-focus skip-to-content link (TFS 2850320). */ 763 .skip-link { 764 position: absolute; 765 left: -10000px; 766 top: auto; 767 width: 1px; 768 height: 1px; 769 overflow: hidden; 770 } 771 .skip-link:focus { 772 position: fixed; 773 top: 0; 774 left: 0; 775 width: auto; 776 height: auto; 777 padding: 0.5rem 1rem; 778 background: #000; 779 color: #fff; 780 text-decoration: underline; 781 z-index: 10000; 782 outline: 3px solid #fff; 783 outline-offset: -3px; 784 } 785 786 /* WCAG 3.2.5/2.4.4 ââ¬â screen-reader-only utility (TFS 2991863). 787 RealPage-owned definition; the class is currently only reachable via vendor CSS 788 (Bootstrap / Font Awesome) on several templates. Mirrors header.css:1481. */ 789 .sr-only { 790 position: absolute; width: 1px; height: 1px; 791 padding: 0; margin: -1px; overflow: hidden; 792 clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; 793 } 794 .sr-only-focusable:active, .sr-only-focusable:focus { 795 position: static; width: auto; height: auto; 796 margin: 0; overflow: visible; clip: auto; white-space: normal; 797 } 798 </style>
799<script type="text/javascript">dataLayer = [{'propertyId': '6099790' ,'companyId': '322' ,'productTypeId': '6131'}];</script>
799<script type="text/javascript">function gtag(){dataLayer.push(arguments);}</script>
799<!-- Google Tag Manager Header -->
799<script type="text/javascript">
vendor: 453 bytes, lines 799-803
799(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({"gtm.start": 800 new Date().getTime(),event:"gtm.js"});var f=d.getElementsByTagName(s)[0], 801 j=d.createElement(s),dl=l!="dataLayer"?"&l="+l:"";j.async=true;j.src= 802 "//www.googletagmanager.com/gtm.js?id="+i+dl;f.parentNode.insertBefore(j,f); 803 })(window,document,"script","dataLayer","
803GTM-M37RMQ2
vendor: 33 bytes, lines 803-804
803"); 804
804</script>
804<link href="https://cs-cdn.realpage.com/CWS/2671865/CMSScripts/Custom/RPWebParts/fancybox3/jquery.fancybox.css" type="text/css" rel="preload" as="style" onload="this.rel='stylesheet'" />
805<script type="text/javascript">var mvTourText = ''; var mvColor = '000000'; mvBtnAnimation = 'spin'</script>
805<script type="text/javascript">var mvTours = [{"Type":"UKN","MediaId":66863120,"DisplaySequence":540,"Caption":"1 BR 1 BT - ACACIA - 693SF","Src":"https://my.matterport.com/show/?m=txjkaDeeHAF","AltText":"1 BR 1 BT - ACACIA - 693SF","TourType":null,"ImgUrl":null},{"Type":"UKN","MediaId":66863119,"DisplaySequence":530,"Caption":"2BR 2 BT - LAUREL - 1203SF","Src":"https://my.matterport.com/show/?m=X3xWviveN7Q","AltText":"2BR 2 BT - LAUREL - 1203SF","TourType":null,"ImgUrl":null}]</script>
805<script src="https://cs-cdn.realpage.com/CWS/2671865/CMSScripts/Custom/RPWebParts/fancybox3/jquery.fancybox.js" type="text/javascript" defer="defer"></script>
805<script src="https://cs-cdn.realpage.com/CWS/2671865/CMSScripts/Custom/RPWebParts/media-viewer.js" type="text/javascript" defer="defer"></script>
805<script type="application/ld+json">{"@context":"http://schema.org","@type":"Apartment","name":"Boardwalk Research","image":"https://capi.myleasestar.com/v2/dimg/57167823/400x400/57167823.jpg","url":"https://www.boardwalkresearch.com","telephone":"(210) 880-2115","address":{"@type":"PostalAddress","streetAddress":"5503 Research","addressLocality":"San Antonio","addressRegion":"TX","postalCode":"78240","addressCountry":"USA"},"geo":{"@type":"GeoCoordinates","latitude":29.542154,"longitude":-98.585745},"openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":"Monday","opens":"9:00AM","closes":"6:00PM"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Tuesday","opens":"9:00AM","closes":"6:00PM"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Wednesday","opens":"9:00AM","closes":"6:00PM"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Thursday","opens":"9:00AM","closes":"6:00PM"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Friday","opens":"9:00AM","closes":"6:00PM"},{"@type":"OpeningHoursSpecification","dayOfWeek":"Saturday","opens":"10:00AM","closes":"5:00PM"}]}</script>
805<link href="https://cs-cdn.realpage.com/CWS/2671865/TemplateResources/Global/Icons/font-awesome.min.css" type="text/css" rel="preload" as="style" onload="this.rel='stylesheet'" /> 806<link href="https://cs-cdn.realpage.com/CWS/2671865/CMSScripts/Custom/RPWebParts/fancybox3/jquery.fancybox.css" type="text/css" rel="preload" as="style" onload="this.rel='stylesheet'" />
807<script src="https://cs-cdn.realpage.com/CWS/2671865/CMSScripts/Custom/RPWebParts/cookies-consent.js" type="text/javascript" defer="defer"></script>
807<link href="https://cs-cdn.realpage.com/CWS/2671865/CMSScripts/Custom/RPWebParts/fancybox3/jquery.fancybox.css" type="text/css" rel="preload" as="style" onload="this.rel='stylesheet'" /> 808<link href="/CMSPages/GetResource.ashx?stylesheetfile=/assets/common/footer/css/footer.min.css" type="text/css" rel="stylesheet" />
809<script type="text/javascript">var footerTemplate = 'footer7';</script>
809<script type="text/javascript">var propertyOfficeHours = [{"DayOfWeek":"Monday","OfficeHoursText":"","StartTime1":"9:00AM","EndTime1":"6:00PM","StartTime2":null,"EndTime2":null},{"DayOfWeek":"Tuesday","OfficeHoursText":"","StartTime1":"9:00AM","EndTime1":"6:00PM","StartTime2":null,"EndTime2":null},{"DayOfWeek":"Wednesday","OfficeHoursText":"","StartTime1":"9:00AM","EndTime1":"6:00PM","StartTime2":null,"EndTime2":null},{"DayOfWeek":"Thursday","OfficeHoursText":"","StartTime1":"9:00AM","EndTime1":"6:00PM","StartTime2":null,"EndTime2":null},{"DayOfWeek":"Friday","OfficeHoursText":"","StartTime1":"9:00AM","EndTime1":"6:00PM","StartTime2":null,"EndTime2":null},{"DayOfWeek":"Saturday","OfficeHoursText":"","StartTime1":"10:00AM","EndTime1":"5:00PM","StartTime2":null,"EndTime2":null}]</script>
809<script type="text/javascript">var latitude='29.542154',longitude='-98.585745',name='Boardwalk Research',addressLine1='5503 Research',city='San Antonio',addressState='TX',addressPostalCode='78240',phonesNumber='(210) 880-2115',website='';</script>
809<script type="text/javascript">$(function(){ 810 $('.footer-widget .residents a[target="_blank"]').each(function() { 811 if (!$(this).find('.sr-only').length) { 812 $(this).append('<span class="sr-only"> (opens in a new tab)</span>'); 813 } 814 }); 815 });</script>
815<script type="text/javascript"> 816(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,'script','//www.google-analytics.com/analytics.js','ga');</script>
816<link href="/CMSPages/GetResource.ashx?_webparts=1483" type="text/css" rel="stylesheet" /> 817
818<script>(window.BOOMR_mq=window.BOOMR_mq||[]).push(["addVar",{"rua.upush":"false","rua.cpush":"false","rua.upre":"false","rua.cpre":"false","rua.uprl":"false","rua.cprl":"false","rua.cprf":"false","rua.trans":"","rua.cook":"false","rua.ims":"false","rua.ufprl":"false","rua.cfprl":"false","rua.isuxp":"false","rua.texp":"norulematch","rua.ceh":"false","rua.ueh":"false","rua.ieh.st":"0"}]);</script>
818 819
819<script>!function(e){var n="https://s.go-mpulse.net/boomerang/";if("False"=="True")e.BOOMR_config=e.BOOMR_config||{},e.BOOMR_config.PageParams=e.BOOMR_config.PageParams||{},e.BOOMR_config.PageParams.pci=!0,n="https://s2.go-mpulse.net/boomerang/";if(window.BOOMR_API_key="Y2PYZ-3WZ5U-9VEDC-WUEHY-8N7AV",function(){function e(){if(!i){var e=document.createElement("script");e.id="boomr-scr-as",e.src=window.BOOMR.url,e.async=!0,o.parentNode.appendChild(e),i=!0}}function t(e){i=!0;var n,t,a,r,d=document,O=window;if(window.BOOMR.snippetMethod=e?"if":"i",t=function(e,n){var t=d.createElement("script");t.id=n||"boomr-if-as",t.src=window.BOOMR.url,BOOMR_lstart=(new Date).getTime(),e=e||d.body,e.appendChild(t)},!window.addEventListener&&window.attachEvent&&navigator.userAgent.match(/MSIE [67]\./))return window.BOOMR.snippetMethod="s",void t(o.parentNode,"boomr-async");a=document.createElement("IFRAME"),a.src="about:blank",a.title="",a.role="presentation",a.loading="eager",r=(a.frameElement||a).style,r.width=0,r.height=0,r.border=0,r.display="none",o.parentNode.appendChild(a);try{O=a.contentWindow,d=O.document.open()}catch(_){n=document.domain,a.src="javascript:var d=document.open();d.domain='"+n+"';void(0);",O=a.contentWindow,d=O.document.open()}if(n)d._boomrl=function(){this.domain=n,t()},d.write("<bo"+"dy onload='document._boomrl();'>");else if(O._boomrl=function(){t()},O.addEventListener)O.addEventListener("load",O._boomrl,!1);else if(O.attachEvent)O.attachEvent("onload",O._boomrl);d.close()}function a(e){window.BOOMR_onload=e&&e.timeStamp||(new Date).getTime()}if(!window.BOOMR||!window.BOOMR.version&&!window.BOOMR.snippetExecuted){window.BOOMR=window.BOOMR||{},window.BOOMR.snippetStart=(new Date).getTime(),window.BOOMR.snippetExecuted=!0,window.BOOMR.snippetVersion=12,window.BOOMR.url=n+"Y2PYZ-3WZ5U-9VEDC-WUEHY-8N7AV";var o=document.currentScript||document.getElementsByTagName("script")[0],i=!1,r=document.createElement("link");if(r.relList&&"function"==typeof r.relList.supports&&r.relList.supports("preload")&&"as"in r)window.BOOMR.snippetMethod="p",r.href=window.BOOMR.url,r.rel="preload",r.as="script",r.addEventListener("load",e),r.addEventListener("error",function(){t(!0)}),setTimeout(function(){if(!i)t(!0)},3e3),BOOMR_lstart=(new Date).getTime(),o.parentNode.appendChild(r);else t(!1);if(window.addEventListener)window.addEventListener("load",a,!1);else if(window.attachEvent)window.attachEvent("onload",a)}}(),"".length>0)if(e&&"performance"in e&&e.performance&&"function"==typeof e.performance.setResourceTimingBufferSize)e.performance.setResourceTimingBufferSize();!function(){if(BOOMR=e.BOOMR||{},BOOMR.plugins=BOOMR.plugins||{},!BOOMR.plugins.AK){var n=""=="true"?1:0,t="",a="z54cyrixyascu2whqbca-f-999af3bac-clientnsv4-s.akamaihd.net",o="false"=="true"?2:1,i={"ak.v":"41","ak.cp":"1592120","ak.ai":parseInt("1022256",10),"ak.ol":"0","ak.cr":34,"ak.ipv":4,"ak.proto":"http/1.1","ak.rid":"518d86d1","ak.r":51139,"ak.a2":n,"ak.m":"","ak.n":"essl","ak.cport":1761,"ak.gh":"23.197.55.228","ak.quicv":"","ak.tlsv":"tls1.2","ak.0rtt":"","ak.0rtt.ed":"","ak.csrc":"-","ak.acc":"bbr","ak.t":"1791459396","ak.ak":"hOBiQwZUYzCg5VSAfCLimQ==kmVPwOfaQRBHCRB8D4HrlPeFffLN7HgLbMu/GsKWRni1e2OzdHX2yIDIIykwOma2xaXrqbUQ0Cp6MxEc4HUUytyU0Y9P1KCksLgBDcyE0RfnH58DjrDwTPrdI+Lki8g+4NYHaxqMV6kXZsvPfigbqJ4GOSty5KyFFqYnSV6piq0Kkdv+ScDU3IPXFCKfmjNnTqHoiDp5CaY08/bP8NY2LMzshZbk6iU51JGyzd/YBlWBHXcZqDxL/Ah28E2pSOG/8Z4XEKehEz3Ra5B2HQtw/U6sZZP2QPhqhzYONGfCRqT5rTphDhS3ALQcyMx/7LVyKQ4CjcWNdZnhxzZzNCgh5bu1GDUyScU4wB9IZherCGL4vr5UquZHr72WXUscufh+zZXbkHKL0jORSaFopwm8Z/BDLnUcogIWbudSkGQ0i7I=","ak.pv":"8","ak.dpoabenc":"","ak.tf":o};if(""!==t)i["ak.ruds"]=t;var r={i:!1,av:function(n){var t="http.initiator";if(n&&(!n[t]||"spa_hard"===n[t]))i["ak.feo"]=void 0!==e.aFeoApplied?1:0,BOOMR.addVar(i)},rv:function(){var e=["ak.cport","ak.cr","ak.csrc","ak.gh","ak.ipv","ak.m","ak.n","ak.ol","ak.proto","ak.quicv","ak.tlsv","ak.0rtt","ak.0rtt.ed","ak.r","ak.acc","ak.t","ak.tf"];BOOMR.removeVar(e)}};BOOMR.plugins.AK={akVars:i,akDNSPreFetchDomain:a,init:function(){if(!r.i){var e=BOOMR.subscribe;e("before_beacon",r.av,null,null),e("onbeacon",r.rv,null,null),r.i=!0}return this},is_complete:function(){return!0}}}}()}(window);</script>
819</head> 820<body class="LTR Chrome ENUS ContentBody" id="page-Features"> 821 <a class="skip-link" href="#main-content">Skip to main content</a> 822 <!-- Google Tag Manager --> 823 <noscript> 824 <iframe src="//www.googletagmanager.com/ns.html?id=GTM-M37RMQ2" height="0" width="0" style="display:none;visibility:hidden" title="Google Tag Manager"></iframe> 825 </noscript> 826 <!-- End Google Tag Manager --> 827 828 829 830 831
832<script type="text/javascript"> 833 var displayModal = false; 834 if(navigator.userAgent.indexOf('MSIE')!==-1 || navigator.appVersion.indexOf('Trident/') > -1){ 835 displayModal = true; 836 } 837 838 839 // POLYFILLS 840 if (typeof IntersectionObserver == 'undefined') { 841 var intersectionObserverScript = document.createElement("script"); 842 intersectionObserverScript.type = "text/javascript"; 843 intersectionObserverScript.setAttribute("src", '/CMSScripts/Custom/Polyfill/intersection-observer.js'); 844 document.documentElement.firstChild.appendChild(intersectionObserverScript); 845 } 846 if (navigator.userAgent.toLocaleLowerCase().indexOf('chrome') == -1) { 847 var preloadCssScript = document.createElement("script"); 848 preloadCssScript.type = "text/javascript"; 849 preloadCssScript.setAttribute("src", '/CMSScripts/Custom/Polyfill/cssrelpreload.js'); 850 document.documentElement.firstChild.appendChild(preloadCssScript); 851 } 852 853 // END POLYFILLS 854 //For TESTING 855 //displayModal = true; 856 $(document).ready(function () { 857 var cookie = f_getBrowserSessionCookie('showBrowserVersionOnPageLoad'); 858 //For TESTING 859 //var cookie = null; 860 861 if (displayModal && cookie == null) { 862 $('.oB-overlay').show(); 863 $('#oldBrowserModal').show(); 864 var html = htmlStringBuilder(); 865 $('#oldBrowserModal').append(html); 866 f_setBrowserSessionCookie('showBrowserVersionOnPageLoad', false); 867 } 868 $('#closeBrowserModalButton').on('click', function() { 869 $('.oB-overlay').hide(); 870 $('#oldBrowserModal').hide(); 871 }); 872 }); 873 874 function f_setBrowserSessionCookie(cookieName, value) { 875 document.cookie = cookieName + "=" + value; 876 } 877 878 function f_getBrowserSessionCookie(cookieName) { 879 var cookieValue = document.cookie; 880 var cookieStart = cookieValue.indexOf(" " + cookieName + "="); 881 if (cookieStart == -1) { 882 cookieStart = cookieValue.indexOf(cookieName + "="); 883 } 884 if (cookieStart == -1) { 885 cookieValue = null; 886 } 887 else { 888 cookieStart = cookieValue.indexOf("=", cookieStart) + 1; 889 var cookieEnd = cookieValue.indexOf(";", cookieStart); 890 if (cookieEnd == -1) { 891 cookieEnd = cookieValue.length; 892 } 893 cookieValue = unescape(cookieValue.substring(cookieStart, cookieEnd)); 894 } 895 return cookieValue; 896 } 897 898 function htmlStringBuilder() { 899 var buildHtml = '<div class="oB-dialog">'+ 900 '<div class="oB-content">'+ 901 '<div class="oB-header">'+ 902 '<h4>For the best website experience, please update your browser</h4>'+ 903 '</div>'+ 904 '<div class="oB-body">'+ 905 '<p>Just click on the icons to get to the download page</p>'+ 906 '<div class="browserSelect">'+ 907 '<div class="browserIconContainer" id="firefoxTab">'+ 908 '<div class="browserColumn">'+ 909 '<a class="browserLink" href="https://www.mozilla.org/en-US/firefox/new/?v=1" target="_blank" rel="noopener noreferrer" aria-label="Firefox Download (opens in a new tab)" tabindex="0">'+ 910 '<div class="browserImage"><img src="https://cs-cdn.realpage.com/CWS/2671865/GlobalResources/BrowserIcons/firefoxLogo.png" aria-hidden="true" alt="Firefox" /></div>'+ 911 '<div class="browserName">Firefox</div>'+ 912 '</a>'+ 913 '</div>'+ 914 '</div>'+ 915 '<div class="browserIconContainer" id="chromeTab">'+ 916 '<div class="browserColumn">'+ 917 '<a class="browserLink" href="https://www.google.com/chrome/browser/desktop/" target="_blank" rel="noopener noreferrer" aria-label="Chrome Download (opens in a new tab)" tabindex="0">'+ 918 '<div class="browserImage"><img src="https://cs-cdn.realpage.com/CWS/2671865/GlobalResources/BrowserIcons/chromeLogo.png" aria-hidden="true" alt="Chrome" /></div>'+ 919 '<div class="browserName">Chrome</div>'+ 920 '</a>'+ 921 '</div>'+ 922 '</div>'+ 923 '<div class="browserIconContainer" id="safariTab">'+ 924 '<div class="browserColumn">'+ 925 '<a class="browserLink" href="https://support.apple.com/downloads/safari" target="_blank" rel="noopener noreferrer" aria-label="Safari Download (opens in a new tab)" tabindex="0">'+ 926 '<div class="browserImage"><img src="https://cs-cdn.realpage.com/CWS/2671865/GlobalResources/BrowserIcons/safariLogo.png" aria-hidden="true" alt="Safari"/></div>'+ 927 '<div class="browserName">Safari</div>'+ 928 '</a>'+ 929 '</div>'+ 930 '</div>'+ 931 ' <div class="browserIconContainer" id="edgeTab">'+ 932 '<div class="browserColumn">'+ 933 '<a class="browserLink" href="https://www.microsoft.com/en-us
933/windows/microsoft-edge#0QiY0Omq3i5Z0krF.97" target="_blank" rel="noopener noreferrer" aria-label="Edge Download (opens in a new tab)" tabindex="0">'+ 934 '<div class="browserImage"><img src="https://cs-cdn.realpage.com/CWS/2671865/GlobalResources/BrowserIcons/edgeLogo.png" aria-hidden="true" alt="Edge"/></div>'+ 935 '<div class="browserName">Edge</div>'+ 936 '</a>'+ 937 '</div>'+ 938 '</div>'+ 939 '</div>'+ 940 '</div>'+ 941 '<button id="closeBrowserModalButton" type="button" aria-label="close" tabindex="0">Close Window</button>'+ 942 '<div class="oB-footer">'+ 943 '</p>By closing this window you acknowledge that your experience on this website may be degraded</p>'+ 944 '</div>'+ 945 '</div>'; 946 console.log(buildHtml); 947 return buildHtml; 948 } 949</script>
949 950 <style> 951 #oldBrowserModal { 952 font-family: 'Arial', sans-serif; 953 } 954 #oldBrowserModal .oB-header h4, #oldBrowserModal .oB-body p { 955 color: #666; 956 font-weight: bold; 957 } 958 #oldBrowserModal .oB-header h4 {font-size: 20px;} 959 #oldBrowserModal .oB-body p { 960 font-size: 16px; 961 padding: 0 15px 15px; 962 } 963 #oldBrowserModal .browserIconContainer { 964 width: 90px; 965 display: inline-block; 966 text-align: center; 967 margin-bottom: 15px; 968 } 969 #oldBrowserModal .browserSelect {font-size: 14px;} 970 #oldBrowserModal #explorerTab {width: 140px;} 971 #oldBrowserModal .browserImage img { 972 height: 60px; 973 width: 60px; 974 margin-bottom:10px; 975 border: none !important; 976 } 977 #oldBrowserModal a.browserLink { 978 color: #666; 979 text-decoration: none; 980 } 981 #oldBrowserModal #closeBrowserModalButton { 982 background: #42a5f5; 983 color: #fff; 984 border: none; 985 padding: 15px 45px; 986 border-radius: 500px; 987 font-size: 16px; 988 cursor: pointer; 989 } 990 #oldBrowserModal .oB-content {text-align:center;} 991 #oldBrowserModal :focus { 992 outline: -webkit-focus-ring-color auto 0px; 993 } 994 #oldBrowserModal .oB-content {border-radius: 0;} 995 .oB-overlay { 996 position: fixed; 997 z-index: 2000; 998 height: 100%; 999 width: 100%; 1000 top: 0; 1001 left: 0; 1002 background: rgba(0,0,0,0.5); 1003 } 1004 #oldBrowserModal .oB-header { 1005 border-bottom: 1px solid rgba(0,0,0,.1); 1006 padding: 15px; 1007 } 1008 #oldBrowserModal .oB-body { 1009 padding: 15px; 1010 } 1011 #oldBrowserModal .oB-footer { 1012 font-size: 12px; 1013 padding: 15px; 1014 text-align: center; 1015 border: none; 1016 color: #666; 1017 } 1018 @media (min-width: 768px) { 1019 #oldBrowserModal .oB-dialog {width: 690px;} 1020 #oldBrowserModal { 1021 position: absolute; 1022 z-index: 2001; 1023 top: 10%; 1024 left: 50%; 1025 background: #fff; 1026 transform: translate(-50%, 0); 1027 -ms-transform: translate(-50%, 0); 1028 } 1029 } 1030 @media (max-width: 767px) { 1031 #oldBrowserModal { 1032 position: relative; 1033 z-index: 2001; 1034 margin: 5% auto 5%; 1035 background: #fff; 1036 width: 95%; 1037 } 1038 } 1039</style> 1040 1041<div class="oB-overlay" style="display: none;"></div> <div id="oldBrowserModal" style="display: none;"></div> 1042 <form method="post" action="/Amenities.aspx" id="form"> 1043<div class="aspNetHidden"> 1044<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" /> 1045<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /> 1046<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="HETrVsXlZYdFT/bhb6xjT3B0X6L5pp5WPtFXs2s1vOeinCPcR/qXmgO2neUWANE74Q+oFJJx7audxsqnVTF5vmeCbVGNqhLjTnlhbCqu7KNB7xiZP40pA3NchUBCy2BS4QccjKBGbdK0CHNOAr2Xtsz60/G29bSQ5QwByiR2OXzSp3Ke9Cta7xPKOqGoHXH+6mzFqorH3XKK+zxotCt5ytCXRpTLVXIyI++NiK0Y5et2SQCS5YlhVa88xYGcMWcaRXcioN/LmlFqPe36+UV7FHQbykCV1ayFaGqsaTb21g1O+iqoy4VGWbnzbLGB+yFxJNxN4EjwGCoeEXL5U9FMV95VtEm9GBWYHneRqLcmt3dvkhMqxLJwSNsYaqyowZyf" /> 1047</div> 1048
1049<script type="text/javascript"> 1050//<![CDATA[ 1051var theForm = document.forms['form']; 1052if (!theForm) { 1053 theForm = document.form; 1054} 1055function __doPostBack(eventTarget, eventArgument) { 1056 if (!theForm.onsubmit || (theForm.onsubmit() != false)) { 1057 theForm.__EVENTTARGET.value = eventTarget; 1058 theForm.__EVENTARGUMENT.value = eventArgument; 1059 theForm.submit(); 1060 } 1061} 1062//]]> 1063</script>
1063 1064 1065
1066<script src="/WebResource.axd?d=pynGkmcFUV13He1Qd6_TZLJliYB8TA_FIF9xlHcKd7ag0Vv3EWtMdA4IBxcPvyX2M5F_ORIargEI2RFqew7B_g2&t=639191793026372022" type="text/javascript"></script>
1066 1067 1068
1069<script src="/assets/common/footer/js/footer.js" type="text/javascript"></script>
vendor: 2 bytes, line 1069
1069
1070<script src="/Assets/common/wcag/js/unlabeled-controls.js" type="text/javascript"></script>
vendor: 2 bytes, line 1070
1070
1071<script src="/Assets/common/wcag/js/new-tab-announce.js" type="text/javascript"></script>
1071<input type="hidden" name="lng" id="lng" value="en-US" />
1072<script type="text/javascript"> 1073 //<![CDATA[ 1074 1075function PM_Postback(param) { if (window.top.HideScreenLockWarningAndSync) { window.top.HideScreenLockWarningAndSync(1080); } if(window.CMSContentManager) { CMSContentManager.allowSubmit = true; }; __doPostBack('m$am',param); } 1076function PM_Callback(param, callback, ctx) { if (window.top.HideScreenLockWarningAndSync) { window.top.HideScreenLockWarningAndSync(1080); }if (window.CMSContentManager) { CMSContentManager.storeContentChangedStatus(); };WebForm_DoCallback('m$am',param,callback,ctx,null,true); } 1077//]]> 1078</script>
vendor: 2 bytes, line 1078
1078
1079<script src="/ScriptResource.axd?d=NJmAwtEo3Ipnlaxl6CMhvgm388C7z57L5COL7njlfxHabVp02JjeGBqhojV0DvhOls37naEdTKvtve-DZGAUfkLhXnkKZ0JM5n8W_iT84YozJbVtHk6XR7HfTxh00jaQbIJ5RlBvWf7fnz-N3zpSVKNk_Hm4b82dGd4p6rDl7rs1&t=fffffffff7f39b88" type="text/javascript"></script>
vendor: 2 bytes, line 1079
1079
1080<script src="/ScriptResource.axd?d=dwY9oWetJoJoVpgL6Zq8OBLhaBrqwBdVAb8vaEtP5p0RwE8U2clwoyTHecbvHf4xQfmyrJ2iJaF8M22aUIdHdYyU7qY-2hjISrIPPxmhFqA408i6Y0GxT1-SnCjYV3lgC3TXr_eJ0QD4CYVGcu8j6ZFo_C_b-R4EfAA4qAquMMk1&t=fffffffff7f39b88" type="text/javascript"></script>
vendor: 2 bytes, line 1080
1080
1081<script type="text/javascript"> 1082 //<![CDATA[ 1083 1084var CMS = CMS || {}; 1085CMS.Application = { 1086 "language": "en", 1087 "imagesUrl": "/CMSPages/GetResource.ashx?image=%5bImages.zip%5d%2f", 1088 "isDebuggingEnabled": false, 1089 "applicationUrl": "/", 1090 "isDialog": false, 1091 "isRTL": "false" 1092}; 1093 1094//]]> 1095</script>
1095 1096<div class="aspNetHidden"> 1097 1098 <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="A5343185" /> 1099 <input type="hidden" name="__SCROLLPOSITIONX" id="__SCROLLPOSITIONX" value="0" /> 1100 <input type="hidden" name="__SCROLLPOSITIONY" id="__SCROLLPOSITIONY" value="0" /> 1101</div> 1102
1102<script type="text/javascript"> 1103//<![CDATA[ 1104Sys.WebForms.PageRequestManager._initialize('manScript', 'form', ['tctxM',''], [], [], 90, ''); 1105//]]> 1106</script>
1106 1107 1108 <div id="ctxM"> 1109 1110</div> 1111 1112<div class="template template-balcony"> 1113 <div class="gridlines"> 1114 <div class="container-fluid"> 1115 <div class="row"> 1116 <div class="col-sm-4"></div> 1117 <div class="col-sm-4"></div> 1118 <div class="col-sm-4"></div> 1119 </div> 1120 </div> 1121 </div> 1122 1123 1124 1125 1126<!-- MediaViewer Added -->
1127<script type="text/javascript"> 1128(function () { 1129 1130 // Per-instance suffix â matches the id suffix the code-behind (Initialize()) applies to 1131 // popup-overlay/popUpWindowDialog/popUpWindowHeader/divCloseButton/popBtnClose/popUpWindowText, 1132 // so two PopUp instances on one page never collide in DOM ids OR in this closure's JS scope. 1133 var suffix = 'p_lt_zoneTop_rpWebpart_PopUp_PopUpWindow'; 1134 var dialogSelector = '#popUpWindowDialog_' + suffix; 1135 var overlaySelector = '#popup-overlay_' + suffix; 1136 var containerSelector = '#' + suffix; // the PopUpWindow panel itself (.popUpWindowLightBox) 1137 1138 // Remembers the element focused before the dialog opened so focus can be restored on close (WCAG 2.4.3). 1139 var f_lastFocusedBeforeDialog = null; 1140 1141 // Returns the currently focusable, visible elements inside the open dialog. 1142 // Null-guarded: returns an empty jQuery set when the dialog markup is absent/empty. 1143 function f_getDialogFocusables() { 1144 var $dialog = $(dialogSelector); 1145 if ($dialog.length === 0) { return $(); } 1146 return $dialog 1147 .find('a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])') 1148 .filter(':visible'); 1149 } 1150 1151 function f_dialogIsOpen() { 1152 var $dialog = $(dialogSelector); 1153 return $dialog.length > 0 && $dialog.is(':visible'); 1154 } 1155 1156 // WCAG 2.4.11 â while the dialog is open, mark every non-dialog sibling `inert` + `aria-hidden` so focu
1156s/AT can't escape behind it. 1157 function f_inertBackground() { 1158 var dialog = document.querySelector(containerSelector); 1159 var overlay = document.querySelector(overlaySelector); 1160 if (!dialog) { return; } 1161 var ancestor = dialog; 1162 while (ancestor && ancestor.parentElement) { 1163 var parent = ancestor.parentElement; 1164 Array.prototype.forEach.call(parent.children, function (sibling) { 1165 if (sibling === ancestor || sibling === overlay) { return; } 1166 if (sibling.tagName === 'SCRIPT' || sibling.tagName === 'STYLE' || sibling.tagName === 'LINK') { return; } 1167 if (sibling.hasAttribute('data-popup-was-inert')) { return; } 1168 sibling.setAttribute('data-popup-was-inert', sibling.hasAttribute('inert') ? '1' : '0'); 1169 sibling.setAttribute('data-popup-was-aria-hidden', sibling.getAttribute('aria-hidden') || ''); 1170 sibling.setAttribute('inert', ''); 1171 sibling.setAttribute('aria-hidden', 'true'); 1172 }); 1173 if (parent === document.body) { break; } 1174 ancestor = parent; 1175 } 1176 } 1177
1178 function f_restoreBackground() { 1179 var marked = document.querySelectorAll('[data-popup-was-inert]'); 1180 Array.prototype.forEach.call(marked, function (el) { 1181 if (el.getAttribute('data-popup-was-inert') === '0') { el.removeAttribute('inert'); } 1182 var prev = el.getAttribute('data-popup-was-aria-hidden'); 1183 if (prev) { el.setAttribute('aria-hidden', prev); } else { el.removeAttribute('aria-hidden'); } 1184 el.removeAttribute('data-popup-was-inert'); 1185 el.removeAttribute('data-popup-was-aria-hidden'); 1186 }); 1187 } 1188 1189 function f_showDialog(modal) { 1190 // Guard against a second PopUp instance opening while one is already open. f_inertBackground() 1191 // below has no concept of "this sibling contains another already-open PopUp" â when two 1192 // instances are both open, each one's walk marks the OTHER instance's wrapper (and everything 1193 // inside it, including that instance's own close button) `inert`, so both close buttons drop 1194 // out of hit-testing (TFS 3059418). Never allowing a second instance to open avoids the 1195 // precondition entirely. window is the only scope shared across instances' closures, so the 1196 // open/closed state has to live there. 1197 if (window.RpPopUp_openInstance && window.RpPopUp_openInstance !== suffix) { 1198 return; 1199 } 1200 if ($(dialogSelector).length > 0) { 1201 window.RpPopUp_openInstance = suffix; 1202 // Remember where focus was so it can be restored on close (WCAG 2.4.3). 1203 f_lastFocusedBeforeDialog = document.activeElement; 1204 $(overlaySelector).show(); 1205 $(containerSelector).fadeIn(300, function () { 1206 f_inertBackground(); 1207 // Move focus into the dialog once it is visible (focusing a hidden element silently fails). 1208 var $focusables = f_getDialogFocusables(); 1209 if ($focusables.length) { 1210 $focusables.first().focus(); 1211 } else { 1212 $(dialogSelector).attr('tabindex', '-1').focus(); 1213 } 1214 }); 1215 if (modal) { 1216 $(overlaySelector).unbind('click'); 1217 } else { 1218 $(overlaySelector).click(function () { 1219 f_hideDialog(); 1220 }); 1221 } 1222 } 1223 } 1224 1225 function f_hideDialog() { 1226 if (window.RpPopUp_openInstance === suffix) { 1227 window.RpPopUp_openInstance = null; 1228 } 1229 $(overlaySelector).hide(); 1230 $(containerSelector).fadeOut(300);
1231 f_restoreBackground(); 1232 // Return focus to the element that was focused before the dialog opened (WCAG 2.4.3). 1233 if (f_lastFocusedBeforeDialog && typeof f_lastFocusedBeforeDialog.focus === 'function') { 1234 f_lastFocusedBeforeDialog.focus(); 1235 } 1236 f_lastFocusedBeforeDialog = null; 1237 } 1238 1239 function f_setSessionCookie(cookieName, value) { 1240 document.cookie = cookieName + "=" + value; 1241 } 1242 1243 function f_getSessionCookie(cookieName) { 1244 var cookieValue = document.cookie; 1245 var cookieStart = cookieValue.indexOf(" " + cookieName + "="); 1246 if (cookieStart == -1) { 1247 cookieStart = cookieValue.indexOf(cookieName + "="); 1248 } 1249 if (cookieStart == -1) { 1250 cookieValue = null; 1251 } 1252 else { 1253 cookieStart = cookieValue.indexOf("=", cookieStart) + 1; 1254 var cookieEnd = cookieValue.indexOf(";", cookieStart); 1255 if (cookieEnd == -1) { 1256 cookieEnd = cookieValue.length; 1257 } 1258 cookieValue = unescape(cookieValue.substring(cookieStart, cookieEnd)); 1259 } 1260 return cookieValue; 1261 } 1262 1263 // Registered per instance (keyed by suffix) so the inline onclick="RpPopUp['<suffix>'].hideDialog()" 1264 // built in Initialize() always targets this instance's own closure, never a sibling PopUp's. 1265 window.RpPopUp = window.RpPopUp || {}; 1266 window.RpPopUp[suffix] = { 1267 showDialog: f_showDialog, 1268 hideDialog: f_hideDialog 1269 }; 1270 1271 $(document).ready(function () { 1272 var disableOnMobile = 'True'; 1273 var isSmallScreenDevice = $(window).width() <= 500; 1274 1275 var cookie = f_getSessionCookie('showOnPageLoad'); 1276 var endDate = ''; 1277 var convertedEndDate = new Date(endDate + " 23:59:59"); 1278 var today = new Date(); 1279 1280 var page = '~/Amenities.aspx'; 1281 //should only popup for the home page 1282 if (page == "~/" && (!endDate || convertedEndDate > today)) { 1283 if (!cookie || 'True'.toLowerCase() == 'true') { 1284 if (('True'.toLowerCase() == 'true' || 'True'.toLowerCase() == 'true') && ((disableOnMobile.toLowerCase() == 'false' || !isSmallScreenDevice))) { 1285 f_showDialog(true); 1286 } 1287 f_setSessionCookie('showOnPageLoad', false); 1288 } 1289 } 1290 1291 $(document).keydown(function (event) { 1292 // Only act while the dialog is actually open so Esc/Tab never affect a hidden dialog. 1293 if (!f_dialogIsOpen()) { return; } 1294 1295 if (event.keyCode == 27) { // Esc â preserve existing close behavior (avoids a 2.1.2 keyboard trap) 1296 f_hideDialog(); 1297 return; 1298 } 1299 1300 if (event.keyCode == 9) { // Tab / Shift+Tab â confine focus to the dialog (WCAG 2.4.11 / 2.4.3) 1301 var $focusables = f_getDialogFocusables(); 1302 if ($focusables.length === 0) { 1303 // No focusable content inside the dialog: keep focus on the container. 1304 event.preventDefault(); 1305 $(dialogSelector).attr('tabindex', '-1').focus(); 1306 return; 1307 } 1308 var first = $focusables.first()[0]; 1309 var last = $focusables.last()[0]; 1310 var active = document.activeElement; 1311 if (event.shiftKey && active === first) { 1312 event.preventDefault(); 1313 $(last).focus(); 1314 } else if (!event.shiftKey && active === last) { 1315 event.preventDefault(); 1316 $(first).focus(); 1317 } else if ($focusables.index(active) === -1) { 1318 // Focus is currently outside the dialog (e.g. on <body> after an auto-open) â pull it in. 1319 event.preventDefault(); 1320 $(first).focus(); 1321 } 1322 } 1323 }); 1324 }); 1325 1326})(); 1327</script>
1327 1328 1329<div id="popup-overlay_p_lt_zoneTop_rpWebpart_PopUp_PopUpWindow" class="popup-overlay"></div> 1330<div id="p_lt_zoneTop_rpWebpart_PopUp_PopUpWindow" class="popUpWindowLightBox"> 1331 <div id="popUpWindowDialog_p_lt_zoneTop_rpWebpart_PopUp_PopUpWindow" class="popUpWindowDialog" role="dialog" aria-modal="true" aria-labelledby="popUpWindowHeader_p_lt_zoneTop_rpWebpart_PopUp_PopUpWindow"><div id="popUpWindowHeader_p_lt_zoneTop_rpWebpart_PopUp_PopUpWindow" class="popUpWindowHeader"><center>Autumn Is Calling You!<center></center></center></div><div id="divCloseButton_p_lt_zoneTop_rpWebpart_PopUp_PopUpWindow" class="divCloseButton"><button id="popBtnClose_p_lt_zoneTop_rpWebpart_PopUp_PopUpWindow" class="popBtnClose" onclick="RpPopUp['p_lt_zoneTop_rpWebpart_PopUp_PopUpWindow'].hideDialog()" aria-label="Close Window" tabindex="0" type="button">Close</button></div><div id="popUpWindowText_p_lt_zoneTop_rpWebpart_PopUp_PopUpWindow" class="popUpWindowText"><h2 style="text-align: center;"><span style="font-size: 24px;"><b>Up to $1000 Gift Card on Select Units!</b></span></h2><h2 style="text-align: center;"><span style="font-size: 14px;"><i style="">Minimum term required. Restrictions Apply </i></span></h2><p class="MsoListParagraph"><span style="color: rgb(68, 68, 68); background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial;"><o:p></o:p></span></p></div></div> 1332</div> 1333 1334 1335 1336<a href="/floor-plans.aspx" target="_self" class="btn btn-primary cta-header-btn">Availability</a> 1337 1338 <!-- header --> 1339 <header id="headerIntersect"> 1340 <!-- logo and nav --> 1341 <nav class="navbar" role="navigation"> 1342 <div class="navbar-header"> 1343 <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#top-nav"> 1344 <span class="sr-only">Menu</span> 1345 <span class="icon-bar"></span> 1346 <span class="icon-bar"></span> 1347 <span class="icon-bar"></span> 1348 </button> 1349 1350 <a href="/" class="logo"><span><img id="p_lt_logo_logo_ucEditableImage_imgImage" title="Boardwalk Research" src="https://capi.myleasestar.com/v2/dimg-crop/57167823/0x200/57167823.jpg" alt="Boardwalk Research" /> 1351 1352</span></a>
1352<script type="text/javascript"> 1353 var logoOrientation = 'null'; 1354 $('header').addClass(logoOrientation); 1355</script>
1355 1356 <div class="phone-wrapper"> 1357<a class="seo-number" href="tel:(210) 880-2115" onclick="f_analyticsSendEvent('general', 'click-phone-number', '(210) 880-2115')">(210) 880-2115</a></div> 1358 </div> 1359 1360 <div class="collapse navbar-collapse" id="top-nav"> 1361 <div class="navbar-close-bar"> 1362 <div class="pull-right"> 1363 1364 <a class="btn btn-primary" href="http://maps.google.com/?q=5503 Research, San Antonio, TX 78240" target="_blank">View on Google</a> 1365 </div> 1366 <div class="navbar-close" data-toggle="collapse" data-target="#top-nav" role="button" tabindex="0" aria-label="Close menu" onkeydown="if(event.key==='Enter'||event.key===' '){event.preventDefault();this.click();}"><i class="fa fa-times" aria-hidden="true"></i></div> 1367 1368 </div> 1369 1370 <ul id="menuElem" class="nav navbar-nav CMSListMenuUL"> 1371 <li class="nav navbar-nav CMSListMenuLI"> 1372 <a title="Home" class="nav navbar-nav CMSListMenuLink" href="/">Home</a> 1373 </li> 1374 <li class="floor-plans"> 1375 <a title="Floor Plans" class="nav navbar-nav CMSListMenuLink" href="/Floor-plans.aspx">Floor Plans</a> 1376 </li> 1377 <li class="active amenities"> 1378 <a title="Features" class="nav navbar-nav CMSListMenuLinkHighlighted" href="/Amenities.aspx">Features</a> 1379 </li> 1380 <li class="gallery"> 1381 <a title="Gallery" class="nav navbar-nav CMSListMenuLink" href="/Gallery.aspx">Gallery</a> 1382 </li> 1383 <li class="neighborhood"> 1384 <a title="Location" class="nav navbar-nav CMSListMenuLink" href="/Neighborhood.aspx">Location</a> 1385 </li> 1386 <li class="contact"> 1387 <a title="Contact" class="nav navbar-nav CMSListMenuLink" href="/Contact.aspx">Contact</a> 1388 </li> 1389 <li class="nav navbar-nav CMSListMenuLI"> 1390 <a title="Specials" class="nav navbar-nav CMSListMenuLink" href="/Specials.aspx">Specials</a> 1391 </li> 1392 <li class="AdhocBlank-V2-Standard"> 1393 <a title="Accessibility Statement" class="nav navbar-nav CMSListMenuLink" href="/accessibility-statement.aspx">Accessibility Statement</a> 1394 </li> 1395 <li class="AdhocBlank-V2-Standard"> 1396 <a title="FAQ" class="nav navbar-nav CMSListMenuLink" href="/faq.aspx">FAQ</a> 1397 </li> 1398 1399 </ul> 1400 1401 1402<h4 class="social-header">Follow Us On</h4><div id="p_lt_zoneMenu_rpWebpartSocialMedia1_pnlSocialNetworks" class="social_media"> 1403 <ul class="social-list" style="list-style:none;margin:0;padding:0;"><li style="display:inline-block;"><a href="https://www.facebook.com/Boardwalk-Research-1480049805602310/" class="facebook" title="" target="_blank" rel="noopener noreferrer" onclick="f_analyticsSendEvent('social', 'click-facebook-icon', 'https://www.facebook.com/Boardwalk-Research-1480049805602310/')" role="button" aria-label="facebook (opens in a new tab)"> 1404 <em class="sicon-facebook" aria-hidden="true"></em></a></li><li style="display:inline-block;"><a href="https://www.apartmentratings.com/tx/san-antonio/boardwalk-research-luxury-apartments_9199332346275160355/" class="apartmentratingscom" title="" target="_blank" rel="noopener noreferrer" onclick="f_analyticsSendEvent('social', 'click-apartmentratingscom-icon', 'https://www.apartmentratings.com/tx/san-antonio/boardwalk-research-luxury-apartments_9199332346275160355/')" role="button" aria-label="apartmentratingscom (opens in a new tab)"> 1405 <em class="sicon-apartmentratingscom" aria-hidden="true"></em></a></li><li style="display:inline-block;"><a href="https://www.yelp.com/biz/boardwalk-research-luxury-apartments-san-antonio" class="yelp" title="" target="_blank" rel="noopener noreferrer" onclick="f_analyticsSendEvent('social', 'click-yelp-icon', 'https://www.yelp.com/biz/boardwalk-research-luxury-apartments-san-antonio')" role="button" aria-label="yelp (opens in a new tab)"> 1406 <em class="sicon-yelp" aria-hidden="true"></em></a></li><li style="display:inline-block;"><a href="https://www.instagram.com/boardwalk_research_apartments/" class="instagram" title="" target="_blank" rel="noopener noreferrer" onclick="f_analyticsSendEvent('social', 'click-instagram-icon', 'https://www.instagram.com/boardwalk_research_apartments/')" role="button" aria-label="instagram (opens in a new tab)"> 1407 <em class="sicon-instagram" aria-hidden="true"></em></a></li></ul> 1408</div> 1409 </div> 1410 </nav> 1411 </header> 1412 1413 <!-- body --> 1414 <main id="main-content" tabindex="-1"> 1415 <div id="" class="page page-Features"><!-- body_include --> 1416 1417
1418<script type="text/javascript" src="//cdn.callrail.com/companies/308124841/463d6626ea4f5a86983c/12/swap.js"></script>
1418 1419 1420 1421 1422<div id="hiddenBannerImg" data-llclass="ll-img" class="banner hidden-page-banner"> 1423</div> 1424 1425<!-- banner --> 1426<div class="banner" style="background-image: url(https://capi.myleasestar.com/v2/dimg/70610184/1920x1200/70610184.jpg)"> 1427 <div class="row"></div> 1428</div> 1429 1430<div class="banner page-title"> 1431 <div class="row"> 1432 <div class="container-fluid"> 1433 <div class="col-sm-12 content"> 1434 <h1>Amenities</h1> 1435 </div> 1436 </div> 1437 </div> 1438</div> 1439 1440<!-- page --> 1441<div class="container-fluid main"> 1442 1443
1444<script type="text/javascript"> 1445 var amenitiesLimit = 10; 1446 var unitAmenityExists = 'False'; 1447 var inSelectUnitsText = '<span>*</span> In select units'; 1448 var stackedAmenitiesLazyLoad = 'False'; 1449 1450 $(document).ready(function () { 1451 $('.stacked-amenities-close').css({ visibility: 'hidden', opacity: 0 }); 1452 $('.stacked-amenities-show').show(); 1453 1454 if (unitAmenityExists.toLowerCase() == 'true') { 1455 $('<div class="select-units-only">' + inSelectUnitsText + '</div>').insertAfter('.stacked-apt-amenities.stacked-amenities-right .amenities-list'); 1456 f_unitLabelShowHide(); 1457 } 1458 1459 $('.stacked-amenities-show').click(function (e) { 1460 $(this).hide(); 1461 $(this).parent().find('.stacked-amenities-close').css({ visibility: 'visible', opacity: 1 }); 1462 $(this).parent().find('li').show(); 1463 $(this).parent().parent().parent().addClass('open'); 1464 f_unitLabelShowHide(); 1465 }); 1466 1467 $('.stacked-amenities-close').click(function (e) { 1468 $(this).css({ visibility: 'hidden', opacity: 0 }); 1469 $(this).parent().find('li').each(function (i, v) { 1470 if (i + 1 > amenitiesLimit) { 1471 $(this).hide(); 1472 } 1473 }); 1474 $(this).parent().parent().parent().removeClass('open'); 1475 $(this).parent().find('.stacked-amenities-show').show(); 1476 f_unitLabelShowHide(); 1477 }); 1478 1479 $('.stacked-amenities-image').each(function () { 1480 if (stackedAmenitiesLazyLoad.toLowerCase() == 'true' && navigator.userAgent.toLocaleLowerCase().indexOf('safari') == -1) { 1481 if ($('#CommunityAmenities [data-src]').length > 0) { 1482 f_intersectCheckBgImage('#CommunityAmenities'); 1483 $('.stacked-amenities-close').trigger('click'); 1484 } 1485 if ($('#ApartmentAmenities [data-src]').length > 0) { 1486 f_intersectCheckBgImage('#ApartmentAmenities'); 1487 $('.stacked-amenities-close').trigger('click'); 1488 } 1489 } else { 1490 $(this).css('background-image', 'url(' + $(this).data('src') + ')'); 1491 } 1492 if ($(this).css('background-image') == 'none' && $(this).data('src').length == 0) { 1493 $(this).parent().find('.stacked-amenities-show').hide(); 1494 $(this).parent().find('li').show(); 1495 $(this).parent().parent().addClass('open'); 1496 } 1497 }); 1498 1499 $('.fancybox-button').fancybox({ 1500 fullScreen: { 1501 autoStart: false 1502 }, 1503 thumbs: { 1504 autoStart: false, 1505 hideOnClose: true 1506 }, 1507 smallBtn: "auto", 1508 afterLoad : function(instance, current) { 1509 var pixelRatio = window.devicePixelRatio || 1; 1510 1511 if ( pixelRatio > 1.5 ) { 1512 current.width = current.width / pixelRatio; 1513 current.height = current.height / pixelRatio; 1514 } 1515 } 1516 }); 1517 }); 1518 1519 function f_unitLabelShowHide() { 1520 $('.select-units-only').hide(); 1521 $('.stacked-amenities-right .amenities-list li:visible').each(function() { 1522 if ($(this).text().indexOf('*') > -1) { 1523 $('.select-units-only').show(); 1524 return false; 1525 } 1526 }); 1527 } 1528</script>
1528 1529<div id="p_lt_zoneBody_pageplaceholder_p_lt_zoneMain_rpWebpart_AmenitiesStacked_pnlAmenitiesStacked" class="amenities-stacked-container"> 1530 1531 1532 <div id="CommunityAmenities" class="amenities-wrapper" aria-hidden="false"><div class="row community-amenities-callout-container"> 1533 <div class="col-sm-8 col-sm-offset-2 col-xs-10 col-xs-offset-1 community-amenities-callout callout"><h3>Community Amenities</h3><p><h2>Explore Luxury San Antonio Apartment Amenities</h2> 1534 1535Unrivaled community amenities elevate the allure of our pet-friendly apartments in San Antonio, TX, including a fitness center with exercise classes through Fitness on Demand and machines with individual TVs. After enjoying the fitness center, cool down in the resort-inspired infinity pool, or use the outdoor chef station to host a cookout. In addition to these extras, our perfect location in San Antonioâs medical center neighborhood has easy access to shops and restaurants at The RIM. Learn more about our luxury apartments in San Antonio, TX and schedule a tour at Boardwalk Research today.</p></div> 1536 </div> 1537 <div class="stacked-amenities stacked-comm-amenities"> 1538 <div class="stacked-amenities-wrapper" aria-hidden="false"> 1539 <div class="stacked-amenities-image" aria-role="img" aria-label="Community Amenities Image" data-src="https://capi.myleasestar.com/v2/dimg-crop/57167829/1200x0/57167829.jpg"><span style="font-size:0">Community Amenities Image</span></div> 1540 <div class="stacked-amenities-items"> 1541 <button class="stacked-amenities-close" aria-label="Close" type="button"> 1542 <em class="fa fa-times" aria-hidden="true"></em> 1543 <span>Close</span> 1544 </button><ul class="amenities-list horizontal"><li>Gated Community</li><li>Stand-Up Tanning Beds</li><li>Private Cabanas Available at Pool</li><li>Executive Business Center iLounge</li><li>Covered Outdoor Fireplace Lounge</li><li>Outdoor California Style Chef Station</li><li>Off-Leash Bark Park & Washing Station</li><li>Detached Garages & Carpots Available</li><li>State-of-the-Art Fitness Center with Individual TV's</li><li>Multiple Picnic & BBQ Areas throughout Community</li><li style="display: none;">Spinning & Yoga Classes Offered through Fitness & Demand</li><li style="display: none;">Resort Style Negative Edge Swimming Pool with Fire Features</li></ul><button class="stacked-amenities-show" type="button" aria-label="Expands community amenities list">Show All</button> </div> 1545 </div> 1546 </div> 1547 </div> 1548 <div id="ApartmentAmenities" class="amenities-wrapper"> 1549 <div class="row apartment-amenities-callout-container"><div class="col-sm-8 col-sm-offset-2 col-xs-10 col-xs-offset-1 apartment-amenities-callout callout"><h3>Apartment Amenities</h3><p> Upgrade your lifestyle at our luxury apartments in the Medical Center area of San Antonio, a community distinguished by its impressive attention to detail. With high-quality finishes such as stainless steel farm sinks and sleek granite countertops, each apartment elegantly blends the simple pleasures of a comfortable home with chic design. Beyond the kitchen, garden-style bathtubs, hardwood-style flooring and a full-size washer and dryer set add to the sophistication of each apartment. Based on your floor plan selection, your home may also include a private yard, perfect for pets. </p></div> 1550 </div> 1551 <div class="stacked-amenities stacked-apt-amenities stacked-amenities-right"> 1552 <div class="stacked-amenities-wrapper" aria-hidden="false"> 1553 <div class="stacked-amenities-image" aria-role="img" aria-label="Apartment Amenities Image" data-src="https://capi.myleasestar.com/v2/dimg-crop/70610187/1200x0/70610187.jpg"><span style="font-size:0">Apartment Amenities Image</span></div> 1554 <div class="stacked-amenities-items"> 1555 <button class="stacked-amenities-close" aria-label="Close" type="button"> 1556 <em class="fa fa-times" aria-hidden="true"></em>
1557 <span>Close</span> 1558 </button><ul class="amenities-list horizontal"></ul></div> 1559 </div> 1560 </div> 1561 </div> 1562 <div id="PetPolicies" class="amenities-wrapper" aria-hidden="false"><div class="row pet-policies-callout-container"> 1563 <div class="col-sm-8 col-sm-offset-2 col-xs-10 col-xs-offset-1 pet-policies-callout callout"><h3>Pet And Parking Policies</h3><p></p></div> 1564 </div> 1565 <div class="stacked-amenities stacked-amenities-double"> 1566 <div class="stacked-amenities-wrapper" aria-hidden="false"> 1567 <div class="stacked-amenities-items"> 1568 <ul class="pet-list"> 1569 <li class="pet-item"> 1570 Pet Policy Type: 1571 <strong>Cat, Dogs</strong> 1572 </li> 1573 <li class="pet-item"> 1574 Max Number of Pets: 1575 <strong>2</strong> 1576 </li> 1577 <li class="pet-item"> 1578 Max weight of pets: 1579 <strong>50</strong> 1580 </li> 1581 <li class="pet-item">Pet deposit fee min: 1582 <strong>$300</strong> 1583 </li> 1584 <li class="pet-item"> 1585 Pet monthly rent min: 1586 <strong>$20</strong> 1587 </li> 1588 <li class="pet-item">Pet policy fee min: 1589 <strong>$300</strong> 1590 </li> 1591 <li class="pet-item"> 1592 Pet policy: 1593 <strong>We welcome 2 pets per apartment home. There is a $300 pet deposit per pet, $300 Non refundable pet fee per pet. Monthly pet rent $20 per month. Aggressive breeds are prohibited.</strong> 1594 </li></ul> 1595 </div><div class="stacked-amenities-items"><ul class="parking-list"><li class="parking-item parking-comment">Parking Comment: <strong>Detached Garages and Carports Available</strong></li><li class="parking-flex-wrapper-item"><div class="parking-flex-wrapper"><div class="parking-detail-list"><ul class="parking-details"><li class="parking-item">Parking Type: <strong>Other</strong></li><li class="parking-item">Parking Allocation: <strong>some</strong></li><li class="parking-item">Assigned Parking: <strong>No</strong></li></ul></div></div></li></ul></div> 1596 </div> 1597 </div> 1598 </div> 1599</div> 1600</div> 1601 1602</div> 1603 </main> 1604 1605 <!-- footer --> 1606 1607 1608
1609<script type="text/javascript"> 1610 //Google Maps Lazyloading 1611 let lazyLoadedFooter = false; 1612 1613 $(document).on("ready", function () { 1614 let script = document.createElement('script') 1615 1616 //Register Event Listeners so we can look for the widget container 1617 smRegisterListener('load', smLazyLoad); 1618 smRegisterListener('scroll', smLazyLoad); 1619 smRegisterListener('resize', smLazyLoad); 1620 1621 //Load the map script if the widget is in the view port 1622 function smLazyLoad() { 1623 if (document.getElementById("footer-map") && smIsInViewport(document.getElementById("footer-map")) && lazyLoadedFooter === false) { 1624 $('.footer-widget__loader').show(); 1625 lazyLoadedFooter = true; 1626 // adds the script tag to the document 1627 if (document.getElementsByTagName('body')[0]) { 1628 document.getElementsByTagName('body')[0].appendChild(script) 1629 } else { 1630 document.getElementsByTagName('html')[0].appendChild(script) 1631 } 1632 1633 // baseline config for script tag 1634 script.src = 'https://maps.googleapis.com/maps/api/js?key=AIzaSyDS1oKsJ_hSSZqIslqkR4EdK1VndKUOPYM&libraries=places,geometry' 1635 script.async = true 1636 script.defer = true 1637 1638 //after the google map script has loaded we can call the widget script 1639 script.onload = function () { 1640 loadFooterMap(); 1641 $('.footer-widget__loader').hide('slow'); 1642 } 1643 } 1644 } 1645 //check if the widget is in the view port 1646 function smIsInViewport(el) { 1647 var rect = el.getBoundingClientRect(); 1648 return ( 1649 rect.bottom >= 0 && 1650 rect.right >= 0 && 1651 rect.top <= (window.innerHeight || document.documentElement. 1652 clientHeight) && 1653 rect.left <= (window.innerWidth || document.documentElement. 1654 clientWidth) 1655 ); 1656 } 1657 //This is where our event listeners are being created 1658 function smRegisterListener(event, func) { 1659 if (window.addEventListener) { 1660 if (event == 'resize') { 1661 window.addEventListener(event, smDebounce(func)); 1662 } else if (event == 'scroll') { 1663 window.addEventListener(event, smThrottle(func, 500)); 1664 } else { 1665 window.addEventListener(event, func) 1666 } 1667 } else { 1668 window.attachEvent('on' + event, func) 1669 } 1670 } 1671 function smDebounce(func) { 1672 var timer; 1673 return function (event) { 1674 if (timer) clearTimeout(timer); 1675 timer = setTimeout(func, 0, event); 1676 }; 1677 } 1678 function smThrottle(func, wait) { 1679 var time = Date.now(); 1680 return function () { 1681 if ((time + wait - Date.now()) < 0) { 1682 func(); 1683 time = Date.now(); 1684 } 1685 } 1686 } 1687 }); 1688 //End Google Maps Lazyloading 1689 1690 1691 var footerMap; 1692 function loadFooterMap() { 1693 $(function () { 1694 initFooterMap(); 1695 }); 1696 }; 1697 1698 //Initialize Footer Google Map 1699 function initFooterMap() { 1700 origin = new google.maps.LatLng(latitude, longitude); 1701 1702 var stylesObj = [{elementType: 'geometry', 1703 stylers: [{ color: '#f5f5f5' }] 1704 }, 1705 { 1706 elementType: 'labels.icon', 1707 stylers: [{ visibility: 'off' }] 1708 }, 1709 { 1710 elementType: 'labels.text.fill', 1711 stylers: [{ color: '#616161' }] 1712 }, 1713 { 1714 elementType: 'labels.text.stroke', 1715 stylers: [{ color: '#f5f5f5' }] 1716 }, 1717 { 1718 featureType: 'administrative.land_parcel', 1719 elementType: 'labels.text.fill', 1720 stylers: [{ color: '#bdbdbd' }
1720] 1721 }, 1722 { 1723 featureType: 'poi', 1724 elementType: 'geometry', 1725 stylers: [{ color: '#eeeeee' }] 1726 }, 1727 { 1728 featureType: 'poi', 1729 elementType: 'labels.text.fill', 1730 stylers: [{ color: '#757575' }] 1731 }, 1732 { 1733 featureType: 'poi.park', 1734 elementType: 'geometry', 1735 stylers: [{ color: '#e5e5e5' }] 1736 }, 1737 { 1738 featureType: 'poi.park', 1739 elementType: 'labels.text.fill', 1740 stylers: [{ color: '#9e9e9e' }] 1741 }, 1742 { 1743 featureType: 'road', 1744 elementType: 'geometry', 1745 stylers: [{ color: '#ffffff' }] 1746 }, 1747 { 1748 featureType: 'road.arterial', 1749 elementType: 'labels.text.fill', 1750 stylers: [{ color: '#757575' }] 1751 }, 1752 { 1753 featureType: 'road.highway', 1754 elementType: 'geometry', 1755 stylers: [{ color: '#dadada' }] 1756 }, 1757 { 1758 featureType: 'road.highway', 1759 elementType: 'labels.text.fill', 1760 stylers: [{ color: '#616161' }] 1761 }, 1762 { 1763 featureType: 'road.local', 1764 elementType: 'labels.text.fill', 1765 stylers: [{ color: '#9e9e9e' }] 1766 }, 1767 { 1768 featureType: 'transit.line', 1769 elementType: 'geometry', 1770 stylers: [{ color: '#e5e5e5' }] 1771 }, 1772 { 1773 featureType: 'transit.station', 1774 elementType: 'geometry', 1775 stylers: [{ color: '#eeeeee' }] 1776 }, 1777 { 1778 featureType: 'water', 1779 elementType: 'geometry', 1780 stylers: [{ color: '#c9c9c9' }] 1781 }, 1782 { 1783 featureType: 'water', 1784 elementType: 'labels.text.fill', 1785 stylers: [{ color: '#9e9e9e' }] 1786 } 1787 ]; 1788 1789 footerMap = new google.maps.Map(document.getElementById('footer-map'), { 1790 scrollwheel: false, 1791 center: origin, 1792 zoom: 16, 1793 mapTypeControl: false, 1794 keyboardShortcuts: false, 1795 clickableIcons: false 1796 }); 1797 1798 footerMap.setOptions({ styles: stylesObj }); 1799 1800 var markerIcon = { 1801 path: 'M54.549,17.947c-12.314,0-22.332,10.02-22.332,22.334c0,11.854,20.262,39.548,21.125,40.721l0.805,1.096,c0.094,0.129,0.244,0.204,0.402,0.204c0.16,0,0.309-0.075,0.404-0.204l0.805-1.096c0.863-1.173,21.125-28.867,21.125-40.721,C76.883,27.967,66.863,17.947,54.549,17.947z M54.549,32.281c4.412,0,8,3.588,8,8c0,4.41-3.588,8-8,8c-4.41,0-8-3.59-8-8,C46.549,35.869,50.139,32.281,54.549,32.281z', 1802 fillColor: '#' + '616161', 1803 fillOpacity: 1, 1804 scale: 1, 1805 strokeWeight: 0, 1806 anchor: new google.maps.Point(55, 80) 1807 }; 1808 1809 var marker = new google.maps.Marker({ 1810 position: origin, 1811 map: footerMap, 1812 icon: markerIcon, 1813 geometry: { 1814 location: origin 1815 }, 1816 name: name, 1817 vicinity: addressLine1, 1818 addressState: addressState, 1819 addressPostalCode: addressPostalCode, 1820 phonesNumber: phonesNumber, 1821 website: website, 1822 city: city 1823 }); 1824 1825 var center; 1826 1827 function calculateCenter() { 1828 center = footerMap.getCenter(); 1829 } 1830 1831 google.maps.event.addDomListener(footerMap, 'idle', function () { 1832 calculateCenter(); 1833 }); 1834 google.maps.event.addDomListener(window, 'resize', function () { 1835 footerMap.setCenter(center); 1836 }); 1837 } 1838 //End Initialize Footer Google Map 1839</script>
1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853<div id="p_lt_zoneFooter_Footer_pnlFooter7" class="widget footer-widget"> 1854 1855 <footer class="footer-7"> 1856 <div class="footer-content"> 1857 <div class="footer-container"> 1858 <div class="footer-top"> 1859 <div class="footer-top-column footer-top-column-1"> 1860 <div class="footer-property-logo"> 1861 <div class="footer-logo footer-property-logo" title="Boardwalk Research"><a href="/"><img src="https://capi.myleasestar.com/v2/dimg/57167823/400x400/57167823.jpg" alt="Boardwalk Research" /></a></div> 1862 </div> 1863 <div class="footer-follow"> 1864 <ul class="footer-social"><li><a href="https://www.facebook.com/Boardwalk-Research-1480049805602310/" class="facebook" title="" target="_blank" rel="noopener noreferrer" onclick="f_analyticsSendEvent('social', 'click-facebook-icon', 'https://www.facebook.com/Boardwalk-Research-1480049805602310/')" role="button" aria-label="facebook (opens in a new tab)"><i class="fa fa-facebook" aria-hidden="true"></i></a></li><li><a href="https://www.apartmentratings.com/tx/san-antonio/boardwalk-research-luxury-apartments_9199332346275160355/" class="apartmentratingscom" title="" target="_blank" rel="noopener noreferrer" onclick="f_analyticsSendEvent('social', 'click-apartmentratingscom-icon', 'https://www.apartmentratings.com/tx/san-antonio/boardwalk-research-luxury-apartments_9199332346275160355/')" role="button" aria-label="apartmentratingscom (opens in a new tab)"><i class="fa fa-apartmentratingscom" aria-hidden="true"></i></a></li><li><a href="https://www.yelp.com/biz/boardwalk-research-luxury-apartments-san-antonio" class="yelp" title="" target="_blank" rel="noopener noreferrer" onclick="f_analyticsSendEvent('social', 'click-yelp-icon', 'https://www.yelp.com/biz/boardwalk-research-luxury-apartments-san-antonio')" role="button" aria-label="yelp (opens in a new tab)"><i class="fa fa-yelp" aria-hidden="true"></i></a></li><li><a href="https://www.instagram.com/boardwalk_research_apartments/" class="instagram" title="" target="_blank" rel="noopener noreferrer" onclick="f_analyticsSendEvent('social', 'click-instagram-icon', 'https://www.instagram.com/boardwalk_research_apartments/')" role="button" aria-label="instagram (opens in a new tab)"><i class="fa fa-instagram" aria-hidden="true"></i></a></li></ul> 1865 </div> 1866 1867 <div class="footer-resident-link"> 1868 <div class="footer-resident-icon"> 1869 <em class="fa fa-user" aria-hidden="true"></em> 1870 </div> 1871 <a href="https://boardwalkresearch.activebuilding.com">Resident Portal</a> 1872 </div> 1873 1874 </div> 1875 <div class="footer-top-column footer-top-column-2"> 1876 <div class="footer-phone footer-column-2-content"> 1877 <div class="footer-phone-icon footer-icon"> 1878 <em class="fa fa-phone" aria-hidden="true"></em> 1879 </div> 1880 <div class="footer-phone-content"> 1881 1882 <a href="tel:(210) 880-2115" data-phone="(210) 880-2115" class="footer-phone seo-number" onclick="f_analyticsSendEvent('general', 'click-phone-number', '(210) 880-2115')"> 1883 <span>(210) 880-2115</span> 1884 </a> 1885 1886 </div> 1887 </div> 1888 <div class="footer-address footer-column-2-content"> 1889 <div class="footer-address-icon footer-icon"> 1890 <em class="fa fa-map-marker" aria-hidden="true"></em> 1891 </div> 1892 <div class="footer-address-content"> 1893 5503 Research<br /> 1894 San Antonio, TX 78240 1895 <a href="http://maps.google.com/?q=5503 Research, San Antonio, TX 78240">Directions</a> 1896 </div> 1897 </div> 1898 <div class="footer-office-hours footer-column-2-content"> 1899 <div class="footer-office-hours-icon footer-icon"> 1900 <em class="fa fa-clock-o" aria-hidden="true"></em> 1901 </div> 1902 <div class="footer-office-hours-content"> 1903 <ul class="office-hours"><li><span class="office-hours-day">Monday:</span><span class="office-hours-time"> 9:00AM to 6:00PM</span></li><li><span class="office-hours-day">Tuesday:</span><span class="office-hours-time"> 9:00AM to 6:00PM</span></li><li><span class="office-hours-day">Wednesday:</span><span class="office-hours-time"> 9:00AM to 6:00PM</span></li><li><span class="office-hours-day">Thursday:</span><span class="office-hours-time"> 9:00AM to 6:00PM</span></li><li><span class="office-hours-day">Friday:</span><span class="office-hours-time"> 9:00AM to 6:00PM</span></li><li><span class="office-hours-day">Saturday:</span><span class="office-hours-time"> 10:00AM to 5:00PM</span></li><li><span class="office-hours-day">Sunday:</span><span class="office-hours-time office-hours-time-text"> Closed</span></li></ul> 1904 </div> 1905 </div> 1906 <div class="footer-optional-text"> 1907 1908 </div> 1909 </div> 1910 <div class="footer-top-column footer-top-column-3"> 1911 <div class="footer-menu"> 1912 <nav class="footer-nav"> 1913 1914 <ul id="footerNav7" class="CMSListMenuUL"> 1915 <li class="CMSListMenuLI"> 1916 <a class="CMSListMenuLink" href="/">Home</a> 1917 </li> 1918 <li class="floor-plans"> 1919 <a class="CMSListMenuLink" href="/Floor-plans.aspx">Floor Plans</a> 1920 </li> 1921 <li class="active amenities"> 1922 <a class="CMSListMenuLinkHighlighted" href="/Amenities.aspx">Features</a> 1923 </li> 1924 <li class="gallery"> 1925 <a class="CMSListMenuLink" href="/Gallery.aspx">Gallery</a> 1926 </li> 1927 <li class="neighborhood"> 1928 <a class="CMSListMenuLink" href="/Neighborhood.aspx">Location</a> 1929 </li> 1930 <li class="contact"> 1931 <a class="CMSListMenuLink" href="/Contact.aspx">Contact</a> 1932 </li> 1933 <li class="CMSListMenuLI"> 1934 <a class="CMSListMenuLink" href="/Specials.aspx">Specials</a> 1935 </li> 1936 <li class="AdhocBlank-V2-Standard"> 1937 <a class="CMSListMenuLink" href="/accessibility-statement.aspx">Accessibility Statement</a> 1938 </li> 1939 <li class="AdhocBlank-V2-Standard"> 1940 <a class="CMSListMenuLink" href="/faq.aspx">FAQ</a> 1941 </li> 1942 1943 </ul> 1944 1945 1946 </nav> 1947 </div> 1948 </div> 1949 </div> 1950 <div class="footer-bottom"> 1951 <div class="footer-bottom-row footer-bottom-row-1"> 1952 <div class="footer-logos"> 1953 <div class="footer-logo footer-pmclogo" title="Greystar logo and Greystar website"><a href="https://www.greystar.com" target="_blank" rel="noopener noreferrer"><img src="https://capi.myleasestar.com/v2/dimg/66474580/400x400/66474580.png" alt="View Greystar website" /><span class="sr-only"> (opens in a new tab)</span></a></div> 1954 1955 1956 </div> 1957 <div class="footer-icons"> 1958 <div id="ada-hud-links"> 1959 1960 <a title="Equal Housing Opportunity and Greystar Fair Housing Statement" id="link-hud" href="https://www.greystar.com/fair-housing-statement" target="_blank" rel="noopener noreferrer" aria-label="Equal Housing Opportunity and Greystar Fair Housing Statement (opens in a new tab)"><svg data-name="housingSVG" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 539.2 515.23"><g fill-rule="evenodd"><path d="M61.89 421.07h-21.1v8.36h19.38v7.05H40.79v10.26h22.03v7.05H32.66v-39.75h29.23v7.03zM88.56 442.98l4 3.75a9.67 9.67 0 0 1-4.48 1.06c-4.49 0-10.8-2.76-10.8-13.89s6.32-13.89 10.8-13.89 10.79 2.78 10.79 13.9a17.78 17.78 0 0 1-1.82 8.54l-4.18-3.93-4.26 4.46zm18.77 9.17l-4.33-4.07c2.44-3.1 4.16-7.64 4.16-14.18 0-18.65-13.84-20.92-19.1-20.92s-19.09 2.26-19.09 20.92 13.84 20.92 19.09 20.92a20.52 20.52 0 0 0 10.18-2.67l4.71 4.49 4.37-4.49zM146.24 439.9c0 10.44-6.32 14.94-16.34 14.94-3.65 0-9.07-.88-12.62-4.81-2.15-2.42-3-5.66-3.09-9.63v-26.36h8.47v25.78c0 5.56 3.21 8 7.08 8 5.71 0 8-2.76 8-7.59v-26.19h8.48v25.85zM168.48 423.01h.12l4.92 15.72h-10.14l5.1-15.72zm-7.32 22.56h14.71l2.55 8.21h9l-14-39.75h-9.55l-14.17 39.75h8.75l2.76-8.21zM202.19 446.59h19.76v7.2h-28.07v-39.75h8.31v32.55zM253.44 435.95v17.84h-8.29v-39.75h8.29v15.05h15.5v-15.05h8.29v39.75h-8.29v-17.84h-15.5zM293.05 433.91c0-11.12 6.32-13.89 10.79-13.89s10.81 2.76 10.81 13.89-6.31 13.89-10.81 13.89-10.79-2.76-10.79-13.89zm-8.29 0c0 18.66 13.85 20.92 19.08 20.92s19.12-2.26 19.12-20.92S309.12 413 303.87 413s-19.08 2.26-19.08 20.92zM362.59 439.9c0 10.44-6.32 14.94-16.34 14.94-3.65 0-9.06-.88-12.62-4.81-2.16-2.42-3-5.66-3.09-9.63v-26.36H339v25.78c0 5.56 3.22 8 7.1 8 5.7 0 8-2.76 8-7.59v-26.19h8.47v25.85zM377.79 441.55c.
196007 2.21 1.19 6.42 8.43 6.42 3.93 0 8.31-.94 8.31-5.17 0-3.08-3-3.92-7.19-4.92l-4.27-1c-6.44-1.49-12.64-2.91-12.64-11.66 0-4.43 2.39-12.24 15.29-12.24 12.18 0 15.45 8 15.51 12.84h-8c-.22-1.76-.88-6-8.13-6-3.15 0-6.92 1.16-6.92 4.76 0 3.12 2.55 3.75 4.2 4.14l9.69 2.38c5.43 1.33 10.4 3.55 10.4 10.68 0 12-12.17 13-15.66 13-14.49 0-17-8.36-17-13.28zM417.6 453.79h-8.28v-39.75h8.28v39.75zM450.76 414.04h7.74v39.75h-8.29L434 425.44h-.14v28.35h-7.73v-39.75h8.74l15.76 27.68h.13v-27.68zM486.29 432.37h16.58v21.42h-5.53l-.83-5c-2.1 2.41-5.14 6-12.4 6-9.57 0-18.25-6.86-18.25-20.8 0-10.84 6-21.09 19.42-21 12.2 0 17 7.9 17.43 13.4h-8.29c0-1.56-2.83-6.54-8.69-6.54s-11.4 4.1-11.4 14.3c0 10.86 5.93 13.67 11.57 13.67 1.82 0 7.93-.71 9.63-8.75h-9.24v-6.69zM39.19 494.3c0-11.12 6.31-13.9 10.79-13.9s10.79 2.77 10.79 13.9-6.31 13.9-10.79 13.9-10.79-2.79-10.79-13.9zm-8.3 0c0 18.65 13.84 20.94 19.09 20.94s19.09-2.29 19.09-20.94-13.84-20.92-19.09-20.92-19.11 2.26-19.11 20.92zM91.87 492.96v-11.69h6.59c5.14 0 7.3 1.62 7.3 5.5 0 1.77 0 6.19-6.21 6.19zm0 6.87h9.51c10.69 0 12.67-9.08 12.67-12.67 0-7.8-4.64-12.73-12.34-12.73H83.53v39.72h8.34v-14.32zM136.54 492.96v-11.69h6.58c5.15 0 7.31 1.62 7.31 5.5 0 1.77 0 6.19-6.19 6.19zm0 6.87h9.52c10.68 0 12.68-9.08 12.68-12.67 0-7.8-4.64-12.73-12.34-12.73h-18.16v39.72h8.31v-14.32zM179.5 494.3c0-11.12 6.29-13.9 10.8-13.9s10.79 2.77 10.79 13.9-6.32 13.9-10.79 13.9-10.8-2.79-10.8-13.9zm-8.3 0c0 18.65 13.83 20.94 19.1 20.94s19.08-2.29 19.08-20.94-13.84-20.92-19.08-20.92-19.1 2.26-19.1 20.92zM231.97 491.92v-10.65h10.34c4.87 0 5.8 3.12 5.8 5.22 0 3.93-2.09 5.43-6.41 5.43zm-8.15 22.23h8.16v-15.54h8.56c6.15 0 6.49 2.1 6.49 7.53a26.77 26.77 0 0 0 .87 8h9.2v-1.07c-1.77-.65-1.77-2.1-1.77-7.89 0-7.45-1.77-8.65-5-10.09 3.93-1.32 6.13-5.09 6.13-9.45 0-3.44-1.93-11.24-12.5-11.24h-20.14v39.75zM287.36 514.17h-8.3v-32.71h-12.01v-7.04h32.33v7.04h-12.02v32.71zM343.93 500.26c0 10.46-6.31 15-16.33 15-3.64 0-9.06-.92-12.61-4.85-2.16-2.42-3-5.64-3.09-9.62v-26.36h8.46v25.78c0 5.54 3.22 8 7.09 8 5.7 0 8-2.79 8-7.6v-26.18h8.47v25.84zM384.11 474.42h7.76v39.75h-8.32l-16.22-28.35h-.08v28.35h-7.77v-39.75h8.74l15.79 27.68h.1v-27.68zM415.29 514.17h-8.32v-39.75h8.32v39.75zM447.7 514.17h-8.3v-32.71h-11.99v-7.04h32.31v7.04H447.7v32.71zM491.11 514.17h-8.31v-15.01l-13.72-24.74h9.79l8.25 17.28 7.87-17.28h9.4l-13.28 24.85v14.9zM267.6 0L0 131.8v61.91h30v185.71h473.23V193.71h36V131.8L267.6 0zm177.73 323.49H87.87V153.77L267.6 61.91l177.73 91.86v169.72z"></path><path d="M349.46 213.66H183.73v-59.89h165.73v59.89zM349.46 299.57H183.73v-59.94h165.73v59.94z"></path></g></svg></a> 1961 </div> 1962 <div class="additional-icons"> 1963 <div class="additional-icon smoking-icon"> 1964 1965 </div> 1966 <div class="additional-icon pet-icon"> 1967 1968 </div> 1969 </div> 1970 </div> 1971 </div> 1972 <div class="footer-bottom-row footer-bottom-row-2"> 1973 <div class="footer-copyright"> 1974 Copyright © 2026 Boardwalk Research. All Rights Reserved. 1975 </div> 1976 <div class="footer-additional-links-container"> 1977 <ul id="footerAdditionalLinks"><li class="additional-footer-link footer-link"><a href="https://www.greystar.com/disclosures-and-licenses" target="_blank" rel="noopener noreferrer" title="Local and State Disclosures and License Information">Disclosures & Licenses<span class="sr-only"> (opens in a new tab)</span></a></li><li class="additional-footer-link footer-link"><a href="https://www.greystar.com/terms-of-use#Copyright%20Infringement%20Policy" target="_blank" rel="noopener noreferrer" title="Greystar DMCA Policy">DMCA Agent<span class="sr-only"> (opens in a new tab)</span></a></li><li class="additional-footer-link footer-link"><a href="https://www.greystar.com/privacy/us-policy" target="_blank" rel="noopener noreferrer" title="Greystar Privacy Policy">Privacy Policy<span class="sr-only"> (opens in a new tab)</span></a></li><li class="additional-footer-link footer-link"><a href='https://www.greystar.com/renters-rights-resources' target='_self' title='Renters' Rights & Resources'>Renters' Rights & Resources<a></a></li><li class="additional-footer-link footer-link"><a href="/Accessibility-Statement.aspx" target="_self" title="Accessibility Statement">Accessibility Statement</a></li><li class="additional-footer-link footer-link"><a href="/site-map.aspx" target="" title="Sitemap">Sitemap</a></li></ul> 1978 </div> 1979 </div> 1980 <div class="footer-bottom-row footer-bottom-row-3"> 1981 <div class="footer-additional-logos"> 1982 1983 1984 1985 1986 </div> 1987 </div> 1988 <div class="footer-bottom-row footer-bottom-row-4"> 1989 1990 <a id="link-rp" href="https://www.realpage.com/apartment-marketing/" target="_blank" rel="noopener noreferrer" aria-label="RealPage apartment marketing (opens in a new tab)"><svg xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 338.77332 76.466667" height="76.466667" width="338.77332" xml:space="preserve" version="1.1"><metadata><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs></defs><g transform="matrix(1.3333333,0,0,-1.3333333,0,76.466667)"><g transform="scale(0.1)"><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 77.5547,545.898 H 0 V 133.203 h 250.879 v 69.492 H 77.5547 v 343.203"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 405.578,365.84 c 10.715,0 20.16,-1.77 28.067,-5.254 7.875,-3.488 14.46,-8.211 19.574,-14.055 5.105,-5.84 8.906,-12.703 11.293,-20.39 2.172,-7.032 3.383,-14.453 3.597,-22.098 H 331.738 c 1.973,17.598 9.629,32.297 22.785,43.699 13.86,12.004 31.04,18.098 51.055,18.098 z m 97.969,18.34 c -12.121,12.695 -26.66,22.39 -43.231,28.82 -16.523,6.414 -34.746,9.668 -54.164,9.668 -20.949,0 -40.726,-3.645 -58.797,-10.832 -18.109,-7.219 -33.984,-17.473 -47.183,-30.488 -13.234,-13.039 -23.785,-29.012 -31.367,-47.469 -7.575,-18.457 -11.418,-39.223 -11.418,-61.699 0,-22.875 3.843,-43.645 11.426,-61.719 7.589,-18.098 18.253,-33.598 31.699,-46.074 13.426,-12.453 29.492,-22.219 47.761,-29.016 18.262,-6.785 38.508,-10.234 60.18,-10.234 52.418,0 93,18.945 120.633,56.297 l 1.434,1.933 -50.04,40.039 -1.527,-2.215 c -7.406,-10.73 -16.988,-19.289 -28.488,-25.41 -11.477,-6.113 -25.805,-9.211 -42.59,-9.211 -9.629,0 -19.023,1.692 -27.91,5.032 -8.938,3.347 -17.031,7.957 -24.063,13.691 -7.004,5.715 -12.703,12.629 -16.937,20.555 -3.832,7.16 -6.266,15.121 -7.227,23.672 h 209.645 l 0.269,2.199 c 0.395,3.211 0.594,6.426 0.594,9.519 v 9.211 c 0,25.098 -3.441,47.371 -10.223,66.211 -6.812,18.848 -16.394,34.832 -28.476,47.52"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 732.648,259.316 h 13.047 v -7.296 c 0,-21.102 -5.965,-37.957 -17.722,-50.086 -11.746,-12.098 -29.356,-18.243 -52.336,-18.243 -5.567,0 -11.211,0.567 -16.789,1.68 -5.469,1.094 -10.438,2.938 -14.782,5.469 -4.242,2.469 -7.734,5.781 -10.39,9.863 -2.59,3.977 -3.91,9.031 -3.91,15.039 0,9.688 3.105,17.071 9.496,22.578 6.629,5.703 15.047,10.188 25.035,13.328 10.168,3.196 21.41,5.293 33.418,6.235 12.242,0.945 23.99
19906,1.433 34.933,1.433 z M 791,384.324 c -9.418,11.391 -22.422,20.735 -38.645,27.774 -16.164,7.011 -36.933,10.57 -61.746,10.57 -21.289,0 -42.589,-3.734 -63.312,-11.086 -20.762,-7.371 -39.363,-18.582 -55.281,-33.34 l -1.758,-1.633 39.004,-45.925 1.922,1.914 c 8.582,8.582 19.574,15.976 32.668,21.953 13.054,5.965 26.847,8.984 40.996,8.984 16.687,0 31.238,-4.023 43.25,-11.953 11.84,-7.852 17.597,-19.695 17.597,-36.223 v -4.402 c -20.64,-0.09 -42.047,-1.152 -63.668,-3.184 -22.554,-2.121 -43.394,-6.523 -61.929,-13.085 -18.719,-6.633 -34.258,-16.34 -46.18,-28.848 -12.109,-12.703 -18.254,-29.949 -18.254,-51.25 0,-16.516 3.516,-30.606 10.449,-41.906 6.883,-11.211 15.66,-20.387 26.09,-27.262 10.371,-6.859 21.879,-11.809 34.195,-14.738 12.239,-2.918 24.161,-4.395 35.418,-4.395 19.864,0 37.875,4.063 53.539,12.078 13.723,7.031 24.29,15.918 31.493,26.485 v -31.649 h 69.492 v 170.645 c 0,13.957 -1.871,28.117 -5.555,42.097 -3.73,14.114 -10.383,27.024 -19.785,38.379"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 927.242,359.199 c 8.828,4.403 18.715,6.641 29.399,6.641 12.172,0 23.586,-2.902 33.918,-8.613 10.401,-5.774 18.661,-12.618 24.561,-20.34 l 1.63,-2.141 48.69,43.074 -1.45,1.86 c -11.4,14.508 -26.98,25.437 -46.32,32.476 -32.44,11.797 -67.959,13.789 -100.248,5.246 -13.258,
1990-3.507 -25.336,-8.957 -35.902,-16.191 -10.637,-7.293 -19.321,-16.777 -25.805,-28.184 -6.524,-11.464 -9.832,-25.254 -9.832,-40.968 0,-13.399 2.422,-24.825 7.195,-33.973 4.766,-9.133 11.195,-16.863 19.11,-22.988 7.832,-6.082 16.871,-11.043 26.859,-14.766 9.805,-3.652 20.09,-6.691 30.527,-9.016 20.797,-4.921 36.617,-9.89 47.02,-14.793 9.691,-4.589 14.402,-11.953 14.402,-22.507 0,-5.625 -1.226,-10.403 -3.641,-14.211 -2.449,-3.836 -5.734,-6.953 -9.773,-9.239 -4.168,-2.363 -8.777,-4.113 -13.711,-5.207 -4.98,-1.109 -9.93,-1.668 -14.715,-1.668 -14.496,0 -27.855,3.196 -39.711,9.5 -11.914,6.329 -21.715,14.426 -29.132,24.075 l -1.68,2.187 -49.313,-46.191 1.676,-1.817 c 13.617,-14.804 30.988,-26.355 51.613,-34.336 20.559,-7.937 41.981,-11.972 63.664,-11.972 15.059,0 29.879,1.668 44.043,4.968 14.244,3.301 26.924,8.75 37.714,16.204 10.85,7.5 19.63,17.382 26.11,29.375 6.51,12.031 9.81,26.867 9.81,44.089 0,13.813 -2.83,25.754 -8.4,35.5 -5.53,9.676 -12.83,17.879 -21.71,24.383 -8.76,6.43 -18.65,11.684 -29.42,15.61 -10.67,3.867 -21.334,6.992 -31.662,9.285 -19.403,4.57 -34.27,9.082 -44.203,13.398 -9.254,4.004 -13.75,10.692 -13.75,20.449 0,9.817 4.066,16.614 12.437,20.801"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 1222.1,365.84 c 10.71,0 20.16,-1.77 28.06,-5.254 7.88,-3.488 14.46,-8.211 19.58,-14.055 5.1,-5.84 8.9,-12.703 11.29,-20.39 2.17,-7.032 3.38,-14.453 3.6,-22.098 h -136.37 c 1.97,17.598 9.63,32.297 22.78,43.699 13.86,12.004 31.04,18.098 51.06,18.098 z m 97.96,18.34 c -12.12,12.695 -26.66,22.39 -43.22,28.82 -16.53,6.414 -34.75,9.668 -54.17,9.668 -20.95,0 -40.73,-3.645 -58.8,-10.832 -18.1,-7.219 -33.98,-17.473 -47.18,-30.488 -13.23,-13.039 -23.78,-29.012 -31.37,-47.469 -7.57,-18.457 -11.41,-39.223 -11.41,-61.699 0,-22.875 3.84,-43.645 11.42,-61.719 7.59,-18.098 18.25,-33.598 31.7,-46.074 13.42,-12.453 29.49,-22.219 47.76,-29.016 18.26,-6.785 38.51,-10.234 60.18,-10.234 52.42,0 93,18.945 120.64,56.297 l 1.43,1.933 -50.04,40.039 -1.53,-2.215 c -7.4,-10.73 -16.99,-19.289 -28.49,-25.41 -11.47,-6.113 -25.8,-9.211 -42.59,-9.211 -9.62,0 -19.02,1.692 -27.91,5.032 -8.94,3.347 -17.03,7.957 -24.06,13.691 -7,5.715 -12.7,12.629 -16.94,20.555 -3.83,7.16 -6.26,15.121 -7.22,23.672 h 209.64 l 0.27,2.199 c 0.39,3.211 0.6,6.426 0.6,9.519 v 9.211 c 0,25.098 -3.45,47.371 -10.23,66.211 -6.81,18.848 -16.39,34.832 -28.48,47.52"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 1461.26,545.898 H 1383.7 V 133.203 h 250.88 v 69.492 h -173.32 v 343.203"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 1826.13,259.316 h 13.05 v -7.296 c 0,-21.114 -5.97,-37.957 -17.72,-50.086 -11.75,-12.098 -29.36,-18.243 -52.34,-18.243 -5.56,0 -11.21,0.567 -16.79,1.68 -5.46,1.094 -10.44,2.938 -14.78,5.469 -4.24,2.469 -7.73,5.781 -10.39,9.863 -2.59,3.977 -3.91,9.031 -3.91,15.039 0,9.688 3.11,17.071 9.5,22.578 6.63,5.703 15.04,10.188 25.03,13.328 10.17,3.196 21.41,5.293 33.42,6.235 12.24,0.945 24,1.433 34.93,1.433 z m 58.36,125.008 c -9.41,11.379 -22.41,20.727 -38.64,27.774 -16.17,7.011 -36.94,10.57 -61.75,10.57 -21.29,0 -42.6,-3.734 -63.32,-11.086 -20.76,-7.371 -39.36,-18.582 -55.28,-33.34 l -1.75,-1.633 39,-45.925 1.92,1.914 c 8.58,8.582 19.57,15.976 32.67,21.953 13.05,5.965 26.85,8.984 41,8.984 16.68,0 31.23,-4.023 43.24,-11.953 11.84,-7.844 17.6,-19.695 17.6,-36.223 v -4.402 c -20.64,-0.09 -42.05,-1.152 -63.67,-3.184 -22.55,-2.121 -43.39,-6.523 -61.93,-13.085 -18.72,-6.633 -34.25,-16.34 -46.18,-28.848 -12.11,-12.703 -18.25,-29.949 -18.25,-51.25 0,-16.516 3.52,-30.606 10.45,-41.906 6.88,-11.211 15.66,-20.387 26.09,-27.262 10.37,-6.859 21.88,-11.809 34.19,-14.738 12.24,-2.918 24.16,-4.395 35.42,-4.395 19.87,0 37.88,4.063 53.54,12.078 13.73,7.031 24.29,15.918 31.49,26.477 v -31.641 h 69.5 v 170.645 c 0,13.925 -1.87,28.093 -5.56,42.097 -3.73,14.114 -10.38,27.024 -19.78,38.379"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 2162.23,275.059 c 0,-10.43 -1.61,-21.036 -4.79,-31.512 -3.17,-10.422 -7.97,-19.848 -14.27,-28 -6.28,-8.125 -14.34,-14.871 -23.96,-20.059 -9.57,-5.144 -21,-7.765 -33.95,-7.765 -12.22,0 -23.26,2.519 -32.82,7.492 -9.65,5.008 -18.02,11.68 -24.87,19.836 -6.87,8.164 -12.14,17.488 -15.67,27.715 -3.55,10.242 -5.34,20.718 -5.34,3
19901.14 0,10.418 1.79,20.996 5.34,31.446 3.54,10.41 8.8,19.824 15.67,27.976 6.87,8.176 15.25,14.942 24.9,20.149 9.56,5.148 20.59,7.753 32.79,7.753 12.97,0 24.4,-2.519 33.98,-7.492 9.58,-4.976 17.64,-11.621 23.92,-19.746 6.31,-8.164 11.12,-17.488 14.28,-27.715 3.18,-10.3 4.79,-20.808 4.79,-31.218 z m 65.3,57.871 c -6.62,17.89 -16.08,33.664 -28.14,46.894 -12.08,13.231 -26.68,23.801 -43.41,31.399 -16.77,7.593 -35.33,11.445 -55.17,11.445 -12.86,0 -24.53,-1.488 -34.67,-4.414 -10.11,-2.922 -19.11,-6.574 -26.74,-10.879 -7.6,-4.289 -14.25,-9.055 -19.77,-14.172 -4.13,-3.84 -7.73,-7.598 -10.77,-11.23 v 191.562 h -74.1 V 133.203 h 70.66 v 37.207 c 9.49,-13.847 22.1,-24.707 37.56,-32.336 17.36,-8.582 36.24,-12.937 56.1,-12.937 21.37,0 40.81,4.051 57.79,12.043 16.92,7.976 31.53,18.836 43.41,32.273 11.87,13.438 21.14,29.402 27.55,47.473 6.41,18.054 9.65,37.617 9.65,58.133 0,20.527 -3.35,40 -9.95,57.871"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 2441.16,279.656 c -8.76,6.43 -18.65,11.684 -29.42,15.61 -10.68,3.867 -21.35,6.992 -31.66,9.285 -19.42,4.57 -34.28,9.074 -44.21,13.398 -9.26,4.004 -13.75,10.692 -13.75,20.449 0,9.817 4.07,16.622 12.43,20.801 8.83,4.403 18.72,6.641 29.41,6.641 12.16,0 23.58,-2.902 33.91,-8.613 10.39,-5.762 18.65,-12.61 24.57,-20.34 l 1.63,-2.141 48.68,43.074 -1.45,1.86 c -11.4,14.508 -26.97,25.437 -46.31,32.476 -32.45,11.797 -67.97,13.789 -100.26,5.246 -13.25,-3.507 -25.34,-8.957 -35.89,-16.191 -10.64,-7.293 -19.33,-16.77 -25.82,-28.184 -6.52,-11.464 -9.82,-25.254 -9.82,-40.968 0,-13.407 2.43,-24.84 7.19,-33.973 4.77,-9.133 11.2,-16.863 19.11,-22.988 7.82,-6.075 16.87,-11.043 26.86,-14.766 9.8,-3.66 20.1,-6.691 30.53,-9.016 20.82,-4.921 36.63,-9.898 47.02,-14.793 9.68,-4.589 14.4,-11.953 14.4,-22.507 0,-5.625 -1.22,-10.414 -3.64,-14.211 -2.44,-3.836 -5.73,-6.946 -9.78,-9.239 -4.16,-2.363 -8.77,-4.113 -13.71,-5.207 -4.98,-1.101 -9.93,-1.668 -14.7,-1.668 -14.5,0 -27.87,3.196 -39.72,9.5 -11.91,6.321 -21.71,14.414 -29.13,24.075 l -1.68,2.187 -49.32,-46.191 1.68,-1.817 c 13.62,-14.804 30.99,-26.355 51.61,-34.336 20.57,-7.937 41.99,-11.972 63.67,-11.972 15.05,0 29.88,1.668 44.05,4.968 14.24,3.301 26.92,8.762 37.7,16.204 10.84,7.5 19.63,17.382 26.12,29.375 6.5,12.019 9.8,26.855 9.8,44.089 0,13.801 -2.82,25.743 -8.4,35.5 -5.54,9.688 -12.84,17.891 -21.7,24.383"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 42.9727,23.2617 c 0,5.2227 -3.6446,10.4492 -11.6289,10.4492 H 14.7813 V 13.1055 h 16.5625 c 7.789,0 11.6289,5.2226 11.6289,10.1562 z M 14.7813,62.0039 V 45.1445 h 14.9843 c 6.6992,0 9.7578,4.4336 9.7578,8.6719 0,4.2383 -3.2539,8.1875 -9.2656,8.1875 z M 56.8711,22.2734 C 56.8711,11.0352 48.5938,1.08594 33.9063,1.08594 H 1.47656 V 73.9258 H 32.4258 c 13.8008,0 20.6015,-9.2695 20.6015,-18.1328 0,-6.4063 -3.8437,-12.6172 -9.957,-14.7852 9.3672,-2.4609 13.8008,-10.3555 13.8008,-18.7344"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="M 122.695,26.6094 V 1.08594 H 109.191 V 26.6094 L 84.25,73.9258 h 15.5742 l 16.0708,-33.1172 16.46,33.1172 h 15.473 L 122.695,26.6094"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 243.805,40.5156 h 12.226 c 8.77,0 12.125,5.2149 12.125,10.5469 0,5.5195 -3.648,10.3438 -10.644,10.3438 h -13.707 z m 8.968,-12.125 h -8.968 V 1.08594 H 230.402 V 73.9258 h 27.11 c 16.652,0 24.441,-10.9375 24.441,-22.7656 0,-8.875 -4.633,-17.7422 -15.277,-21.1993 L 285.012,1.08594 H 269.039 L 252.773,28.3906"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 321.742,73.9258 h 48.399 V 61.3086 H 335.25 V 44.1602 h 32.23 V 31.6406 H 335.25 V 13.6992 h 34.891 V 1.08594 H 321.742 V 73.9258"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 426.105,29.7656 h 18.036 L 435.172,54.707 Z M 447.984,17.6445 H 422.16 L 416.148,1.08594 h -14.293 l 28.188,72.83986 h 10.352 L 468.293,1.08594 H 454 l -6.016,16.55856"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 503.16,73.9258 h 13.504 V 13.9922 h 37.457 V 1.08594 H 503.16 V 73.9258"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 627.238,50.3711 c 0,5.8086 -3.847,11.0352 -11.14,11.0352 H 602.887 V 39.1328 h 12.226 c 8.477,0 12.125,5.7188 12.125,11.2383 z m 13.7,-0.1953 c 0,-12.1289 -7.692,-23.3711 -26.219,-23.3711 H 602.887 V 1.08594 H 589.484 V 73.9258 h 26.317 c 17.844,0 25.137,-11.8281 25.137,-23.75"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 689.008,29.7656 h 18.039 L 698.078,54.707 Z M 710.891,17.6445 H 685.063 L 679.055,1.08594 h -14.297 l 28.191,72.83986 h 10.352 L 731.195,1.08594 h -14.289 l -6.015,16.55856"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 759.074,37.4609 c 0,22.1797 17.149,37.7422 38.442,37.7422 12.222,0 23.261,-5.2148 29.57,-12.2148 l -8.969,-9.4649 c
1990-5.226,5.3243 -12.519,8.6719 -20.601,8.6719 -14.098,0 -24.645,-10.4453 -24.645,-24.6367 0,-13.9063 10.25,-24.6484 24.445,-24.6484 7.989,0 15.672,3.5546 20.403,8.3789 v 11.0468 h -21.094 v 11.8243 h 33.516 V 14.6875 C 821.172,5.22266 809.641,0 796.926,0 774.941,0 759.074,15.8672 759.074,37.4609"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 868.848,73.9258 h 48.398 V 61.3086 H 882.355 V 44.1602 h 32.231 V 31.6406 H 882.355 V 13.6992 h 34.891 V 1.08594 H 868.848 V 73.9258"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 2513.13,400.293 h 2.73 c 1.6,0 4,0.066 4,2.805 0,2.664 -2.4,2.8 -4,2.8 h -2.73 z m -6.74,10.809 h 9.2 c 2.81,0 11.08,0 11.08,-8.407 0,-5.273 -3.07,-6.875 -6.07,-7.273 l 6.68,-10.344 h -7.02 l -5.93,10.012 h -1.14 v -10.012 h -6.8 z m 9.54,-32.098 c 9.94,0 18.02,8.476 18.02,18.816 0,10.344 -8.08,18.821 -18.02,18.821 -9.94,0 -18.03,-8.477 -18.03,-18.821 0,-10.34 8.09,-18.816 18.03,-18.816 z m 0,43.641 c 13.68,0 24.82,-11.141 24.82,-24.825 0,-13.679 -11.14,-24.82 -24.82,-24.82 -13.68,0 -24.83,11.141 -24.83,24.82 0,13.684 11.15,24.825 24.83,24.825"></path><path style="fill-opacity:1;fill-rule:nonzero;stroke:none" d="m 957.199,60.5273 h 1.766 c 1.035,0 2.582,0.0391 2.582,1.8086 0,1.7188 -1.547,1.8047 -2.582,1.8047 h -1.766 z M 952.852,67.5 h 5.937 c 1.813,0 7.149,0 7.149,-5.4219 0,-3.4062 -1.977,-4.4414 -3.915,-4.6953 l 4.305,-6.668 h -4.519 l -3.836,6.4532 h -0.731 v -6.4532 h -4.39 z m 6.156,-20.7148 c 6.418,0 11.629,5.4726 11.629,12.1484 0,6.6719 -5.211,12.1406 -11.629,12.1406 -6.414,0 -11.629,-5.4687 -11.629,-12.1406 0,-6.6758 5.215,-12.1484 11.629,-12.1484 z m 0,28.164 c 8.828,0 16.015,-7.1836 16.015,-16.0156 0,-8.8281 -7.187,-16.0117 -16.015,-16.0117 -8.828,0 -16.016,7.1836 -16.016,16.0117 0,8.832 7.188,16.0156 16.016,16.0156"></path></g></g></svg></a> 1991 </div> 1992 </div> 1993 </div> 1994 </div> 1995 </footer> 1996 1997</div> 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016</div> 2017 2018 <button type="submit" tabindex="-1" aria-hidden="true" style="position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden">Submit</button> 2019 2020
2021<script type="text/javascript"> 2022//<![CDATA[ 2023 2024WebForm_InitCallback(); 2025theForm.oldSubmit = theForm.submit; 2026theForm.submit = WebForm_SaveScrollPositionSubmit; 2027 2028theForm.oldOnSubmit = theForm.onsubmit; 2029theForm.onsubmit = WebForm_SaveScrollPositionOnSubmit; 2030//]]> 2031</script>
2031 2032</form> 2033 2034 2035 2036 2037
2037<script type="text/javascript"> 2038 try { 2039 $(document).foundation(); 2040 } 2041 catch(err) {} 2042 </script>
2042 2043 <!-- ExternalResources_Footer --> 2044 <span id="cookie-preferences" hidden="hidden"></span> 2045 2046 <!-- /ExternalResources_Footer --> 2047</body> 2048</html>
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.