{"id":12,"date":"2026-07-12T13:42:22","date_gmt":"2026-07-12T13:42:22","guid":{"rendered":"https:\/\/garrisonfrazier.com\/?page_id=12"},"modified":"2026-08-12T01:25:10","modified_gmt":"2026-08-12T01:25:10","slug":"home","status":"publish","type":"page","link":"https:\/\/garrisonfrazier.com\/","title":{"rendered":"Home"},"content":{"rendered":"<div class=\"et_pb_section_0 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_0 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_0 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_0 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><!--\n  ============================================================================\n  GARRISON FRAZIER \u2014 Hero Slider w\/ floating location nav\n  ----------------------------------------------------------------------------\n  HOW TO USE:\n    1. Edit page with Divi > add a Section (padding 0) > Row (1 col, width 100%,\n       max-width 100%, gutter OFF, padding 0).\n    2. Add ONE \"Code\" module inside the row.\n    3. Paste this ENTIRE file into it. Save.\n\n  TO USE REAL PHOTOS instead of the placeholder gradients:\n    On any slide's <div class=\"gfh-media ...\"> add an inline style, e.g.\n        style=\"background-image:url('https:\/\/yoursite.com\/wp-content\/uploads\/alten.jpg')\"\n    It layers OVER the placeholder gradient and keeps the dark overlay for text.\n    (Upload photos via Media > Add New first, then copy each URL.)\n\n  Everything is namespaced under \".gfhs\" so it cannot affect the rest of Divi.\n  Auto-advances every 6s, pauses on hover, supports click \/ arrow keys \/ swipe.\n\n  ----------------------------------------------------------------------------\n  FIX NOTES v2 (mobile: headline text cropped at the top of the hero):\n    Root cause: on phones, the stage box height was capped at 64vh with only\n    a 440px floor, while the text block is still bottom-anchored\n    (justify-content:flex-end). On narrow screens a 3-line headline + eyebrow\n    + paragraph + button is taller than that box, so the top rows still got\n    clipped by the box's own overflow:hidden \u2014 the same bug the desktop fix\n    solved, just reappearing at the phone breakpoint.\n    This version fixes it four ways, mobile-only (nothing below changes on\n    desktop\/tablet):\n      1. Raised the phone min-height floor (440px -> 620px) and switched the\n         viewport unit to dvh-first so address-bar resizing on iOS\/Android\n         doesn't shrink the box after layout.\n      2. Widened the heading's mobile max-width (16ch -> 20ch) so it wraps to\n         fewer lines at the same font size.\n      3. Changed mobile text alignment from bottom-anchored (flex-end) to\n         vertically centered (center), so if content is ever still taller\n         than the box, it overflows evenly top+bottom instead of only losing\n         its top rows.\n      4. Added a sub-400px breakpoint (small phones) with an even taller\n         min-height and a slightly smaller heading size, since that's where\n         3-line headlines are most likely to still be tight.\n    If you still see any cropping after this, it's most likely a Divi\n    Section\/Row setting (a negative top margin, or a fixed-nav header\n    overlapping) rather than this code \u2014 in that case set --header-offset\n    below to your header's px height, and check the Row's Top Margin is 0.\n  ============================================================================\n-->\n<style>\n@import url('https:\/\/fonts.googleapis.com\/css2?family=Playfair+Display:wght@600;700&family=Roboto:wght@400;500;600;700&display=swap');\n\n.gfhs{\n  --navy:#0F2A47; --navy-deep:#0A1D33; --clay:#C1662F; --gold:#D98C34;\n  --dur:6s;\n  \/* --- FIX: set this to your fixed header's height in px, or 0px if header isn't fixed --- *\/\n  --header-offset:0px;\n  position:relative; width:100%;\n  margin-top:var(--header-offset);\n  height:92vh;\n  height:92dvh; \/* modern browsers: avoids mobile address-bar cropping *\/\n  min-height:680px; \/* FIX: guarantees room for the text stack so the heading can't clip at the top *\/\n  max-height:none;\n  overflow:hidden; font-family:'Inter',sans-serif; background:var(--navy-deep); isolation:isolate;\n}\n.gfhs *{box-sizing:border-box; margin:0; padding:0;}\n\n\/* ---- SLIDES ---- *\/\n.gfhs .gfh-slide{position:absolute; inset:0; opacity:0; visibility:hidden;\n  transition:opacity 1s ease; z-index:1;}\n.gfhs .gfh-slide.active{opacity:1; visibility:visible; z-index:2;}\n\n.gfhs .gfh-media{position:absolute; inset:0; background-size:cover; background-position:center;\n  transform:scale(1.06); transition:transform 7s ease;}\n.gfhs .gfh-slide.active .gfh-media{transform:scale(1);}\n.gfhs .gfh-media::after{content:\"\"; position:absolute; inset:0;\n  background:linear-gradient(90deg, rgba(8,20,36,.82) 0%, rgba(8,20,36,.45) 45%, rgba(8,20,36,.15) 100%),\n             linear-gradient(0deg, rgba(8,20,36,.85) 0%, rgba(8,20,36,0) 40%);}\n\n\/* Placeholder facade gradients (swap for real photos any time) *\/\n.gfhs .brick{background-color:#5a3222; background-image:\n  repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 2px,transparent 2px 28px),\n  repeating-linear-gradient(180deg,rgba(0,0,0,.16) 0 2px,transparent 2px 36px),\n  linear-gradient(160deg,#7d4a30,#4d2a1c);}\n.gfhs .dusk{background-color:#1c3149; background-image:\n  repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 2px,transparent 2px 28px),\n  repeating-linear-gradient(180deg,rgba(0,0,0,.16) 0 2px,transparent 2px 36px),\n  linear-gradient(160deg,#33506d,#132133);}\n.gfhs .stone{background-color:#4a525d; background-image:\n  repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 2px,transparent 2px 28px),\n  repeating-linear-gradient(180deg,rgba(0,0,0,.16) 0 2px,transparent 2px 36px),\n  linear-gradient(160deg,#6f7681,#3c434c);}\n.gfhs .clayish{background-color:#7d4526; background-image:\n  repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 2px,transparent 2px 28px),\n  repeating-linear-gradient(180deg,rgba(0,0,0,.16) 0 2px,transparent 2px 36px),\n  linear-gradient(160deg,#a5643f,#6d3a1f);}\n\n\/* ---- SLIDE CONTENT ---- *\/\n.gfhs .gfh-content{position:relative; z-index:3; height:100%; max-width:1180px; margin:0 auto;\n  padding:0 48px 170px; display:flex; flex-direction:column; justify-content:flex-end; color:#fff;}\n.gfhs .gfh-content h2{\n  font-family:'Playfair Display',serif;\n  font-weight:400;\n  line-height:1.08;\n  font-size:clamp(32px,4.6vw,58px); \/* FIX: was up to 72px \u2014 reduced max size so 3-line headlines don't overflow the box height *\/\n  letter-spacing:-.01em;\n  max-width:16ch;\n  color:#ffffff !important;\n}\n.gfhs .gfh-eyebrow{font-size:12px; font-weight:700; letter-spacing:.22em; text-transform:uppercase;\n  color:#D8BE9F; margin-bottom:18px;}\n.gfhs .gfh-content p{max-width:46ch; margin-top:20px; font-size:17px; line-height:1.7; color:#dbe4ee;}\n.gfhs .gfh-btn{display:inline-flex; align-items:center; gap:10px; align-self:flex-start; margin-top:30px;\n  padding:15px 30px; background:var(--clay); color:#fff; border-radius:2px; font-weight:600;\n  font-size:12px; letter-spacing:.12em; text-transform:uppercase; cursor:pointer;\n  transition:transform .25s ease, background .25s;}\n.gfhs .gfh-btn:hover{background:#a24e22; transform:translateY(-2px);}\n.gfhs .gfh-btn .arw{transition:transform .25s ease;}\n.gfhs .gfh-btn:hover .arw{transform:translateX(4px);}\n\n\/* Content entrance animation *\/\n.gfhs .gfh-slide.active .gfh-eyebrow{animation:gfhUp .7s .15s both ease;}\n.gfhs .gfh-slide.active .gfh-content h2{animation:gfhUp .8s .28s both ease;}\n.gfhs .gfh-slide.active .gfh-content p{animation:gfhUp .8s .42s both ease;}\n.gfhs .gfh-slide.active .gfh-btn{animation:gfhUp .8s .56s both ease;}\n@keyframes gfhUp{from{opacity:0; transform:translateY(26px);}to{opacity:1; transform:none;}}\n\n\/* ---- ARROWS ---- *\/\n.gfhs .gfh-arrow{position:absolute; top:calc(50% - 60px); z-index:5; width:52px; height:52px;\n  border:1px solid rgba(255,255,255,.4); background:rgba(10,29,51,.25); color:#fff; cursor:pointer;\n  border-radius:50%; font-size:20px; display:flex; align-items:center; justify-content:center;\n  transition:background .25s, border-color .25s; backdrop-filter:blur(2px);}\n.gfhs .gfh-arrow:hover{background:var(--clay); border-color:var(--clay);}\n.gfhs .gfh-prev{left:26px;} .gfhs .gfh-next{right:26px;}\n\n\/* ---- FLOATING LOCATION NAV ---- *\/\n.gfhs .gfh-nav{position:absolute; left:0; right:0; bottom:0; z-index:6; display:flex;\n  background:rgba(10,29,51,.55); backdrop-filter:blur(10px); border-top:1px solid rgba(255,255,255,.14);}\n.gfhs .gfh-tab{position:relative; flex:1; padding:24px 26px 22px; text-align:left; cursor:pointer;\n  background:none; border:none; border-right:1px solid rgba(255,255,255,.12); color:#c2cfdd;\n  font-family:'Inter',sans-serif; transition:background .3s, color .3s; overflow:hidden;}\n.gfhs .gfh-tab:last-child{border-right:none;}\n.gfhs .gfh-tab:hover{background:rgba(255,255,255,.06); color:#fff;}\n.gfhs .gfh-tab .gfh-idx{font-size:11px; font-weight:400; letter-spacing:.14em; color:var(--gold); opacity:.85;}\n.gfhs .gfh-tab .gfh-name{display:block; margin-top:8px; font-family:'Roboto',sans-serif;\n  font-weight:400; font-size:19px; color:#e7edf3; letter-spacing:-.01em;}\n.gfhs .gfh-tab .gfh-sub{display:block; margin-top:4px; font-size:11.5px; letter-spacing:.06em;\n  text-transform:uppercase; color:#93a4b6;}\n.gfhs .gfh-tab.active{background:rgba(255,255,255,.08); color:#fff;}\n.gfhs .gfh-tab.active .gfh-name{color:#fff;}\n.gfhs .gfh-tab.active .gfh-sub{color:var(--gold);}\n.gfhs .gfh-progress{position:absolute; top:0; left:0; height:3px; width:0; background:var(--clay);}\n\n\/* ---- RESPONSIVE ---- *\/\n@media(max-width:900px){\n  .gfhs{height:auto; min-height:0; max-height:none;}\n  \/* FIX: taller floor + dvh-first so iOS\/Android address-bar resize can't\n     shrink the box after the bottom-anchored text has already laid out *\/\n  .gfhs .gfh-stage{position:relative; height:78dvh; height:78vh; min-height:620px;}\n  .gfhs .gfh-content{\n    padding:0 32px 60px;\n    \/* FIX: center instead of bottom-anchor \u2014 if content is ever still\n       taller than the box, it overflows evenly instead of losing its top *\/\n    justify-content:center;\n  }\n  .gfhs .gfh-content h2{\n    \/* FIX: wider max-width means fewer wrapped lines at the same font size *\/\n    max-width:20ch;\n  }\n  .gfhs .gfh-arrow{display:none;}\n  .gfhs .gfh-nav{position:relative; flex-wrap:wrap;}\n  .gfhs .gfh-tab{flex:1 1 50%; border-bottom:1px solid rgba(255,255,255,.12); padding:16px 18px;}\n  .gfhs .gfh-tab:nth-child(2n){border-right:none;}\n  .gfhs .gfh-tab .gfh-name{font-size:16px;}\n}\n@media(max-width:560px){\n  .gfhs .gfh-content{padding:0 22px 140px;}\n  .gfhs .gfh-tab{flex:1 1 100%; border-right:none;}\n}\n@media(max-width:400px){\n  \/* FIX: small-phone safety net \u2014 3-line headlines are tightest here *\/\n  .gfhs .gfh-stage{min-height:680px;}\n  .gfhs .gfh-content h2{font-size:28px;}\n  .gfhs .gfh-content p{font-size:15.5px;}\n}\n@media(prefers-reduced-motion:reduce){\n  .gfhs *{animation:none!important; transition:opacity .3s ease!important;}\n  .gfhs .gfh-media{transform:none!important;}\n}\n<\/style>\n\n<div class=\"gfhs\" id=\"gfHero\">\n  <div class=\"gfh-stage\">\n\n    <!-- SLIDE 1 -->\n    <div class=\"gfh-slide active\">\n      <div class=\"gfh-media brick\" style=\"background-image:url('https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/Love-Plaza-South.jpg')\"><\/div>\n      <div class=\"gfh-content\">\n        <h2>Community-Focused. Institutionally Aligned.<\/h2>\n        <p>Garrison Frazier Investments combines experienced leadership, strategic partnerships, and proven redevelopment execution to deliver mixed-use projects that create lasting value for communities and stakeholders alike.<\/p>\n        <a class=\"gfh-btn\" href=\"https:\/\/garrisonfrazier.com\/index.php\/developments\/\">Explore the Project <span class=\"arw\">\u2192<\/span><\/a>\n      <\/div>\n    <\/div>\n\n    <!-- SLIDE 2 -->\n    <div class=\"gfh-slide\">\n      <div class=\"gfh-media dusk\" style=\"background-image:url('https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/07\/2024-08-15-10-37-26-438.jpg')\"><\/div>\n      <div class=\"gfh-content\">\n        <h2>Active Development Pipeline<\/h2>\n        <p>Garrison Frazier Investments is advancing multiple mixed-use initiatives focused on housing, neighborhood retail, public space, and community-centered growth.<\/p>\n      <\/div>\n    <\/div>\n\n    <!-- SLIDE 3 -->\n    <div class=\"gfh-slide\">\n      <div class=\"gfh-media stone\" style=\"background-image:url('https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/07\/Fall_Creek-Place.png')\"><\/div>\n      <div class=\"gfh-content\">\n        <h2>Experienced Leadership. Local Commitment.<\/h2>\n        <p>Our team brings decades of experience in development, finance, design, and community-building, creating the foundation for projects that move from vision to reality.<\/p><br>\n        <a class=\"gfh-btn\" href=\"https:\/\/garrisonfrazier.com\/index.php\/about-2\/#leader\">Meet the Team <span class=\"arw\">\u2192<\/span><\/a>\n      <\/div>\n    <\/div>\n\n    <!-- SLIDE 4 -->\n    <div class=\"gfh-slide\">\n      <div class=\"gfh-media clayish\" style=\"background-image:url('https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/07\/2024-08-15-10-05-25-296.jpg')\"><\/div>\n      <div class=\"gfh-content\">\n        <h2>Built on Partnerships. Validated Through Competition.<\/h2>\n        <p>Garrison Frazier Investments has been selected through competitive public redevelopment processes to advance catalytic mixed-use projects that strengthen neighborhoods and create long-term community value.<\/p>\n        <a class=\"gfh-btn\" href=\"https:\/\/garrisonfrazier.com\/index.php\/developments\/\">View Developments <span class=\"arw\">\u2192<\/span><\/a>\n      <\/div>\n    <\/div>\n\n    <button class=\"gfh-arrow gfh-prev\" aria-label=\"Previous slide\">\u2039<\/button>\n    <button class=\"gfh-arrow gfh-next\" aria-label=\"Next slide\">\u203a<\/button>\n  <\/div>\n\n  <!-- FLOATING LOCATION NAV -->\n  <div class=\"gfh-nav\">\n    <button class=\"gfh-tab active\" data-i=\"0\">\n      <span class=\"gfh-progress\"><\/span>\n      <span class=\"gfh-name\">Community-Focused. Institutionally Aligned.<\/span>\n    <\/button>\n    <button class=\"gfh-tab\" data-i=\"1\">\n      <span class=\"gfh-progress\"><\/span>\n      <span class=\"gfh-name\">Active Development Pipeline<\/span>\n    <\/button>\n    <button class=\"gfh-tab\" data-i=\"2\">\n      <span class=\"gfh-progress\"><\/span>\n      <span class=\"gfh-name\">Experienced Leadership. Local Commitment.<\/span>\n    <\/button>\n    <button class=\"gfh-tab\" data-i=\"3\">\n      <span class=\"gfh-progress\"><\/span>\n      <span class=\"gfh-name\">Built on Partnerships. Validated Through Competition.<\/span>\n    <\/button>\n  <\/div>\n<\/div>\n\n<script>\n(function(){\n  var root = document.getElementById('gfHero');\n  if(!root) return;\n  var slides = root.querySelectorAll('.gfh-slide');\n  var tabs   = root.querySelectorAll('.gfh-tab');\n  var bars   = root.querySelectorAll('.gfh-progress');\n  var DUR = 12000;\n  var i = 0, elapsed = 0, last = 0, paused = false, raf;\n\n  function setSlide(n){\n    n = (n + slides.length) % slides.length;\n    i = n; elapsed = 0;\n    slides.forEach(function(s,x){ s.classList.toggle('active', x===n); });\n    tabs.forEach(function(t,x){ t.classList.toggle('active', x===n); });\n    bars.forEach(function(b,x){ b.style.width = (x < n ? '100%' : '0%'); });\n  }\n  function next(){ setSlide(i+1); }\n  function prev(){ setSlide(i-1); }\n\n  function tick(now){\n    if(!last) last = now;\n    var dt = now - last; last = now;\n    if(!paused){\n      elapsed += dt;\n      var p = Math.min(elapsed\/DUR, 1);\n      if(bars[i]) bars[i].style.width = (p*100)+'%';\n      if(elapsed >= DUR) next();\n    }\n    raf = requestAnimationFrame(tick);\n  }\n\n  tabs.forEach(function(t){\n    t.addEventListener('click', function(){ setSlide(+t.dataset.i); });\n  });\n  root.querySelector('.gfh-next').addEventListener('click', next);\n  root.querySelector('.gfh-prev').addEventListener('click', prev);\n\n  root.addEventListener('mouseenter', function(){ paused = true; });\n  root.addEventListener('mouseleave', function(){ paused = false; });\n\n  document.addEventListener('keydown', function(e){\n    if(e.key === 'ArrowRight') next();\n    if(e.key === 'ArrowLeft')  prev();\n  });\n\n  var sx = 0;\n  root.addEventListener('touchstart', function(e){ sx = e.touches[0].clientX; }, {passive:true});\n  root.addEventListener('touchend', function(e){\n    var dx = e.changedTouches[0].clientX - sx;\n    if(Math.abs(dx) > 50){ dx < 0 ? next() : prev(); }\n  }, {passive:true});\n\n  document.addEventListener('visibilitychange', function(){ paused = document.hidden; });\n\n  setSlide(0);\n  raf = requestAnimationFrame(tick);\n})();\n<\/script>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_1 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_1 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_1 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_animated et_flex_column_8_24 et_flex_column_8_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_0 et_pb_text et_pb_bg_layout_light et_animated et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><h5>COMPANY<\/h5>\n<\/div><\/div>\n\n<div class=\"et_pb_divider_0 et_pb_divider et_pb_space et_pb_divider_position_top et_animated et_pb_module\"><div class=\"et_pb_divider_internal\"><\/div><\/div>\n\n<div class=\"et_pb_heading_0 et_pb_heading et_pb_module et_flex_module\"><div class=\"et_pb_heading_container\"><h1 class=\"et_pb_module_header\">Garrison Frazier<\/h1><\/div><\/div>\n\n<div class=\"et_pb_text_1 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>Garrison Frazier Developments is an experienced team of dedicated professionals investing in deserving neighborhoods to eliminate housing insecurities and improve opportunity pathways for all residents.<\/span><\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_0_wrapper\"><a class=\"et_pb_button_0 et_pb_button et_pb_bg_layout_light et_pb_module et_flex_module\" href=\"https:\/\/garrisonfrazier.com\/index.php\/developments\/\" data-icon=\"$\">ABOUT GARRISON FRAZIER<\/a><\/div>\n<\/div>\n\n<div class=\"et_pb_column_2 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_animated et_flex_column_16_24 et_flex_column_16_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_row_2 et_pb_row et_pb_row_nested et_flex_row\">\n<div class=\"et_pb_column_3 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_divider_1 et_pb_divider et_pb_space et_pb_divider_position_top et_pb_module\"><div class=\"et_pb_divider_internal\"><\/div><\/div>\n\n<div class=\"et_pb_text_2 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><h1 style=\"text-align: center;\"><span>$60M+<\/span><\/h1>\n<p style=\"text-align: center;\"><span>Active Investment<\/span><\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_divider_2 et_pb_divider et_pb_space et_pb_divider_position_top et_pb_module\"><div class=\"et_pb_divider_internal\"><\/div><\/div>\n\n<div class=\"et_pb_text_3 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><h1 style=\"text-align: center;\"><span>210<\/span><\/h1>\n<p style=\"text-align: center;\"><span>Units in Development<\/span><\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_divider_3 et_pb_divider et_pb_space et_pb_divider_position_top et_pb_module\"><div class=\"et_pb_divider_internal\"><\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_3 et_pb_row et_pb_row_nested et_flex_row\">\n<div class=\"et_pb_column_4 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_8_24 et_flex_column_8_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_4 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><h1 style=\"text-align: center;\"><span>200M+<\/span><\/h1>\n<p style=\"text-align: center;\"><span>Founding Team Portfolio<\/span><\/p>\n<\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_column_5 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_8_24 et_flex_column_8_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_1 et_pb_code et_pb_module et_flex_column_8_24 et_flex_column_8_24_tablet et_flex_column_8_24_phone\"><div class=\"et_pb_code_inner\"><style>\n  .imhc-vertical-line {\n    border-left: 1px solid #e9ede4;\n    height: 150px;\n    margin: 0 auto;\n    display: block;\n  }\n\n  @media (max-width: 980px) {\n    .imhc-vertical-line {\n      border-center: none;\n      border-top: 2px solid #1a5c38;\n      height: auto;\n      width: 100%;\n      margin: 20px 0;\n    }\n  }\n<\/style>\n\n<div class=\"imhc-vertical-line\"><\/div><\/div><\/div>\n\n<div class=\"et_pb_divider_4 et_pb_divider et_pb_space et_pb_divider_position_top et_pb_module\"><div class=\"et_pb_divider_internal\"><\/div><\/div>\n<\/div>\n\n<div class=\"et_pb_column_6 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_8_24 et_flex_column_8_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_5 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module et_flex_column_24_24 et_flex_column_24_24_tablet\"><div class=\"et_pb_text_inner\"><h1 style=\"text-align: center;\"><span>30<\/span><\/h1>\n<p style=\"text-align: center;\"><span>Years Combined Experience<\/span><\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_2 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_4 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_7 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_6 et_pb_text et_pb_bg_layout_light et_animated et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><h5>TRUSTED PARTNERS<\/h5>\n<\/div><\/div>\n\n<div class=\"et_pb_divider_5 et_pb_divider et_pb_space et_pb_divider_position_top et_pb_module\"><div class=\"et_pb_divider_internal\"><\/div><\/div>\n\n<div class=\"et_pb_heading_1 et_pb_heading et_pb_module et_flex_module\"><div class=\"et_pb_heading_container\"><h1 class=\"et_pb_module_header\">Selected. Aligned. Positioned to Deliver.<\/h1><\/div><\/div>\n\n<div class=\"et_pb_text_7 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p>Selected through competitive redevelopment processes and supported by nationally <br \/>recognized development, design, and capital partners.<\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_row_5 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_8 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_8_24 et_flex_column_8_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_image_0 et_pb_image et_pb_module et_flex_module\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/logo-city-of-elkhart-white.png\" title=\"logo-city-of-elkhart-white\" width=\"800\" height=\"575\" srcset=\"https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/logo-city-of-elkhart-white.png 800w, https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/logo-city-of-elkhart-white-480x345.png 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 800px, 100vw\" class=\"wp-image-224231\" \/><\/span><\/div>\n<\/div>\n\n<div class=\"et_pb_column_9 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_8_24 et_flex_column_8_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_image_1 et_pb_image et_pb_module et_flex_module\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/milhaus_white-1-284x300.png\" title=\"milhaus_white\" width=\"284\" height=\"300\" srcset=\"https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/milhaus_white-1-284x300.png 284w, https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/milhaus_white-1.png 416w\" sizes=\"(max-width: 284px) 100vw, 284px\" class=\"wp-image-224235\" \/><\/span><\/div>\n<\/div>\n\n<div class=\"et_pb_column_10 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_8_24 et_flex_column_8_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_image_2 et_pb_image et_pb_module et_flex_module\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/Stacked-Logo-White1-scaled.png\" title=\"Stacked Logo - White1\" width=\"2560\" height=\"1104\" srcset=\"https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/Stacked-Logo-White1-scaled.png 2560w, https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/Stacked-Logo-White1-300x129.png 300w, https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/Stacked-Logo-White1-1024x441.png 1024w, https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/Stacked-Logo-White1-768x331.png 768w, https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/Stacked-Logo-White1-1536x662.png 1536w\" sizes=\"(max-width: 2560px) 100vw, 2560px\" class=\"wp-image-224332\" \/><\/span><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_3 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_6 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_11 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_2_5 et_flex_column_2_5_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_8 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>IMPACT REAL ESTATE DEVELOPMENT<\/span><\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_divider_6 et_pb_divider et_pb_space et_pb_divider_position_top et_pb_module\"><div class=\"et_pb_divider_internal\"><\/div><\/div>\n\n<div class=\"et_pb_heading_2 et_pb_heading et_pb_module et_flex_module\"><div class=\"et_pb_heading_container\"><h1 class=\"et_pb_module_header\">Development Where It's Needed Most.<\/h1><\/div><\/div>\n\n<div class=\"et_pb_text_9 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>We develop mixed-use communities that bring housing, retail, and public space to overlooked urban corridors across the Midwest.<\/span><\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_1_wrapper\"><a class=\"et_pb_button_1 et_pb_button et_pb_bg_layout_light et_pb_module et_flex_module\" href=\"https:\/\/garrisonfrazier.com\/index.php\/contact\/\" data-icon=\"$\" data-icon-phone=\"$\">Partner With Us<\/a><\/div>\n<\/div>\n\n<div class=\"et_pb_column_12 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_3_5 et_flex_column_3_5_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_video_0 et_pb_video et_pb_module et_flex_module dm-autoplay-btn\"><div class=\"et_pb_video_box\"><video controls><source type=\"video\/mp4\" src=\"https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/07\/building-1.mp4\" \/><\/video><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_4 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_7 et_pb_row et-vb-row--no-module et_flex_row\">\n<div class=\"et_pb_column_13 et_pb_column et-last-child et_flex_column et_pb_column_empty et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\"><\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_5 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_8 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_14 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_10 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><h5><span>Development with Purpose.<\/span><\/h5>\n<\/div><\/div>\n\n<div class=\"et_pb_text_11 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><h1 style=\"text-align: left;\"><span>We create projects that strengthen neighborhoods, support daily life, and unlock long-term value for residents and partners alike.<\/span><\/h1>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_6 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_9 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_15 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_text_12 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><h5><span>FEATURED PROJECT \u00b7 ELKHART, INDIANA<\/span><\/h5>\n<\/div><\/div>\n\n<div class=\"et_pb_divider_7 et_pb_divider et_pb_space et_pb_divider_position_top et_pb_module\"><div class=\"et_pb_divider_internal\"><\/div><\/div>\n\n<div class=\"et_pb_heading_3 et_pb_heading et_pb_module et_flex_module\"><div class=\"et_pb_heading_container\"><h1 class=\"et_pb_module_header\">A New Gateway for Downtown Elkhart.<\/h1><\/div><\/div>\n\n<div class=\"et_pb_text_13 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>The Freight Street District is a 210-unit mixed-use development anchoring the southern gateway to downtown Elkhart.<\/span><\/p>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_7 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_10 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_16 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_code_2 et_pb_code et_pb_module\"><div class=\"et_pb_code_inner\"><!-- Garrison Frazier \u2014 Interactive Design Concept (Divi 5 build) -->\n<!-- Paste this whole block into a Divi \"Code\" module. -->\n<div class=\"gf-widget\">\n<style>\n  .gf-widget{\n    --gf-primary:#1a1a1a;\n    --gf-accent:#c67c3e;\n    --gf-white:#ffffff;\n    --gf-line:#dcdcd8;\n    --gf-font-display: Georgia, 'Times New Roman', serif;\n    --gf-font-body: Arial, Helvetica, sans-serif;\n    padding:40px 20px; background:#fff; font-family:var(--gf-font-body); color:var(--gf-primary);\n  }\n  .gf-widget *{ box-sizing:border-box; }\n  .gf-widget .stage-wrap{ max-width:1200px; margin:0 auto; }\n  .gf-widget .diagram-stage{\n    position:relative;\n    width:100%;\n    max-width:1100px;\n    margin:0 auto;\n    aspect-ratio:1530\/793;\n    user-select:none;\n  }\n  .gf-widget .diagram-stage img.base{\n    position:absolute; inset:0; width:100%; height:100%; display:block; pointer-events:none;\n  }\n  .gf-widget .overlay-svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }\n\n  .gf-widget .leader-line{\n    fill:none; stroke:var(--gf-primary); stroke-width:1.5; stroke-dasharray:5 5;\n    stroke-dashoffset: var(--len, 300);\n    opacity:0;\n  }\n  .gf-widget .leader-line.draw{\n    animation: gfDrawLine 1.1s ease forwards;\n  }\n  @keyframes gfDrawLine{\n    0%{ opacity:1; }\n    100%{ stroke-dashoffset:0; opacity:1; }\n  }\n  .gf-widget .leader-endpoint{\n    fill:var(--gf-white); stroke:var(--gf-primary); stroke-width:1.5; r:4; opacity:0;\n  }\n  .gf-widget .leader-endpoint.show{ opacity:1; transition:opacity .3s ease .9s; }\n\n  .gf-widget .building-label{\n    position:absolute; transform:translate(-50%,-100%); text-align:center;\n    opacity:0; transition:opacity .5s ease;\n    pointer-events:none;\n  }\n  .gf-widget .building-label.show{ opacity:1; }\n  .gf-widget .building-label .l1{ font-size:12px; font-weight:800; letter-spacing:.03em; }\n  .gf-widget .building-label .l2{ font-size:12px; font-weight:800; letter-spacing:.03em; color:#6b6b67; }\n\n  .gf-widget .marker{\n    position:absolute; width:30px; height:30px; margin:-15px;\n    border-radius:50%; background:var(--gf-primary); color:#fff;\n    display:flex; align-items:center; justify-content:center;\n    font-family:var(--gf-font-display); font-size:15px;\n    cursor:pointer; opacity:0; transform:scale(.4);\n    transition:opacity .4s ease, transform .4s ease;\n    box-shadow:0 0 0 0 rgba(198,124,62,.6);\n    -webkit-tap-highlight-color: transparent;\n    touch-action: manipulation;\n  }\n  .gf-widget .marker.show{ opacity:1; transform:scale(1); }\n  .gf-widget .marker.pulse-idle{ animation: gfIdlePulse 2.4s ease-in-out infinite; }\n  @keyframes gfIdlePulse{\n    0%,100%{ box-shadow:0 0 0 0 rgba(198,124,62,.45); }\n    50%{ box-shadow:0 0 0 9px rgba(198,124,62,0); }\n  }\n  .gf-widget .marker.active{ background:var(--gf-accent); animation:none; box-shadow:0 0 0 0 rgba(198,124,62,.6); transform:scale(1.18); }\n  .gf-widget .marker.active::after{\n    content:''; position:absolute; inset:-8px; border-radius:50%;\n    border:2px solid var(--gf-accent); animation:gfRipple .6s ease-out;\n  }\n  @keyframes gfRipple{\n    0%{ opacity:1; transform:scale(.6); }\n    100%{ opacity:0; transform:scale(1.6); }\n  }\n\n  .gf-widget .callout{\n    position:absolute; width:250px; max-width:60vw;\n    background:var(--gf-white);\n    box-shadow:0 14px 34px rgba(0,0,0,.14);\n    padding:16px 18px; font-size:13.5px; line-height:1.55; color:#333;\n    opacity:0; transform:translateY(6px) scale(.97);\n    transition:opacity .28s ease, transform .28s ease;\n    pointer-events:none; z-index:20;\n  }\n  .gf-widget .callout.show{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }\n  .gf-widget .callout .tag{\n    display:inline-block; font-family:var(--gf-font-display); font-size:12px;\n    background:var(--gf-primary); color:#fff; padding:2px 9px; margin-bottom:8px;\n  }\n  .gf-widget .stage-footer{ text-align:center; margin-top:22px; font-size:12.5px; color:#8a8a86; }\n  @media (max-width:640px){\n    .gf-widget .callout{ width:210px; font-size:12.5px; padding:12px 14px; }\n    .gf-widget .building-label .l1, .gf-widget .building-label .l2{ font-size:10px; }\n    \/* Marker circles are a fixed 30px regardless of screen width; lock the\n       digit's line-height so it can't baseline-shift outside the circle,\n       and make sure nothing upstream is clipping it. *\/\n    .gf-widget .marker{ font-size:14px; line-height:1; }\n    .gf-widget .diagram-stage, .gf-widget .stage-wrap{ overflow:visible; }\n  }\n<\/style>\n\n<div class=\"stage-wrap\">\n  <div class=\"diagram-stage\" data-gf-stage>\n    <img decoding=\"async\" class=\"base\" src=\"https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/07\/GF_mockup_iso-scaled.jpg\" alt=\"Isometric site diagram of the Freight Street District development\" loading=\"eager\">\n    <svg class=\"overlay-svg\" data-gf=\"overlaySvg\" viewBox=\"0 0 1530 793\" preserveAspectRatio=\"none\">\n      <path data-gf=\"lineA\" class=\"leader-line\" d=\"M 305 245 L 305 640\" \/>\n      <circle data-gf=\"dotA\" class=\"leader-endpoint\" cx=\"305\" cy=\"640\" \/>\n      <path data-gf=\"lineB\" class=\"leader-line\" d=\"M 770 60 L 770 478\" \/>\n      <circle data-gf=\"dotB\" class=\"leader-endpoint\" cx=\"770\" cy=\"478\" \/>\n    <\/svg>\n\n    <div class=\"building-label\" data-gf=\"labelA\" style=\"left:20.0%; top:25.0%;\">\n      <div class=\"l1\">BUILDING A<\/div>\n      <div class=\"l2\">MIXED USE<\/div>\n    <\/div>\n    <div class=\"building-label\" data-gf=\"labelB\" style=\"left:50.3%; top:5.0%;\">\n      <div class=\"l1\">BUILDING B<\/div>\n      <div class=\"l2\">RESIDENTIAL<\/div>\n    <\/div>\n\n    <div class=\"marker\" data-n=\"1\" style=\"left:8.3%; top:82.0%;\">1<\/div>\n    <div class=\"marker\" data-n=\"2\" style=\"left:44.5%; top:53.5%;\">2<\/div>\n    <div class=\"marker\" data-n=\"3\" style=\"left:65.0%; top:51.5%;\">3<\/div>\n    <div class=\"marker\" data-n=\"4\" style=\"left:80.8%; top:48.0%;\">4<\/div>\n\n    <div class=\"callout\" data-card=\"1\">\n      <span class=\"tag\">01<\/span>\n      <p>Adjacent to the Freight Street Arcade, a dynamic first-floor retail space that harmonizes with the plaza's energy and serves as a \"third place\" for the community to meet its daily needs and grab a coffee or bite to eat.<\/p>\n    <\/div>\n    <div class=\"callout\" data-card=\"2\">\n      <span class=\"tag\">02<\/span>\n      <p>The multi-family residential component reflects the vibrant future of the community while meeting modern living standards. Our design approach aims to integrate thoughtful amenities and flexible living spaces to cater to diverse lifestyles.<\/p>\n    <\/div>\n    <div class=\"callout\" data-card=\"3\">\n      <span class=\"tag\">03<\/span>\n      <p>Emphasizing the depot's mercantile history, the Freight Arcade links housing and destination together with a shared street full of attractions like a shade pavilion, and commercial amenities like a caf\u00e9 and vendor stalls.<\/p>\n    <\/div>\n    <div class=\"callout\" data-card=\"4\">\n      <span class=\"tag\">04<\/span>\n      <p>The museum campus could be rethought as an active place that could play host to train-watching events, farmers markets, and summer festivals.<\/p>\n    <\/div>\n  <\/div>\n\n  <div class=\"stage-footer\" data-gf=\"footerText\">Hover a numbered marker to read more.<\/div>\n<\/div>\n\n<script>\n(function(){\n  \/\/ Scope everything to THIS instance of the widget so the module can be\n  \/\/ duplicated on a page (or re-rendered by the Divi 5 builder) without\n  \/\/ one copy's IDs\/state stepping on another's.\n  var scriptEl = document.currentScript;\n  var root = scriptEl ? scriptEl.closest('.gf-widget') : null;\n  if(!root){\n    \/\/ Fallback: currentScript.closest isn't supported in a couple of very\n    \/\/ old embedded webviews. Grab the nearest preceding .gf-widget instead.\n    var all = document.querySelectorAll('.gf-widget');\n    root = all[all.length - 1];\n  }\n  if(!root) return;\n\n  function run(){\n    var stage = root.querySelector('[data-gf-stage]');\n    var lineA = root.querySelector('[data-gf=\"lineA\"]');\n    var lineB = root.querySelector('[data-gf=\"lineB\"]');\n    var dotA = root.querySelector('[data-gf=\"dotA\"]');\n    var dotB = root.querySelector('[data-gf=\"dotB\"]');\n    var labelA = root.querySelector('[data-gf=\"labelA\"]');\n    var labelB = root.querySelector('[data-gf=\"labelB\"]');\n    var footer = root.querySelector('[data-gf=\"footerText\"]');\n    var markers = Array.prototype.slice.call(root.querySelectorAll('.marker'));\n    var callouts = Array.prototype.slice.call(root.querySelectorAll('.callout'));\n\n    \/\/ Touch vs. desktop: a device with no hover \/ a coarse pointer gets a\n    \/\/ single tap to open (and a tap elsewhere, or on the same marker, to\n    \/\/ close). A device with real hover gets the original hover behavior.\n    var isTouch = window.matchMedia && (\n      window.matchMedia('(hover: none)').matches ||\n      window.matchMedia('(pointer: coarse)').matches\n    );\n    if(footer){ footer.textContent = isTouch ? 'Tap a numbered marker to read more.' : 'Hover a numbered marker to read more.'; }\n\n    function setupLineLength(path){\n      if(!path) return;\n      var len = path.getTotalLength();\n      path.style.setProperty('--len', len);\n      path.style.strokeDasharray = len;\n      path.style.strokeDashoffset = len;\n    }\n    [lineA, lineB].forEach(setupLineLength);\n\n    function resetIntro(){\n      [lineA, lineB].forEach(function(p){\n        if(!p) return;\n        p.classList.remove('draw');\n        p.style.opacity = 0;\n        setupLineLength(p);\n      });\n      [dotA, dotB].forEach(function(d){ d && d.classList.remove('show'); });\n      [labelA, labelB].forEach(function(l){ l && l.classList.remove('show'); });\n      markers.forEach(function(m){ m.classList.remove('show','pulse-idle'); });\n    }\n\n    var introTimers = [];\n    function clearIntroTimers(){ introTimers.forEach(clearTimeout); introTimers = []; }\n\n    function playIntro(){\n      clearIntroTimers();\n      resetIntro();\n      introTimers.push(requestAnimationFrame(function(){\n        if(lineA) lineA.classList.add('draw');\n        introTimers.push(setTimeout(function(){\n          dotA && dotA.classList.add('show');\n          labelA && labelA.classList.add('show');\n        }, 250));\n      }));\n      introTimers.push(setTimeout(function(){\n        if(lineB) lineB.classList.add('draw');\n        introTimers.push(setTimeout(function(){\n          dotB && dotB.classList.add('show');\n          labelB && labelB.classList.add('show');\n        }, 250));\n      }, 1000));\n      markers.forEach(function(m, i){\n        introTimers.push(setTimeout(function(){\n          m.classList.add('show');\n          introTimers.push(setTimeout(function(){ m.classList.add('pulse-idle'); }, 400));\n        }, 2400 + i*220));\n      });\n    }\n\n    function positionCallout(card, marker){\n      var stageRect = stage.getBoundingClientRect();\n      var mLeft = parseFloat(marker.style.left);\n      var mTop = parseFloat(marker.style.top);\n\n      \/\/ Measure the real rendered width instead of hardcoding it, so this\n      \/\/ respects the mobile media-query override (250px -> 210px).\n      var cardWidthPx = card.getBoundingClientRect().width || 250;\n      var cardWidthPct = (cardWidthPx\/stageRect.width)*100;\n\n      var left = mLeft + 3.5;\n      var top = mTop + 4;\n\n      if(left + cardWidthPct > 96){ left = mLeft - cardWidthPct - 3.5; }\n      \/\/ Clamp so the card can never be pushed off either edge on narrow screens.\n      left = Math.max(2, Math.min(left, 100 - cardWidthPct - 2));\n\n      if(mTop > 65){ top = mTop - 34; }\n      top = Math.max(2, top);\n\n      card.style.left = left + '%';\n      card.style.top = top + '%';\n    }\n\n    var activeCard = null;\n    var activeMarker = null;\n\n    function findMarker(n){ return markers.filter(function(m){ return m.dataset.n === n; })[0]; }\n    function findCard(n){ return callouts.filter(function(c){ return c.dataset.card === n; })[0]; }\n\n    function showCard(n){\n      var marker = findMarker(n);\n      var card = findCard(n);\n      if(!marker || !card) return;\n      if(activeMarker && activeMarker !== marker) activeMarker.classList.remove('active');\n      if(activeCard && activeCard !== card) activeCard.classList.remove('show');\n      marker.classList.add('active');\n      positionCallout(card, marker);\n      card.classList.add('show');\n      activeMarker = marker;\n      activeCard = card;\n    }\n    function hideCard(n){\n      var marker = findMarker(n);\n      var card = findCard(n);\n      if(marker) marker.classList.remove('active');\n      if(card) card.classList.remove('show');\n      if(activeMarker === marker) activeMarker = null;\n      if(activeCard === card) activeCard = null;\n    }\n\n    markers.forEach(function(m){\n      var n = m.dataset.n;\n      m.setAttribute('tabindex', '0');\n\n      if(isTouch){\n        \/\/ Touch \/ no-hover device: a tap toggles the card open\/closed.\n        m.addEventListener('click', function(e){\n          e.stopPropagation();\n          if(activeMarker === m){ hideCard(n); } else { showCard(n); }\n        });\n      } else {\n        \/\/ Desktop \/ hover-capable device: hover shows, leaving hides.\n        \/\/ Click still toggles so it can be \"pinned\" open with a mouse too.\n        m.addEventListener('mouseenter', function(){ showCard(n); });\n        m.addEventListener('mouseleave', function(){ hideCard(n); });\n        m.addEventListener('click', function(e){\n          e.stopPropagation();\n          if(activeMarker === m){ hideCard(n); } else { showCard(n); }\n        });\n      }\n      \/\/ Keyboard accessibility either way.\n      m.addEventListener('focus', function(){ showCard(n); });\n      m.addEventListener('blur', function(){ hideCard(n); });\n    });\n\n    document.addEventListener('click', function(e){\n      if(!e.target.closest('.gf-widget')) return;\n      if(!e.target.closest('.marker') && !e.target.closest('.callout')){\n        if(activeMarker) hideCard(activeMarker.dataset.n);\n      }\n    });\n\n    playIntro();\n  }\n\n  \/\/ Divi 5 frequently injects\/executes this script well after the page's\n  \/\/ \"load\" event has already fired (visual builder re-renders, dynamically\n  \/\/ loaded modules, AJAX'd content, etc.), so `window.addEventListener('load', ...)`\n  \/\/ can simply never run. Since this script tag only executes once the stage\n  \/\/ markup above it is already in the DOM, it's safe to just run immediately.\n  if(document.readyState === 'complete' || document.readyState === 'interactive'){\n    setTimeout(run, 50);\n  } else {\n    document.addEventListener('DOMContentLoaded', function(){ setTimeout(run, 50); });\n  }\n})();\n<\/script>\n<\/div>\n<\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_8 et_pb_section et_section_regular et_flex_section\" data-loop-item=\"0\">\n<div class=\"et_pb_row_11 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_17 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_animated et_flex_column_8_24 et_flex_column_8_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_image_3 et_pb_image et_pb_module et_flex_module\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/07\/GF_elkhart2.jpg\" title=\"GF_elkhart2\" width=\"800\" height=\"526\" srcset=\"https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/07\/GF_elkhart2.jpg 800w, https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/07\/GF_elkhart2-480x316.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 800px, 100vw\" class=\"wp-image-223549\" \/><\/span><\/div>\n\n<div class=\"et_pb_text_14 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><h5 style=\"text-align: center;\">Freight Street District<\/h5>\n<\/div><\/div>\n\n<div class=\"et_pb_text_15 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>A two-building mixed-use development anchoring the southern gateway into downtown Elkhart combining street retail, quality housing, and a shared public arcade that honors the city's railroad heritage.<\/span><\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_2_wrapper\"><a class=\"et_pb_button_2 et_pb_button et_pb_bg_layout_dark et_pb_module et_flex_module\" href=\"https:\/\/garrisonfrazier.com\/index.php\/developments\/#freight\">View Case Study<\/a><\/div>\n<\/div>\n\n<div class=\"et_pb_column_18 et_pb_column et_flex_column et_pb_css_mix_blend_mode_passthrough et_animated et_flex_column_8_24 et_flex_column_8_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_image_4 et_pb_image et_pb_module et_flex_module\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/Love-Plaza-South-1024x687.jpg\" title=\"Love-Plaza-South\" width=\"1024\" height=\"687\" srcset=\"https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/Love-Plaza-South-980x657.jpg 980w, https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/08\/Love-Plaza-South-480x322.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" class=\"wp-image-224339\" \/><\/span><\/div>\n\n<div class=\"et_pb_text_16 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\" data-et-mv-hidden-tablet=\"true\"><h5 style=\"text-align: center;\"><span>South Main Love Plaza<br \/>&amp; Townhomes<\/span><\/h5>\n<\/div><\/div>\n\n<div class=\"et_pb_text_17 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>30 attainable for-sale townhomes creating homeownership pathways in south Elkhart anchored by Love Plaza, a new civic gateway centered on a 3D interpretation of the Kelby Love Peace Mural.<\/span><\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_3_wrapper\"><a class=\"et_pb_button_3 et_pb_button et_pb_bg_layout_dark et_pb_module et_flex_module\" href=\"https:\/\/garrisonfrazier.com\/index.php\/developments\/#south\">View Case Study<\/a><\/div>\n<\/div>\n\n<div class=\"et_pb_column_19 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_animated et_flex_column_8_24 et_flex_column_8_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_image_5 et_pb_image et_pb_module et_flex_module\"><span class=\"et_pb_image_wrap\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/07\/concept-GF1.jpg\" title=\"concept-GF1\" width=\"800\" height=\"526\" srcset=\"https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/07\/concept-GF1.jpg 800w, https:\/\/garrisonfrazier.com\/wp-content\/uploads\/2026\/07\/concept-GF1-480x316.jpg 480w\" sizes=\"(min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 800px, 100vw\" class=\"wp-image-223545\" \/><\/span><\/div>\n\n<div class=\"et_pb_text_18 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><h5 style=\"text-align: center;\"><span>NY Central Railroad Museum<\/span><\/h5>\n<\/div><\/div>\n\n<div class=\"et_pb_text_19 et_pb_text et_pb_bg_layout_light et_pb_module et_flex_module\"><div class=\"et_pb_text_inner\"><p><span>A proposed $6.5M public-private investment to renovate and activate the National New York Central Railroad Museum turning a stranded public asset into a year-round community anchor.<\/span><\/p>\n<\/div><\/div>\n\n<div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_4_wrapper\"><a class=\"et_pb_button_4 et_pb_button et_pb_bg_layout_dark et_pb_module et_flex_module\" href=\"https:\/\/garrisonfrazier.com\/index.php\/developments\/#train\">View Case Study<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n<div class=\"et_pb_section_9 et_pb_section et_section_regular et_flex_section\">\n<div class=\"et_pb_row_12 et_pb_row et_flex_row\">\n<div class=\"et_pb_column_20 et_pb_column et-last-child et_flex_column et_pb_css_mix_blend_mode_passthrough et_flex_column_24_24 et_flex_column_24_24_tablet et_flex_column_24_24_phone\">\n<div class=\"et_pb_heading_4 et_pb_heading et_pb_module et_flex_module\"><div class=\"et_pb_heading_container\"><h1 class=\"et_pb_module_header\">Have a strategic site or partnership in mind?<\/h1><\/div><\/div>\n\n<div class=\"et_pb_module et_pb_button_module_wrapper et_pb_button_5_wrapper\"><a class=\"et_pb_button_5 et_pb_button et_pb_bg_layout_light et_pb_module et_flex_module\" href=\"https:\/\/garrisonfrazier.com\/index.php\/contact\/\" data-icon=\"$\">Partner With Us<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-12","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Home - Garrison Frazier Developments<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/garrisonfrazier.com\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Home - Garrison Frazier Developments\" \/>\n<meta property=\"og:url\" content=\"https:\/\/garrisonfrazier.com\/\" \/>\n<meta property=\"og:site_name\" content=\"Garrison Frazier Developments\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-12T01:25:10+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/garrisonfrazier.com\\\/\",\"url\":\"https:\\\/\\\/garrisonfrazier.com\\\/\",\"name\":\"Home - Garrison Frazier Developments\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/garrisonfrazier.com\\\/#website\"},\"datePublished\":\"2026-07-12T13:42:22+00:00\",\"dateModified\":\"2026-08-12T01:25:10+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/garrisonfrazier.com\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/garrisonfrazier.com\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/garrisonfrazier.com\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/garrisonfrazier.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Home\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/garrisonfrazier.com\\\/#website\",\"url\":\"https:\\\/\\\/garrisonfrazier.com\\\/\",\"name\":\"Garrison Frazier Developments\",\"description\":\"Strengthening Neighborhoods. Empowering Communities.\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/garrisonfrazier.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Home - Garrison Frazier Developments","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/garrisonfrazier.com\/","og_locale":"en_US","og_type":"article","og_title":"Home - Garrison Frazier Developments","og_url":"https:\/\/garrisonfrazier.com\/","og_site_name":"Garrison Frazier Developments","article_modified_time":"2026-08-12T01:25:10+00:00","twitter_card":"summary_large_image","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/garrisonfrazier.com\/","url":"https:\/\/garrisonfrazier.com\/","name":"Home - Garrison Frazier Developments","isPartOf":{"@id":"https:\/\/garrisonfrazier.com\/#website"},"datePublished":"2026-07-12T13:42:22+00:00","dateModified":"2026-08-12T01:25:10+00:00","breadcrumb":{"@id":"https:\/\/garrisonfrazier.com\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/garrisonfrazier.com\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/garrisonfrazier.com\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/garrisonfrazier.com\/"},{"@type":"ListItem","position":2,"name":"Home"}]},{"@type":"WebSite","@id":"https:\/\/garrisonfrazier.com\/#website","url":"https:\/\/garrisonfrazier.com\/","name":"Garrison Frazier Developments","description":"Strengthening Neighborhoods. Empowering Communities.","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/garrisonfrazier.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/garrisonfrazier.com\/index.php\/wp-json\/wp\/v2\/pages\/12","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/garrisonfrazier.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/garrisonfrazier.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/garrisonfrazier.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/garrisonfrazier.com\/index.php\/wp-json\/wp\/v2\/comments?post=12"}],"version-history":[{"count":342,"href":"https:\/\/garrisonfrazier.com\/index.php\/wp-json\/wp\/v2\/pages\/12\/revisions"}],"predecessor-version":[{"id":224344,"href":"https:\/\/garrisonfrazier.com\/index.php\/wp-json\/wp\/v2\/pages\/12\/revisions\/224344"}],"wp:attachment":[{"href":"https:\/\/garrisonfrazier.com\/index.php\/wp-json\/wp\/v2\/media?parent=12"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}