:root{--pine:#245947;--forest:#143e2e;--mint:#eaf3ec;--ink:#21372b;--muted:#6b786e;--edge:#dbe6dd;--surface:#fff;--bg:#f3f7f3}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--pine)}
.gs-header{background:#fff;border-bottom:1px solid var(--edge)}
.gs-header-inner{max-width:1500px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.gs-logo{font-size:23px;font-weight:850;text-decoration:none;color:var(--forest);letter-spacing:-.5px}
.gs-links{display:flex;gap:16px;flex-wrap:wrap}
.gs-links a{text-decoration:none;font-size:13px;font-weight:650}
.gs-container{max-width:1500px;margin:auto;padding:22px 20px 38px}
.gs-lead{display:flex;align-items:start;justify-content:space-between;gap:24px;flex-wrap:wrap;margin:0 0 18px}
.gs-eyebrow{font-size:11px;letter-spacing:1.6px;font-weight:800;text-transform:uppercase;color:#43815b}
h1{margin:3px 0 7px;font-size:clamp(26px,3vw,40px);line-height:1.18;letter-spacing:-.7px}
.gs-description{color:#607768;margin:0;max-width:790px}
.gs-stats{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.gs-stat{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;padding:7px 11px;border-radius:9px;background:#fff;border:1px solid var(--edge);font-size:12px}
.gs-stat b{font-size:14px;color:var(--forest)}
.gs-stat-key{display:inline-block;width:9px;height:9px;border-radius:50%;background:#2d8153}
.gs-stat-key.approx{background:#d79b35}
.gs-filter{display:grid;grid-template-columns:minmax(210px,2fr) minmax(160px,1fr) minmax(150px,1fr) minmax(170px,1fr);gap:10px;background:#fff;border:1px solid var(--edge);padding:14px;border-radius:14px;margin:0 0 15px}
.gs-filter label{font-size:12px;font-weight:700;color:#3e5c48}
.gs-filter input,.gs-filter select{width:100%;display:block;margin-top:5px;padding:11px 12px;border:1px solid #c4d6c8;background:#fff;border-radius:9px;font:inherit;color:var(--ink);min-width:0}
.gs-filter :is(input,select):focus-visible{outline:2px solid var(--pine);outline-offset:1px}
.gs-map-layout{display:grid;grid-template-columns:minmax(0,1.75fr) minmax(295px,.75fr);gap:13px;align-items:stretch}
.gs-map-wrapper{position:relative;background:#dde9df;border:1px solid var(--edge);overflow:hidden;border-radius:16px;height:min(69vh,760px);min-height:440px;box-shadow:0 7px 27px #123e2411}
#gsFirmMap{width:100%;height:100%;z-index:0}
.gs-map-loading{position:absolute;z-index:700;left:50%;top:48%;transform:translate(-50%,-50%);background:#fffffff1;border:1px solid var(--edge);padding:14px 19px;border-radius:12px;max-width:300px;text-align:center;box-shadow:0 6px 26px #16392717}
.gs-map-loading[hidden]{display:none}
.gs-map-legend{position:absolute;z-index:550;bottom:15px;left:15px;display:flex;gap:11px;flex-wrap:wrap;background:#ffffffed;border-radius:10px;padding:7px 12px;font-size:12px;box-shadow:0 2px 14px #183f2919}
.gs-map-legend span::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:#2c8053;margin-right:6px}
.gs-map-legend .gs-approx::before{background:#d79b35}
.gs-results{height:min(69vh,760px);min-height:440px;border:1px solid var(--edge);border-radius:16px;background:var(--surface);display:flex;flex-direction:column;overflow:hidden}
.gs-results-header{padding:16px 16px 12px;border-bottom:1px solid var(--edge)}
.gs-results-title{font-size:17px;font-weight:850;color:var(--forest)}
.gs-results-caption{font-size:12px;color:#657a69;display:block;margin-top:3px}
.gs-results-list{padding:10px;overflow:auto;min-height:0;flex:1}
.gs-result{display:flex;align-items:start;gap:10px;padding:13px 11px;border:1px solid var(--edge);border-radius:11px;margin-bottom:9px;background:#fff}
.gs-result:hover{border-color:#9bc7a8;background:#f8fbf9}
.gs-result-main{flex:1;min-width:0}
.gs-result-name{font-size:14px;line-height:1.32;font-weight:700;color:var(--forest);text-decoration:none;display:block}
.gs-result-place{font-size:12px;color:#627768;margin:5px 0 3px}
.gs-result-kind{font-size:11px;font-weight:650;color:#2f7a50}
.gs-result-kind.approx{color:#a86c0f}
.gs-locate{border:1px solid #bfd5c4;color:var(--pine);background:#f1f8f3;border-radius:8px;cursor:pointer;padding:8px 10px;font-weight:700;font-size:12px;white-space:nowrap}
.gs-locate:hover{background:#e3efe7}
.gs-empty{padding:14px;color:#5f7064;font-size:14px}
.gs-results-bottom{border-top:1px solid var(--edge);padding:9px 16px;background:#fafdFA;font-size:11px;color:#66776a}
.gs-notes{display:flex;flex-wrap:wrap;gap:20px;font-size:12px;color:#61776a;padding:18px 2px}
.gs-notes p{margin:0}
.gs-map-pin{width:23px;height:23px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);border:2px solid #fff;background:#267b4e;box-shadow:0 2px 8px #123d2680}
.gs-map-pin.gs-approx-pin{background:#cf902c}
.gs-map-cluster{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:#215e41;color:white;font-size:13px;font-weight:850;border:4px solid #ffffffa6;box-shadow:0 3px 12px #123e2750}
.gs-map-cluster.medium{width:46px;height:46px;background:#217654}
.gs-map-cluster.large{width:53px;height:53px;background:#144d34}
.gs-map-popup{min-width:180px;max-width:310px}
.gs-map-popup b{display:block;font-size:15px;line-height:1.25;margin-bottom:7px;color:#1c4b31}
.gs-map-popup small{display:block;margin:5px 0;color:#5d7467}
.gs-map-popup .warn{color:#996111;font-weight:650}
.gs-map-popup a{display:inline-block;margin-top:9px;padding:6px 9px;border-radius:8px;background:var(--pine);color:#fff;text-decoration:none;font-weight:700}
.leaflet-container{font:inherit}
@media(max-width:1000px){.gs-map-layout{grid-template-columns:1fr}.gs-map-wrapper{height:54vh;min-height:410px}.gs-results{height:420px;min-height:350px}.gs-filter{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.gs-header-inner{padding:11px 14px}.gs-container{padding:17px 11px 22px}.gs-filter{grid-template-columns:1fr;padding:11px}.gs-lead{margin-bottom:14px}.gs-map-wrapper{height:51vh;min-height:340px}.gs-map-legend{font-size:10px;gap:8px;left:8px;bottom:8px}.gs-results{height:400px}.gs-stats{gap:5px}.gs-stat{padding:6px 8px;font-size:11px}.gs-results-header{padding:12px}}
