.project-map-section { background: #f0f1ed; color: #1a211f; padding: clamp(4.5rem, 8vw, 8rem) 0; }
.project-map-wrap { width: min(1200px, calc(100% - 40px)); margin: 0 auto; }
.project-map-intro { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(260px, .8fr); gap: 2rem; align-items: end; margin-bottom: 2.25rem; }
.project-map-eyebrow { grid-column: 1 / -1; margin: 0; text-transform: uppercase; letter-spacing: .14em; font-size: .76rem; font-weight: 700; color: #65706c; }
.project-map-intro h2 { font-size: clamp(2.25rem, 4.5vw, 4.5rem); line-height: .98; letter-spacing: -.045em; margin: 0; max-width: 800px; }
.project-map-intro > p:last-child { font-size: 1rem; line-height: 1.7; margin: 0; max-width: 460px; color: #505956; }
.project-map-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(330px, .55fr); height: 650px; background: #fff; border: 1px solid rgba(26, 33, 31, .13); }
#gb-project-map { height: 650px; background: #dfe5df; }
.project-map-panel { padding: 1.5rem; display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.project-search-label { font-weight: 700; margin-bottom: .65rem; }
.project-search { width: 100%; border: 1px solid #bcc4c0; background: #fff; padding: .9rem 1rem; font: inherit; color: #1a211f; border-radius: 0; }
.project-search:focus { outline: 2px solid #cf5c38; outline-offset: 2px; }
.project-count { font-size: .78rem; text-transform: uppercase; letter-spacing: .1em; color: #65706c; margin: 1rem 0 .75rem; }
.project-list { flex: 1; min-height: 0; overflow: auto; border-top: 1px solid #dfe3e0; }
.project-list-item { width: 100%; display: grid; grid-template-columns: 2.2rem 1fr; gap: .7rem; text-align: left; padding: 1.05rem .35rem; border: 0; border-bottom: 1px solid #dfe3e0; background: #fff; color: #1a211f; cursor: pointer; font: inherit; }
.project-list-item:hover, .project-list-item:focus-visible, .project-list-item.is-active { background: #f5f1ed; }
.project-list-item:focus-visible { outline: 2px solid #cf5c38; outline-offset: -2px; }
.project-list-number { font-size: .72rem; letter-spacing: .08em; color: #9a4d35; padding-top: .15rem; }
.project-list-copy { display: grid; gap: .28rem; }
.project-list-copy strong { font-size: 1rem; }
.project-list-copy small { font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: #69716e; }
.project-list-copy > span { font-size: .86rem; line-height: 1.45; color: #505956; }
.gb-map-marker { background: transparent; border: 0; }
.gb-map-marker span { display: block; width: 24px; height: 24px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); background: #cf5c38; border: 3px solid #fff; box-shadow: 0 2px 8px rgba(0, 0, 0, .28); }
.gb-popup { font-family: inherit; line-height: 1.45; }
.gb-popup strong { display: block; font-size: 1rem; margin-bottom: .12rem; }
.gb-popup span { display: block; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; color: #8a4935; }
.gb-popup p { margin: .55rem 0 0; color: #46504c; }
.leaflet-popup-content-wrapper, .leaflet-popup-tip { border-radius: 0; }
.leaflet-control-attribution { font-size: 10px; }
@media (max-width: 850px) {
  .project-map-intro { grid-template-columns: 1fr; }
  .project-map-eyebrow { grid-column: auto; }
  .project-map-layout { grid-template-columns: 1fr; height: auto; }
  .project-map-panel { max-height: none; overflow: visible; }
  #gb-project-map { height: 480px; }
  .project-list { flex: none; max-height: 520px; }
}
@media (max-width: 560px) {
  .project-map-wrap { width: min(100% - 24px, 1200px); }
  #gb-project-map { height: 400px; }
  .project-map-panel { padding: 1rem; }
  .project-list-copy > span { font-size: .82rem; }
}
