:root {
    --sig-green: #18794e;
    --sig-green-dark: #0d4430;
    --sig-gold: #f4b942;
}

html, body { height: 100%; }
body { background: #edf3ef; color: #173328; }
.sig-navbar { background: var(--sig-green-dark); min-height: 58px; }
.brand-mark {
    align-items: center;
    background: var(--sig-green);
    border-radius: .4rem;
    display: inline-flex;
    font-size: .75rem;
    height: 32px;
    justify-content: center;
    margin-right: .5rem;
    width: 32px;
}
.site-logo { height:34px; margin-right:.5rem; max-width:46px; object-fit:contain; }
.hero-section { background:linear-gradient(110deg,rgba(13,68,48,.96),rgba(24,121,78,.82)),radial-gradient(circle at right,#5fc99a,#12372a); color:#fff; }
.min-vh-75 { min-height:75vh; }.hero-kicker{font-size:.75rem;font-weight:800;letter-spacing:.16em}.hero-section h1{font-size:clamp(2.4rem,6vw,4.8rem);font-weight:750;line-height:1.05;margin:1rem 0}.hero-section p{font-size:1.2rem;max-width:650px;margin-bottom:2rem}
.feature-card,.content-card{background:#fff;border:1px solid rgba(13,68,48,.1);border-radius:1rem;box-shadow:0 12px 35px rgba(13,68,48,.08);height:100%;padding:2rem}.feature-card>i{color:var(--sig-green);font-size:2rem}.feature-card h3,.content-card h2{font-size:1.25rem;margin:1rem 0 .5rem}.page-hero{background:linear-gradient(120deg,var(--sig-green-dark),var(--sig-green));color:#fff;padding:4rem 0}.page-hero h1{font-size:2.7rem;font-weight:700}.site-footer{background:var(--sig-green-dark);color:#dbece4;padding:2rem 0;text-align:center}
.page-hero p{font-size:1.1rem;margin:0;opacity:.88}.profile-title{font-size:2rem!important;line-height:1.25}.profile-panel,.contact-list{background:var(--sig-green-dark);border-radius:1rem;color:#fff;height:100%;padding:1.5rem}.profile-stat,.contact-item{align-items:center;border-bottom:1px solid rgba(255,255,255,.14);display:flex;gap:1rem;padding:1rem 0}.profile-stat:last-child,.contact-item:last-child{border:0}.profile-stat>i,.contact-item>i{align-items:center;background:rgba(255,255,255,.12);border-radius:.75rem;display:flex;font-size:1.25rem;height:48px;justify-content:center;width:48px}.profile-stat small,.contact-item small{display:block;opacity:.7}.profile-stat strong,.contact-item strong{display:block}.profile-cta{background:#e1f2e9}.about-list{list-style:none;padding:0}.about-list li{margin:.8rem 0;padding-left:1.7rem;position:relative}.about-list li:before{color:var(--sig-green);content:'\2713';font-weight:bold;left:0;position:absolute}.purpose-grid{display:grid;gap:1rem}.purpose-item{background:#fff;border-left:4px solid var(--sig-green);border-radius:.75rem;padding:1.4rem;box-shadow:0 8px 24px rgba(13,68,48,.08)}.purpose-item i{color:var(--sig-green);font-size:1.5rem}.purpose-item h3{font-size:1.05rem;margin:.6rem 0}.map-embed{background:#dce9e2;border-radius:1rem;min-height:360px;overflow:hidden}.map-embed iframe{border:0;height:360px;width:100%}.empty-map{align-items:center;display:flex;flex-direction:column;height:360px;justify-content:center}.empty-map i{font-size:3rem;color:var(--sig-green)}
.map-shell { height: calc(100vh - 58px); min-height: 480px; position: relative; }
#map { height: 100%; width: 100%; z-index: 1; }
/* Critical Leaflet layout fallback. This keeps tiles aligned if the CDN stylesheet is late or unavailable. */
.leaflet-container { overflow: hidden; position: relative; -webkit-tap-highlight-color: transparent; }
.leaflet-pane,
.leaflet-tile,
.leaflet-marker-icon,
.leaflet-marker-shadow,
.leaflet-tile-container,
.leaflet-pane > svg,
.leaflet-pane > canvas { left: 0; position: absolute; top: 0; }
.leaflet-map-pane,
.leaflet-control-container { position: absolute; inset: 0; }
.leaflet-tile { height: 256px !important; max-height: none !important; max-width: none !important; user-select: none; width: 256px !important; }
.leaflet-zoom-animated { transform-origin: 0 0; }
.leaflet-top,
.leaflet-bottom { pointer-events: none; position: absolute; z-index: 1000; }
.leaflet-top { top: 0; }
.leaflet-right { right: 0; }
.leaflet-bottom { bottom: 0; }
.leaflet-left { left: 0; }
.leaflet-control { clear: both; float: left; pointer-events: auto; position: relative; z-index: 800; }
.leaflet-right .leaflet-control { clear: both; float: right; }
.leaflet-top .leaflet-control { margin-top: 10px; }
.leaflet-bottom .leaflet-control { margin-bottom: 10px; }
.leaflet-left .leaflet-control { margin-left: 10px; }
.leaflet-right .leaflet-control { margin-right: 10px; }
.map-heading, .map-legend, .map-message {
    background: rgba(255,255,255,.95);
    border: 1px solid rgba(13,68,48,.12);
    border-radius: .65rem;
    position: absolute;
    z-index: 500;
}
.map-heading { left: 1rem; padding: .85rem 1rem; top: 1rem; }
.map-heading h1 { font-size: 1.2rem; margin: 0; }
.map-heading p { color: #587067; font-size: .85rem; margin: .15rem 0 0; }
.eyebrow { color: var(--sig-green); font-size: .67rem; font-weight: 800; letter-spacing: .14em; }
.map-legend { bottom: 1.5rem; font-size: .78rem; left: 1rem; padding: .7rem .85rem; }
.legend-color { border: 1px solid var(--sig-green-dark); display: inline-block; height: 12px; margin-right: .45rem; width: 18px; }
.legend-default { background: rgba(24,121,78,.35); }
.legend-hover { background: rgba(244,185,66,.7); }
.legend-village { background: rgba(31,111,235,.4); border-color: #1452a3; }
.map-message { bottom: 1.5rem; padding: .65rem .9rem; right: 1rem; }
.map-filter { background:#fff; border-radius:.65rem; position:absolute; right:1rem; top:1rem; width:290px; z-index:600; }
.filter-toggle { background:var(--sig-green-dark); border:0; border-radius:.65rem .65rem 0 0; color:#fff; padding:.7rem .85rem; text-align:left; width:100%; }
.filter-body { max-height:calc(100vh - 160px); overflow:auto; padding:.8rem; }
.category-option { align-items:center; display:flex; gap:.5rem; margin-bottom:.4rem; }
.category-symbol { align-items:center; border-radius:50%; color:#fff; display:inline-flex; height:24px; justify-content:center; width:24px; }
.facility-marker { align-items:center; border:2px solid #fff; border-radius:50% 50% 50% 0; box-shadow:0 2px 6px rgba(0,0,0,.4); color:#fff; display:flex; height:34px; justify-content:center; transform:rotate(-45deg); width:34px; }
.facility-marker i { transform:rotate(45deg); }
.facility-photo { border-radius:.35rem; display:block; margin:.4rem 0; max-height:120px; object-fit:cover; width:200px; }
.map-message.is-error { border-color: #dc3545; color: #b02a37; }
.leaflet-popup-content { line-height: 1.45; }
.popup-title { color: var(--sig-green-dark); font-size: 1rem; font-weight: 700; margin-bottom: .25rem; }

@media (max-width: 575.98px) {
    .map-heading { right: 1rem; }
    .map-message { bottom: 1rem; left: 1rem; right: 1rem; text-align: center; }
    .map-legend { bottom: 5rem; }
}
@media (max-width: 991.98px) {.sig-navbar .navbar-collapse{padding:.75rem 0}.sig-navbar .nav-link{padding:.55rem 0}.hero-section h1{font-size:clamp(2.2rem,8vw,3.6rem)}.min-vh-75{min-height:68vh}.map-filter{right:.75rem;top:.75rem;width:270px}.leaflet-control-layers{margin-top:4.25rem}.content-card{padding:1.5rem}}
@media (max-width: 575.98px) {.navbar-brand{font-size:1rem;max-width:72%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hero-section{padding:2rem 0}.hero-section p{font-size:1rem}.hero-section .btn{font-size:.95rem;width:100%}.page-hero{padding:2.7rem 0}.page-hero h1{font-size:2rem}.map-shell{height:calc(100dvh - 58px)}.map-filter{left:.65rem;right:.65rem;top:.65rem;width:auto}.filter-body{max-height:48vh}.map-heading{display:none}.map-legend{bottom:4.8rem;left:.65rem}.leaflet-control-zoom{margin-top:4.5rem!important}.profile-title{font-size:1.5rem!important}.feature-card,.content-card{padding:1.25rem}.contact-item strong{font-size:.9rem;word-break:break-word}.map-embed,.map-embed iframe{height:300px;min-height:300px}}
.leaflet-marker-icon .facility-marker{animation:marker-in .28s ease-out;transition:filter .2s,box-shadow .2s}.leaflet-marker-icon:hover .facility-marker{box-shadow:0 5px 14px rgba(0,0,0,.5);filter:brightness(1.12)}@keyframes marker-in{from{opacity:0;transform:rotate(-45deg) scale(.55)}to{opacity:1;transform:rotate(-45deg) scale(1)}}.leaflet-popup-content-wrapper{border-radius:.8rem;box-shadow:0 8px 28px rgba(13,68,48,.2)}.leaflet-popup-content{margin:1rem;min-width:190px}.leaflet-popup-tip{box-shadow:3px 3px 8px rgba(13,68,48,.12)}.map-message:before{animation:spin .8s linear infinite;border:2px solid #c8d8d0;border-radius:50%;border-top-color:var(--sig-green);content:'';display:inline-block;height:16px;margin-right:.5rem;vertical-align:-3px;width:16px}.map-message.is-error:before{display:none}@keyframes spin{to{transform:rotate(360deg)}}.feature-card,.purpose-item,.profile-stat{transition:transform .22s ease,box-shadow .22s ease}.feature-card:hover,.purpose-item:hover{box-shadow:0 16px 38px rgba(13,68,48,.13);transform:translateY(-4px)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
