*, *::before, *::after {margin: 0;padding: 0;box-sizing: border-box }:root {--bark: #3d2b1f;--sage: #5c7a5c;--sage-lt: #7a9e7a;--cream: #faf8f4;--ink: #2a2a2a;--paper: #fffdf9 }body {font-family: 'DM Sans', sans-serif;background: var(--cream);color: var(--ink);height: 100vh;display: flex;flex-direction: column;overflow: hidden }header {background: var(--bark);color: var(--cream);padding: .65rem 1.25rem;display: flex;align-items: center;justify-content: space-between;flex-shrink: 0;box-shadow: 0 2px 8px rgba(0, 0, 0, .15);z-index: 1000 }header h1 {font-family: 'DM Serif Display', Georgia, serif;font-size: 1.2rem;font-weight: 400;letter-spacing: .01em }header .badge {font-size: .7rem;background: var(--sage);padding: .25rem .6rem;border-radius: 3px;font-weight: 500;margin-left: .75rem;opacity: .9 }.controls {display: flex;gap: .5rem;align-items: center;flex-shrink: 0;padding: .5rem 1rem;background: var(--paper);border-bottom: 1px solid #e8e4de;z-index: 999 }.search-wrap {position: relative;flex: 1;max-width: 420px }.search-wrap input {width: 100%;padding: .45rem .75rem .45rem 2rem;border: 1px solid #ccc;border-radius: 5px;font-size: .82rem;font-family: inherit;background: #fff;transition: border-color .15s }.search-wrap input:focus {outline: none;border-color: var(--sage) }.search-wrap svg {position: absolute;left: .55rem;top: 50%;transform: translateY(-50%);width: 14px;height: 14px;stroke: #999 }.filter-btn {padding: .4rem .7rem;border: 1px solid #ccc;border-radius: 5px;font-size: .78rem;font-family: inherit;background: #fff;cursor: pointer;color: var(--ink);transition: all .15s;white-space: nowrap }.filter-btn:hover {border-color: var(--sage);background: var(--cream) }.filter-btn.active {background: var(--sage);color: #fff;border-color: var(--sage) }.count {font-size: .75rem;color: #888;margin-left: auto;white-space: nowrap }#map {flex: 1;min-height: 0;background: #e8e4de;}.leaflet-popup-content-wrapper {border-radius: 8px !important;box-shadow: 0 4px 20px rgba(0, 0, 0, .12) !important;font-family: 'DM Sans', sans-serif !important;overflow: hidden }.leaflet-popup-content {margin: 0 !important;min-width: 240px;max-width: 300px }.leaflet-popup-tip {box-shadow: 0 4px 20px rgba(0, 0, 0, .12) !important }.pi {padding: .9rem 1rem .85rem }.pi h3 {font-family: 'DM Serif Display', Georgia, serif;font-size: .95rem;font-weight: 400;color: var(--bark);margin-bottom: .35rem;line-height: 1.3 }.pi .addr {font-size: .78rem;color: #666;margin-bottom: .25rem;line-height: 1.35 }.pi .phone {font-size: .8rem;margin-bottom: .15rem }.pi .phone a {color: var(--sage);text-decoration: none;font-weight: 500 }.pi .phone a:hover {text-decoration: underline }.pi .email {font-size: .78rem;margin-bottom: .4rem }.pi .email a {color: var(--sage);text-decoration: none;font-weight: 500 }.pi .email a:hover {text-decoration: underline }.pi .actions {display: flex;gap: .4rem;flex-wrap: wrap;margin-top: .5rem }.pi .btn {display: inline-flex;align-items: center;gap: .3rem;font-size: .75rem;font-weight: 500;color: var(--paper);background: var(--sage);padding: .35rem .7rem;border-radius: 4px;text-decoration: none;transition: background .15s }.pi .btn:hover {background: var(--sage-lt) }.pi .btn.dir {background: var(--bark) }.pi .btn.dir:hover {background: #5a4030 }.pi .hood {font-size: .7rem;color: #aaa;margin-top: .4rem;padding-top: .35rem;border-top: 1px solid #eee }.marker-cluster-small {background-color: rgba(92, 122, 92, .2) !important }.marker-cluster-small div {background-color: var(--sage) !important;color: #fff !important;font-family: 'DM Sans', sans-serif;font-weight: 600;font-size: .8rem }.marker-cluster-medium {background-color: rgba(61, 43, 31, .2) !important }.marker-cluster-medium div {background-color: var(--bark) !important;color: #fff !important;font-family: 'DM Sans', sans-serif;font-weight: 600;font-size: .8rem }.marker-cluster-large {background-color: rgba(61, 43, 31, .3) !important }.marker-cluster-large div {background-color: #2a1a0f !important;color: #fff !important;font-family: 'DM Sans', sans-serif;font-weight: 600;font-size: .8rem }.info-btn {background: none;border: 1.5px solid rgba(250, 248, 244, .4);color: var(--cream);width: 22px;height: 22px;border-radius: 50%;font-size: .75rem;font-weight: 600;cursor: pointer;display: inline-flex;align-items: center;justify-content: center;margin-left: .5rem;opacity: .7;transition: opacity .15s;font-family: 'DM Serif Display', Georgia, serif;flex-shrink: 0 }.info-btn:hover {opacity: 1;border-color: rgba(250, 248, 244, .8) }.modal-overlay {display: none;position: fixed;inset: 0;background: rgba(0, 0, 0, .45);z-index: 2000;align-items: center;justify-content: center }.modal-overlay.open {display: flex }.modal {background: var(--paper);border-radius: 10px;box-shadow: 0 8px 40px rgba(0, 0, 0, .2);max-width: 420px;width: 90%;padding: 1.5rem 1.6rem;position: relative;animation: modalIn .2s ease }@keyframes modalIn {from {opacity: 0;transform: translateY(8px) }to {opacity: 1;transform: translateY(0) }}.modal h2 {font-family: 'DM Serif Display', Georgia, serif;font-size: 1.1rem;font-weight: 400;color: var(--bark);margin-bottom: .6rem }.modal p {font-size: .85rem;line-height: 1.55;color: #555;margin-bottom: .7rem }.modal .dl-link {display: inline-flex;align-items: center;gap: .35rem;font-size: .82rem;font-weight: 500;color: var(--paper);background: var(--sage);padding: .45rem .85rem;border-radius: 5px;text-decoration: none;transition: background .15s;margin-top: .25rem }.modal .dl-link:hover {background: var(--sage-lt) }.modal .close-btn {position: absolute;top: .7rem;right: .8rem;background: none;border: none;font-size: 1.2rem;color: #aaa;cursor: pointer;line-height: 1;padding: .2rem }.modal .close-btn:hover {color: var(--ink) }@media(max-width:640px) {header h1 {font-size: 1rem }header .badge {font-size: .65rem;padding: .2rem .45rem }.controls {flex-wrap: wrap;gap: .35rem;padding: .4rem .6rem }.search-wrap {max-width: 100%;order: -1;flex-basis: 100% }.filter-btn {font-size: .72rem;padding: .3rem .5rem }.count {flex-basis: 100%;text-align: center;margin: 0 }}