/* Growing spaces directory map V2 */
.growing-map-hero { background: linear-gradient(135deg, #f2f6ea 0%, var(--cream-soft) 58%, #f8efe1 100%); }
.growing-map-section { padding: 3.5rem 0; }
.directory-intro { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.35rem; }
.directory-intro h2, .directory-list-heading h2 { margin-bottom: .45rem; }
.directory-intro p { max-width: 760px; margin-bottom: 0; }
.directory-tools { display: grid; grid-template-columns: minmax(220px, 1.6fr) minmax(175px, .8fr) minmax(145px, .65fr) auto; gap: .75rem; align-items: center; margin: 1.25rem 0 .65rem; }
.directory-tools input, .directory-tools select { width: 100%; min-height: 46px; border: 1px solid var(--border); border-radius: 10px; color: var(--text); background: #fff; padding: .7rem .8rem; font: 500 .95rem var(--sans); }
.directory-search { position: relative; }.directory-search::before { content: '⌕'; position: absolute; z-index: 1; left: .8rem; top: .4rem; color: var(--text-light); font-size: 1.45rem; line-height: 1; }.directory-search input { padding-left: 2.35rem; }
.directory-status { color: var(--text-light); font-size: .85rem; min-height: 1.3rem; margin-bottom: .75rem; }
.directory-map-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(280px, .55fr); gap: 1.4rem; align-items: stretch; }
.directory-map-panel, .directory-side-panel { background: var(--paper); border: 1px solid var(--border); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }.directory-map-panel { padding: .7rem; }.directory-side-panel { padding: 1.45rem; display: flex; flex-direction: column; }
.growing-spaces-map { min-height: 625px; overflow: hidden; border-radius: calc(var(--radius-lg) - 8px); background: #dce9e8; }.directory-side-panel h3 { margin: .25rem 0 .55rem; font-size: 1.6rem; }.directory-side-panel > p { color: var(--text-light); }
.directory-key { display: grid; gap: .75rem; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 1rem 0; margin: 1.25rem 0; font-size: .87rem; }.directory-key span { display: flex; align-items: center; gap: .55rem; }.directory-key i { width: .9rem; height: .9rem; border-radius: 50%; box-shadow: 0 0 0 3px rgba(255,255,255,.9), 0 0 0 4px rgba(44, 63, 52, .23); }
.key-allotment { background: #c75d3b; }.key-community { background: #2f7f6d; }.key-mixed { background: #c59424; }.key-other { background: #7d6aa6; }.directory-actions { display: grid; gap: .9rem; margin-top: auto; }.directory-actions .btn { text-align: center; }
.growing-space-marker-wrap { background: transparent; border: 0; }.growing-space-marker { display: block; width: 16px; height: 16px; margin: 6px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg); border: 3px solid #fff; box-shadow: 0 2px 7px rgba(25,43,32,.34); }.growing-space-marker.allotment { background: #c75d3b; }.growing-space-marker.community { background: #2f7f6d; }.growing-space-marker.mixed { background: #c59424; }.growing-space-marker.other { background: #7d6aa6; }
.leaflet-popup-content { margin: 14px 16px; font: 400 .92rem/1.45 var(--sans); }.leaflet-popup-content strong { font: 700 1.05rem/1.3 var(--serif); color: var(--primary-deep); }.leaflet-popup-content p { margin: .35rem 0; }.leaflet-popup-content .popup-note { color: var(--text-light); font-size: .82rem; }.leaflet-popup-content a { color: var(--terracotta-deep); font-weight: 700; }
.directory-list-section { padding: 1rem 0 3.7rem; }.directory-list-heading { display: flex; justify-content: space-between; gap: 2rem; align-items: end; margin-bottom: 1.25rem; }.directory-list-heading p { max-width: 420px; margin: 0; color: var(--text-light); }.growing-spaces-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.growing-space-card { display: flex; flex-direction: column; min-height: 185px; padding: 1.2rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--paper); box-shadow: var(--shadow-sm); }.growing-space-card h3 { font-size: 1.18rem; margin: .65rem 0 .35rem; }.growing-space-card p { margin: 0; color: var(--text-light); }.listing-tag { display: inline-flex; width: fit-content; padding: .25rem .5rem; border-radius: 999px; font-size: .72rem; font-weight: 800; letter-spacing: .025em; }.listing-tag.allotment { color: #80351f; background: #fae5db; }.listing-tag.community { color: #145447; background: #d9eee7; }.listing-tag.mixed { color: #6d4d0d; background: #f6ebca; }.listing-tag.other { color: #4c3d6c; background: #ece6f6; }.listing-detail { margin-top: .7rem !important; font-size: .8rem; }.listing-open { align-self: flex-start; margin-top: auto; padding: .7rem 0 0; border: 0; background: transparent; cursor: pointer; font: 700 .88rem var(--sans); color: var(--terracotta-deep); }.directory-empty, .directory-more { grid-column: 1 / -1; padding: 1.4rem; border-radius: var(--radius); background: var(--cream-soft); color: var(--text-light); }

@media (max-width: 720px) {
    .directory-intro, .directory-list-heading { display: grid; grid-template-columns: 1fr; align-items: start; gap: 1rem; }
    .directory-intro .btn { width: 100%; text-align: center; }
    .directory-tools { grid-template-columns: 1fr 1fr; }
    .directory-tools .directory-search { grid-column: 1 / -1; }
    .directory-map-layout { grid-template-columns: 1fr; }
    .growing-spaces-map { min-height: 460px; }
    .growing-spaces-list { grid-template-columns: 1fr; }
}
