PageSourceSearch

https://boardwalkresearch.com/Amenities.aspx

html boardwalkresearch.com collected 2026-10-08 11:36:36 UTC 138,405 bytes, 2,048 lines download raw bytes

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&amp;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&amp;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&amp;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&nbsp;</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 &copy; 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.