
  :root{
    --cream:#F6F2EA;
    --cream-2:#EFE9DC;
    --paper:#FBF9F4;
    --ink:#1E2420;
    --ink-soft:#565b53;
    --pine:#2E4636;
    --pine-deep:#22362A;
    --sage:#4F5C3F;
    --teal:#356169;
    --teal-deep:#22474D;
    --brass:#A9895C;
    --line:rgba(30,36,32,0.14);
    --line-soft:rgba(30,36,32,0.08);
    --serif:'Cormorant Garamond',Georgia,serif;
    --sans:'Inter',system-ui,-apple-system,sans-serif;
    --shadow:0 18px 50px -24px rgba(34,54,42,0.45);
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{font-family:var(--sans);color:var(--ink);background:var(--cream);line-height:1.65;font-weight:400;font-size:16px;-webkit-font-smoothing:antialiased}
  img{max-width:100%;display:block}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:1220px;margin:0 auto;padding:0 40px}
  .eyebrow{font-family:var(--sans);font-size:11.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--teal);font-weight:500}
  h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.06;letter-spacing:.005em;color:var(--ink)}
  h1{font-size:clamp(2.8rem,6.2vw,5.4rem)}
  h2{font-size:clamp(2rem,4vw,3.3rem)}
  h3{font-size:1.6rem}
  p{color:var(--ink-soft)}
  .serif-lead{font-family:var(--serif);font-size:clamp(1.3rem,2.2vw,1.7rem);line-height:1.45;color:var(--ink);font-weight:400}

  /* ---------- Buttons ---------- */
  .btn{display:inline-flex;align-items:center;gap:.55em;font-family:var(--sans);font-size:12.5px;letter-spacing:.13em;text-transform:uppercase;font-weight:500;padding:15px 28px;border:1px solid var(--pine);color:var(--pine);background:transparent;cursor:pointer;transition:.25s;border-radius:1px}
  .btn:hover{background:var(--pine);color:var(--cream)}
  .btn-solid{background:var(--pine);color:var(--cream)}
  .btn-solid:hover{background:var(--pine-deep);color:#fff}
  .btn-ghost{border-color:var(--line);color:var(--ink)}
  .btn-ghost:hover{background:var(--ink);color:var(--cream);border-color:var(--ink)}
  .btn-sm{padding:10px 18px;font-size:11px}
  .link-arrow{font-family:var(--sans);font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--pine);display:inline-flex;align-items:center;gap:.5em;border-bottom:1px solid var(--pine);padding-bottom:3px;transition:.2s;cursor:pointer}
  .link-arrow:hover{gap:.9em;color:var(--teal-deep)}
  .back{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;display:inline-flex;gap:8px;align-items:center}
  .back:hover{color:var(--pine)}

  /* ---------- Nav ---------- */
  header.nav{position:sticky;top:0;z-index:50;background:rgba(246,242,234,0.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line-soft)}
  .nav-inner{display:flex;align-items:center;justify-content:space-between;height:78px}
  .brand{display:flex;align-items:center;gap:13px;cursor:pointer}
  .brand svg{width:34px;height:34px;flex:none}
  .brand .word{line-height:1}
  .brand .word .name{font-family:var(--serif);font-size:1.55rem;letter-spacing:.16em;color:var(--ink);font-weight:500}
  .brand .word .sub{font-family:var(--sans);font-size:8px;letter-spacing:.34em;text-transform:uppercase;color:var(--sage);margin-top:2px}
  nav.links{display:flex;align-items:center;gap:25px}
  nav.links a{font-family:var(--sans);font-size:13px;letter-spacing:.05em;color:var(--ink);font-weight:400;padding:6px 0;position:relative;cursor:pointer;transition:.2s;white-space:nowrap}
  nav.links a:hover{color:var(--teal)}
  nav.links a.active{color:var(--teal)}
  nav.links a.active::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--teal)}
  .nav-cta{display:flex;align-items:center;gap:18px}
  .nav-cta .btn{padding:11px 22px}
  .burger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none}
  .burger span{width:24px;height:1.5px;background:var(--ink);display:block}

  /* ---------- Pages ---------- */
  .page{display:block}
  .page.active{display:block}
  @keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
  section{position:relative}
  .pad{padding:110px 0}
  .pad-sm{padding:78px 0}

  /* image helper */
  .ph{background-size:cover;background-position:center;background-color:var(--cream-2);background-repeat:no-repeat;position:relative}
  .ph::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(30,36,32,0.06)}

  /* ---------- Hero ---------- */
  .hero{min-height:88vh;display:flex;align-items:flex-end;color:var(--cream);position:relative;overflow:hidden}
  .hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;background-color:#2b3a30}
  .hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,28,22,.28) 0%,rgba(20,28,22,.10) 40%,rgba(20,28,22,.72) 100%)}
  .hero .inner{position:relative;z-index:2;padding-bottom:74px;max-width:820px}
  .hero .eyebrow{color:#dfe7d8}
  .hero h1{color:#fff;margin:20px 0 22px;font-weight:300}
  .hero p{color:#eef1ea;font-size:1.1rem;max-width:560px;margin-bottom:34px}
  .hero .btn-ghost{border-color:rgba(255,255,255,.6);color:#fff}
  .hero .btn-ghost:hover{background:#fff;color:var(--pine);border-color:#fff}
  .hero-actions{display:flex;gap:14px;flex-wrap:wrap}
  .hero .btn-solid{background:var(--cream);color:var(--pine)}
  .hero .btn-solid:hover{background:#fff}

  /* section head */
  .shead{max-width:640px;margin-bottom:52px}
  .shead h2{margin-top:16px}
  .shead.center{margin:0 auto 56px;text-align:center}
  .split{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center}

  /* community cards */
  .grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
  .grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:40px}
  .card{cursor:pointer;background:var(--paper);border:1px solid var(--line-soft);transition:.3s}
  .card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
  .card .img{height:300px}
  .card .body{padding:24px 26px 30px}
  .card .neighb{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--teal);font-weight:500}
  .card h3{margin:10px 0 8px;font-size:1.75rem}
  .card .meta{font-size:13px;color:var(--ink-soft);display:flex;gap:16px;margin-bottom:16px}
  .card .meta span{position:relative}
  .card .tag{display:inline-block;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:#785D33;border:1px solid var(--brass);padding:4px 10px;border-radius:1px;margin-bottom:14px}

  /* resident quick actions */
  .band{background:var(--pine);color:var(--cream)}
  .band .eyebrow{color:#c7d3c0}
  .band h2{color:#fff}
  .band p{color:#dbe2d5}
  .qa{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.12)}
  .qa a{background:var(--pine);padding:38px 30px;cursor:pointer;transition:.25s}
  .qa a:hover{background:var(--pine-deep)}
  .qa .ico{width:30px;height:30px;color:#c9d4c1;margin-bottom:16px}
  .qa h4{font-family:var(--serif);font-size:1.35rem;color:#fff;font-weight:400;margin-bottom:6px}
  .qa p{font-size:13px;color:#c2ccbb}

  /* feature split image */
  .feat-img{height:520px}
  .stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .stat{padding:40px 10px;text-align:center;border-right:1px solid var(--line-soft)}
  .stat:last-child{border-right:none}
  .stat .n{font-family:var(--serif);font-size:3.2rem;color:var(--pine);line-height:1}
  .stat .l{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-top:10px}

  /* page header (interior pages) */
  .phead{padding:82px 0 20px;border-bottom:1px solid var(--line-soft)}
  .phead .eyebrow{margin-bottom:14px;display:block}
  .phead h1{font-size:clamp(2.6rem,5vw,4.4rem);font-weight:300}
  .phead p{max-width:560px;margin-top:20px;font-size:1.05rem}

  /* filter bar */
  .filters{display:flex;gap:14px;flex-wrap:wrap;padding:26px 0;border-bottom:1px solid var(--line-soft);margin-bottom:44px;align-items:center}
  .field{display:flex;flex-direction:column;gap:5px}
  .field label{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
  .field select,.field input{font-family:var(--sans);font-size:14px;padding:11px 16px;border:1px solid var(--line);background:var(--paper);color:var(--ink);min-width:170px;border-radius:1px}
  .filters .btn{margin-left:auto;align-self:flex-end}

  /* community detail */
  .detail-hero{height:66vh;min-height:440px;display:flex;align-items:flex-end;color:#fff;position:relative;overflow:hidden}
  .detail-hero .bg{position:absolute;inset:0;background-size:cover;background-position:center}
  .detail-hero .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,28,22,.15),rgba(20,28,22,.66))}
  .detail-hero .inner{position:relative;z-index:2;padding-bottom:44px}
  .detail-hero h1{color:#fff;font-weight:300;font-size:clamp(2.6rem,5vw,4.6rem)}
  .detail-hero .loc{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#e7ece2;margin-bottom:14px;display:flex;gap:14px;align-items:center}
  .gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px}
  .gallery .img{height:150px}
  .facts{border:1px solid var(--line);background:var(--paper)}
  .facts .row{display:flex;justify-content:space-between;padding:15px 22px;border-bottom:1px solid var(--line-soft);font-size:14px}
  .facts .row:last-child{border-bottom:none}
  .facts .row .k{color:var(--ink-soft)}
  .facts .row .v{color:var(--ink);font-weight:500}
  .amen{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 30px;list-style:none}
  .amen li{font-size:14px;padding-left:24px;position:relative;color:var(--ink);padding-top:2px}
  .amen li::before{content:"";position:absolute;left:0;top:9px;width:10px;height:10px;border:1px solid var(--teal);transform:rotate(45deg)}
  .plans{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .plan{border:1px solid var(--line);background:var(--paper);padding:0;cursor:pointer;transition:.25s}
  .plan:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
  .plan .img{height:150px;background:var(--cream-2)}
  .plan .b{padding:20px 22px 24px}
  .plan h4{font-family:var(--serif);font-size:1.4rem;font-weight:400;margin-bottom:4px}
  .plan .pm{font-size:12.5px;color:var(--ink-soft);margin-bottom:14px}
  .plan .price{font-family:var(--serif);font-size:1.35rem;color:var(--pine);display:flex;justify-content:space-between;align-items:center}
  .plan .price .link-arrow{font-size:11px}

  /* ---------- Google-style map ---------- */
  .mapwrap{display:grid;grid-template-columns:1.5fr 1fr;gap:0;border:1px solid var(--line)}
  .gmap{position:relative;width:100%;height:100%;min-height:420px;overflow:hidden;background:#e7ebe1}
  .gmap.short{min-height:300px;border:1px solid var(--line)}
  .gmap svg.base{position:absolute;inset:0;width:100%;height:100%;display:block}
  .gmap .pin{position:absolute;transform:translate(-50%,-100%);cursor:pointer;z-index:3;transition:.15s}
  .gmap .pin:hover{transform:translate(-50%,-108%)}
  .gmap .pin .p{width:26px;height:26px;background:var(--pine);border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 3px 8px rgba(0,0,0,.32);display:flex;align-items:center;justify-content:center;border:2px solid #fff}
  .gmap .pin .p b{transform:rotate(45deg);color:#fff;font-size:11px;font-weight:600;font-family:var(--sans)}
  .gmap .pin.alt .p{background:var(--teal)}
  .gmap .pin.hq .p{background:var(--brass);width:30px;height:30px}
  .gmap .ctrl{position:absolute;right:12px;bottom:26px;display:flex;flex-direction:column;background:#fff;border-radius:2px;box-shadow:0 1px 4px rgba(0,0,0,.28);z-index:4}
  .gmap .ctrl button{width:32px;height:32px;border:none;background:#fff;font-size:17px;color:#5f6368;cursor:pointer;border-bottom:1px solid #e6e6e6;line-height:1}
  .gmap .ctrl button:last-child{border-bottom:none}
  .gmap .glogo{position:absolute;left:9px;bottom:18px;font-family:var(--sans);font-size:15px;font-weight:700;color:#5f6368;z-index:4;letter-spacing:-.4px}
  .gmap .attrib{position:absolute;right:0;bottom:0;background:rgba(255,255,255,.72);font-size:9.5px;color:#70757a;padding:2px 7px;z-index:4;font-family:var(--sans)}
  .nearby{padding:34px 34px;background:var(--paper)}
  .nearby h4{font-family:var(--serif);font-size:1.5rem;font-weight:400;margin-bottom:6px}
  .nearby .sub{font-size:12px;color:var(--ink-soft);margin-bottom:16px}
  .nearby ul{list-style:none;max-height:330px;overflow:auto}
  .nearby li{padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:14px;display:flex;justify-content:space-between;align-items:center;gap:10px;cursor:pointer}
  .nearby li:last-child{border:none}
  .nearby li:hover .nm{color:var(--pine)}
  .nearby li .num{width:20px;height:20px;flex:none;background:var(--pine);color:#fff;border-radius:50%;font-size:11px;display:flex;align-items:center;justify-content:center;margin-right:4px}
  .nearby li .nm{flex:1;color:var(--ink)}
  .nearby li .d{color:var(--ink-soft);font-size:12.5px}

  /* CTA band */
  .cta-band{background:var(--teal-deep);color:#fff;text-align:center}
  .cta-band h2{color:#fff;font-weight:300}
  .cta-band p{color:#d3e0e0;max-width:520px;margin:16px auto 30px}
  .cta-band .btn{border-color:rgba(255,255,255,.6);color:#fff}
  .cta-band .btn:hover{background:#fff;color:var(--teal-deep);border-color:#fff}
  .cta-band .btn-solid{background:var(--cream);color:var(--teal-deep);border-color:var(--cream)}

  /* steps */
  .steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;counter-reset:s}
  .step{border-top:2px solid var(--pine);padding-top:22px}
  .step .n{font-family:var(--serif);font-size:2.4rem;color:var(--sage);line-height:1}
  .step h4{font-family:var(--serif);font-size:1.4rem;font-weight:400;margin:8px 0 8px}
  .step p{font-size:13.5px}

  /* faq */
  .faq{border-top:1px solid var(--line)}
  .faq .q{border-bottom:1px solid var(--line-soft);padding:22px 0;cursor:pointer}
  .faq .q h4{font-family:var(--serif);font-size:1.4rem;font-weight:400;display:flex;justify-content:space-between;align-items:center}
  .faq .q .a{font-size:14.5px;color:var(--ink-soft);max-height:0;overflow:hidden;transition:.35s;margin-top:0}
  .faq .q.open .a{max-height:220px;margin-top:14px}
  .faq .q .plus{color:var(--teal);font-family:var(--sans);font-weight:300;font-size:1.6rem;transition:.3s}
  .faq .q.open .plus{transform:rotate(45deg)}

  /* services grid */
  .svc{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-soft);border:1px solid var(--line-soft)}
  .svc .s{background:var(--cream);padding:40px 34px;transition:.25s}
  .svc .s:hover{background:var(--paper)}
  .svc .s .ico{width:28px;height:28px;color:var(--teal);margin-bottom:18px}
  .svc .s h4{font-family:var(--serif);font-size:1.5rem;font-weight:400;margin-bottom:10px}
  .svc .s p{font-size:14px}

  /* forms */
  .form{display:grid;gap:18px}
  .form .two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
  .form label{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:7px}
  .form input,.form select,.form textarea{width:100%;font-family:var(--sans);font-size:15px;padding:14px 16px;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:1px}
  .form textarea{min-height:130px;resize:vertical}
  .form input[type="checkbox"]{width:18px;height:18px;padding:0;flex:none;accent-color:var(--pine)}
  .info-list{list-style:none}
  .info-list li{padding:18px 0;border-bottom:1px solid var(--line-soft)}
  .info-list li .k{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);margin-bottom:5px}
  .info-list li .v{font-family:var(--serif);font-size:1.4rem;color:var(--ink)}

  /* journal */
  .jgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:34px}
  .post{cursor:pointer}
  .post .img{height:250px;margin-bottom:20px;transition:.3s}
  .post:hover .img{opacity:.9}
  .post .cat{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--teal);font-weight:500}
  .post h3{font-size:1.5rem;margin:10px 0 8px}
  .post .date{font-size:12px;color:var(--sage);letter-spacing:.05em}
  .post p{font-size:14px;margin-top:8px}

  /* article */
  .article{max-width:760px;margin:0 auto}
  .article .meta{font-size:12px;letter-spacing:.06em;color:var(--sage);margin:10px 0 30px}
  .article p{margin-bottom:16px;font-size:1.05rem;line-height:1.75}
  .article h3{margin:30px 0 10px}
  .article ul{margin:0 0 16px 20px}
  .article li{margin-bottom:8px;color:var(--ink-soft);font-size:1.02rem}
  .callout{background:var(--cream-2);border-left:3px solid var(--teal);padding:22px 26px;margin:26px 0;font-size:14.5px}
  .doclist{list-style:none;border:1px solid var(--line)}
  .doclist li{display:flex;justify-content:space-between;align-items:center;padding:16px 22px;border-bottom:1px solid var(--line-soft);cursor:pointer;font-size:14px}
  .doclist li:last-child{border:none}
  .doclist li:hover{background:var(--paper)}
  .doclist .dl{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}

  /* ---------- resident portal ---------- */
  .pbar{background:var(--pine);color:#fff;padding:30px 36px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
  .pbar h2{color:#fff;font-weight:300}
  .pbar .who{font-size:13px;color:#c7d3c0;letter-spacing:.04em}
  .dash{display:grid;grid-template-columns:1.5fr 1fr;gap:26px;align-items:start;margin-top:40px}
  .pcard{border:1px solid var(--line);background:var(--paper);padding:28px 30px}
  .pcard .lab{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:12px}
  .bal{font-family:var(--serif);font-size:2.9rem;color:var(--pine);line-height:1}
  .balrow{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px;margin-bottom:6px}
  .qgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:22px}
  .qbtn{border:1px solid var(--line);padding:16px 18px;display:flex;gap:12px;align-items:center;cursor:pointer;background:var(--cream);transition:.2s;font-size:14px;color:var(--ink)}
  .qbtn:hover{background:var(--paper);border-color:var(--pine)}
  .qbtn svg{width:22px;height:22px;color:var(--teal);flex:none}
  .tbl{width:100%;border-collapse:collapse;font-size:13.5px}
  .tbl th{text-align:left;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);padding:10px 6px;border-bottom:1px solid var(--line)}
  .tbl td{padding:13px 6px;border-bottom:1px solid var(--line-soft);color:var(--ink)}
  .tbl tr:last-child td{border-bottom:none}
  .badge{font-size:10.5px;padding:4px 11px;border-radius:20px;letter-spacing:.05em;white-space:nowrap}
  .badge.open{background:#e6efd7;color:#4a6a2f}
  .badge.prog{background:#e0edef;color:#2a5a63}
  .badge.done{background:#e9e6df;color:#6a6459}
  .ann li{padding:14px 0;border-bottom:1px solid var(--line-soft);font-size:14px}
  .ann li:last-child{border:none}
  .ann .dt{font-size:11px;color:var(--sage);letter-spacing:.05em;display:block;margin-bottom:3px}

  /* application step bar */
  .stepbar{display:flex;border:1px solid var(--line);margin-bottom:40px}
  .stepbar div{flex:1;padding:15px 10px;text-align:center;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-soft);border-right:1px solid var(--line-soft);background:var(--paper);display:flex;align-items:center;justify-content:center;gap:8px}
  .stepbar div:last-child{border-right:none}
  .stepbar div.on{background:var(--pine);color:#fff}
  .stepbar div .c{width:20px;height:20px;border-radius:50%;border:1px solid currentColor;display:inline-flex;align-items:center;justify-content:center;font-size:10px}
  .checkline{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--line-soft);font-size:14px}
  .checkline input{margin-top:4px}

  /* footer */
  footer.ft{background:var(--pine-deep);color:#cdd6c6;padding:76px 0 34px;margin-top:0}
  .ft-top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.3fr;gap:44px;padding-bottom:52px;border-bottom:1px solid rgba(255,255,255,.12)}
  .ft .brand .name{color:#fff}
  .ft h5{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#9fb096;margin-bottom:20px;font-weight:500}
  .ft ul{list-style:none;display:grid;gap:12px}
  .ft ul a{font-size:14px;color:#cdd6c6;cursor:pointer}
  .ft ul a:hover{color:#fff}
  .ft p.blurb{font-size:14px;color:#aab8a1;margin:18px 0 0;max-width:280px}
  .ft .sign{display:flex;border:1px solid rgba(255,255,255,.25)}
  .ft .sign input{flex:1;background:transparent;border:none;padding:13px 14px;color:#fff;font-size:13px;font-family:var(--sans)}
  .ft .sign input::placeholder{color:#93a389}
  .ft .sign button{background:var(--cream);color:var(--pine);border:none;padding:0 20px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;font-weight:600}
  .ft-bot{display:flex;justify-content:space-between;align-items:center;padding-top:30px;font-size:12px;color:#8fa085;flex-wrap:wrap;gap:14px}
  .ft-bot .eho{display:flex;align-items:center;gap:11px}
  .ft-bot .eho svg{width:32px;height:32px}
  .ft-bot .eho span{font-size:14px;font-weight:500;color:#d7e0d0}
  .hp{position:absolute!important;left:-9999px;top:-9999px;height:0;width:0;overflow:hidden}
  #f-none{display:none;padding:30px 0;color:var(--ink-soft);font-size:15px}

  /* apply wizard */
  .apanel{display:none}
  .apanel.on{display:block;animation:fade .35s ease}
  .warn{display:none;color:#b4552f;font-size:13px;margin-top:12px}
  .err{border-color:#c06a45 !important;background:#fbeee9 !important}
  .checkline.err{background:#fbeee9 !important;border:1px solid #c06a45 !important;padding:14px 16px}
  .aactions{display:flex;justify-content:space-between;align-items:center;margin-top:28px;gap:14px;flex-wrap:wrap}
  .rev{border:1px solid var(--line);background:var(--paper)}
  .rev .row{display:flex;justify-content:space-between;gap:20px;padding:14px 22px;border-bottom:1px solid var(--line-soft);font-size:14px}
  .rev .row:last-child{border-bottom:none}
  .rev .k{color:var(--ink-soft)}
  .rev .v{color:var(--ink);font-weight:500;text-align:right}
  .drop{border:1px dashed var(--line);background:var(--paper);padding:24px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;transition:.2s;margin-bottom:14px}
  .drop:hover{border-color:var(--pine);background:var(--cream)}
  .drop .di{font-size:14px;color:var(--ink)}
  .drop .di small{display:block;font-size:12px;color:var(--ink-soft);margin-top:3px}
  .drop .db{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--pine);border:1px solid var(--pine);padding:9px 15px;white-space:nowrap}
  .occ{display:grid;grid-template-columns:1.4fr 1fr .7fr;gap:12px;margin-bottom:14px}

  /* lightbox */
  .zoomable{cursor:zoom-in;position:relative}
  .zbadge{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;background:rgba(246,242,234,.92);display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(20,28,22,.25);opacity:.85;transition:.2s;pointer-events:none;z-index:2}
  .zoomable:hover .zbadge{opacity:1;transform:scale(1.08)}
  .zbadge svg{width:18px;height:18px;color:var(--pine)}
  .fpbox{border:1px solid var(--line);background:#fff;padding:22px}
  .fpbox svg{width:100%;height:auto;display:block}
  .fpcap{font-size:12px;color:var(--ink-soft);margin-top:10px;text-align:center;letter-spacing:.03em}
  .lb{position:fixed;inset:0;background:rgba(18,24,20,.94);z-index:200;display:none;align-items:center;justify-content:center}
  .lb.open{display:flex}
  .lb .stage{width:min(1040px,92vw);height:80vh;background-size:contain;background-position:center;background-repeat:no-repeat}
  .lb .cls{position:absolute;top:16px;right:26px;color:#fff;font-size:34px;cursor:pointer;line-height:1;font-family:var(--sans)}
  .lb .nav{position:absolute;top:50%;transform:translateY(-50%);color:#fff;font-size:44px;cursor:pointer;user-select:none;padding:8px 20px;font-family:var(--sans)}
  .lb .nav:hover{color:var(--brass)}
  .lb .prev{left:10px}.lb .next{right:10px}
  .lb .count{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:#cdd6c6;font-size:13px;letter-spacing:.14em}

  /* mock badge */
  .mockbadge{position:fixed;right:16px;bottom:16px;z-index:80;background:var(--ink);color:var(--cream);font-size:11px;letter-spacing:.08em;padding:9px 14px;border-radius:2px;box-shadow:var(--shadow);opacity:.9}
  .mockbadge b{color:#fff;font-weight:600}

  @media(max-width:960px){
    .wrap{padding:0 24px}
    .split{grid-template-columns:1fr;gap:40px}
    .grid-3,.jgrid,.qa,.svc,.steps,.plans,.amen,.stat-row{grid-template-columns:1fr 1fr}
    .grid-2{grid-template-columns:1fr}
    .gallery{grid-template-columns:1fr 1fr}
    .mapwrap{grid-template-columns:1fr}
    .dash{grid-template-columns:1fr}
    nav.links{display:none}
    .burger{display:flex}
    .pad{padding:72px 0}
    .detail-facts{grid-template-columns:1fr!important}
    .ft-top{grid-template-columns:1fr 1fr;gap:34px}
    .stepbar{flex-wrap:wrap}.stepbar div{min-width:50%}
  }
  @media(max-width:620px){
    .grid-3,.jgrid,.qa,.svc,.steps,.plans,.amen,.stat-row,.gallery,.ft-top{grid-template-columns:1fr}
    h1{font-size:2.5rem}
    .hero{min-height:82vh}
  }

  /* --- production: accessibility --- */
  .skip{position:absolute;left:-9999px;top:0;background:var(--pine);color:#fff;padding:10px 16px;z-index:120;border-radius:0 0 3px 0}
  .skip:focus{left:0;top:0}
  a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,.card:focus-visible,.zoomable:focus-visible,.plan:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
  .lb button{background:none;border:none;font-family:inherit}
  .post .date,.fpcap,.nearby .sub,.gmap .attrib{color:var(--ink-soft)}
  .ft-legal{display:flex;gap:10px;flex-wrap:wrap}
  .ft-legal a{color:#8fa085;cursor:pointer}
  .ft-legal a:hover{color:#fff}
  .mapframe{width:100%;min-height:420px;border:0;display:block}

/* real floor-plan diagrams */
.fprow{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px}
.fprow .fp{border:1px solid var(--line);background:#fff;padding:14px;text-align:center}
.fprow .fp img{width:100%;height:auto;display:block;cursor:zoom-in}
.fprow .fp .cap{font-size:12.5px;color:var(--ink-soft);margin-top:10px}

/* interactive communities map (Leaflet) */
.propmap{width:100%;height:100%;min-height:460px;z-index:1;background:#eef1ea}
.mapwrap .propmap{min-height:100%}
.leaflet-container{font-family:var(--sans)}
.ppin-wrap{background:none;border:0}
.ppin{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:var(--pine);border:2px solid #fff;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 3px 8px rgba(0,0,0,.32)}
.ppin.alt{background:var(--teal)}
.ppin.hq{background:var(--brass);width:31px;height:31px}
.ppin b{transform:rotate(45deg);color:#fff;font-size:11px;font-weight:600;line-height:1}
.mpop{font-family:var(--sans);padding:2px 2px 0}
.mpop strong{display:block;font-size:14px;color:var(--ink)}
.mpop span{display:block;font-size:12px;color:var(--ink-soft);margin:2px 0 6px}
.mpop a{font-size:12.5px;color:var(--pine);font-weight:600;text-decoration:none}
.mpop a:hover{text-decoration:underline}

/* keyboard focus for scriptable controls */
.faq .q:focus-visible,[data-mapslug]:focus-visible,.nearby li:focus-visible,.zoomable:focus-visible,.nearby ul:focus-visible{outline:3px solid var(--teal);outline-offset:2px}

/* inline text links: distinguish by more than color (WCAG 1.4.1) */
a[style*="var(--pine)"],.article a[href]{text-decoration:underline}

/* floor-plan placeholder when no diagram is available */
.plan .planholder{height:150px;display:flex;align-items:center;justify-content:center;background:var(--cream-2);color:var(--sage)}
.plan .planholder svg{width:52px;height:44px;opacity:.7}
/* clickable neighborhood places -> open in Google Maps */
.nearby li a{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;color:inherit;text-decoration:none}
.nearby li a:hover .nm{color:var(--pine)}
.nearby li a .d{white-space:nowrap}

/* ---- Online application (full LIHTC application form) ---- */
.form .fs{border:1px solid var(--line-soft);border-radius:2px;padding:24px 22px 10px;background:var(--paper);display:grid;gap:18px;margin-top:6px}
.form .fshead{font-family:var(--serif);font-size:1.2rem;letter-spacing:.01em;text-transform:none;color:var(--pine);margin:0;padding:0}
.form .fsnote{font-size:12.5px;color:var(--ink-soft);letter-spacing:0;text-transform:none;margin:-8px 0 2px;line-height:1.55}
.form .three{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px}
.form .hhrow{display:grid;grid-template-columns:1.7fr .5fr .95fr 1.1fr .6fr;gap:10px;align-items:end}
.form .row4{display:grid;grid-template-columns:1.3fr 1fr .8fr 1.3fr;gap:10px;align-items:end}
.form .colhead{font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:2px}
.qblock{display:grid;gap:9px;padding:13px 0;border-bottom:1px solid var(--line-soft)}
.qblock:last-child{border-bottom:0}
.form fieldset.yn{border:0;padding:0;margin:0;display:grid;gap:8px}
.form fieldset.yn legend{font-size:13.5px;letter-spacing:0;text-transform:none;color:var(--ink);padding:0;line-height:1.55}
.form fieldset.yn .opts{display:flex;gap:22px}
.form fieldset.yn .opts label{display:inline-flex;align-items:center;gap:7px;font-size:13px;letter-spacing:0;text-transform:none;color:var(--ink-soft);margin:0}
.form fieldset.yn input[type=radio]{width:17px;height:17px;padding:0;accent-color:var(--pine)}
.form .sig{display:grid;grid-template-columns:2fr 1fr;gap:18px}
@media(max-width:640px){.form .two,.form .three,.form .hhrow,.form .row4,.form .sig{grid-template-columns:1fr}}
