/* Silver Tree portfolio map — page chrome. MapLibre's own CSS loads lazily with the library. */
.str-mapwrap{position:relative;background:#eef1f4;height:min(82vh,860px);min-height:520px;overflow:hidden;isolation:isolate}
.str-mapwrap .map-canvas{position:absolute;inset:0}
.str-mapwrap .maplibregl-map{font:inherit}
/* poster shown until the library loads (and, on phones, until the visitor asks for the map) */
.str-map-poster{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;background:#eef1f4 url(/assets/map/us-poster.svg) no-repeat center/contain;transition:opacity .5s}
.str-map-poster .pill{box-shadow:0 8px 30px rgba(14,27,38,.18)}
.map-ready .str-map-poster{opacity:0;pointer-events:none}
.map-loading .str-map-poster .pill{opacity:.5;pointer-events:none}
.map-failed .str-map-poster::after{content:'The interactive map could not load. All communities are listed below.';position:absolute;bottom:24px;left:0;right:0;text-align:center;font:400 14px/1.4 var(--sans);color:var(--mute)}
.map-failed .str-map-poster .pill{display:none}
/* region bubbles (tier 1) */
.str-bubble{display:flex;flex-direction:column;align-items:center;justify-content:center;border:0;border-radius:50%;background:rgba(255,255,255,.94);box-shadow:0 10px 30px rgba(14,27,38,.16),0 0 0 6px rgba(255,255,255,.35);cursor:pointer;padding:0;transition:transform .35s var(--ease),box-shadow .35s;font-family:var(--sans)}
.str-bubble:hover,.str-bubble:focus-visible{transform:scale(1.06);box-shadow:0 14px 36px rgba(14,27,38,.22),0 0 0 8px rgba(255,255,255,.45);outline:0}
.str-bubble b{font:600 clamp(24px,2.4vw,38px)/1 var(--serif);color:var(--gold);letter-spacing:-.01em}
.str-bubble span{margin-top:6px;font:500 8.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
/* persistent chrome */
.str-map-caption{position:absolute;left:0;right:0;bottom:14px;z-index:3;text-align:center;font:500 11px/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--mute);pointer-events:none;padding:0 120px}
.str-map-back{position:absolute;left:16px;bottom:40px;z-index:3;display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.94);border:1px solid var(--line);padding:11px 14px;font:500 10.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);cursor:pointer;transition:opacity .3s,visibility .3s}
.str-map-back::before{content:'‹';font:400 16px/0 var(--serif);color:var(--gold)}
.str-map-back:hover{background:#fff;color:var(--blue)}
[data-tier="1"] .str-map-back{opacity:.55}
.str-map-key{position:absolute;right:16px;bottom:40px;z-index:3;background:rgba(255,255,255,.94);border:1px solid var(--line);padding:12px 14px 10px;font:400 12.5px/1.6 var(--sans);color:var(--body);min-width:150px}
.str-map-key b{display:block;font:500 9.5px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}
.str-map-key i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:-1px;border:2px solid #fff;box-shadow:0 0 0 1px rgba(14,27,38,.15)}
.str-mapwrap .maplibregl-ctrl-top-right{top:calc(var(--hdr) + 12px);right:16px}
.str-mapwrap .maplibregl-ctrl-group{border-radius:0;box-shadow:none;border:1px solid var(--line);background:rgba(255,255,255,.94)}
.str-mapwrap .maplibregl-ctrl-group button{width:40px;height:40px;color:var(--mute)}
.str-mapwrap .maplibregl-ctrl-group button+button{border-top:1px solid var(--line)}
.str-mapwrap .maplibregl-ctrl-bottom-left{bottom:0;left:0}
.str-mapwrap .maplibregl-ctrl-attrib{background:rgba(255,255,255,.7);font:400 10.5px/1.4 var(--sans);color:var(--mute);padding:3px 8px;border-radius:0}
.str-mapwrap .maplibregl-ctrl-attrib a{color:var(--body)}
.str-mapwrap .maplibregl-cooperative-gesture-screen{font:500 14px/1.4 var(--sans)}
/* popup card (desktop) */
.str-popup .maplibregl-popup-content{padding:0;border-radius:0;box-shadow:0 18px 50px rgba(14,27,38,.28);overflow:visible}
.str-popup .maplibregl-popup-tip{border-top-color:#fff}
.str-card{display:grid;grid-template-columns:150px 1fr;min-width:340px;position:relative;background:#fff}
.str-card.no-photo{grid-template-columns:1fr;min-width:260px}
.str-card-ph{display:block;height:100%;min-height:150px;overflow:hidden;background:var(--navy2)}
.str-card-ph img{width:100%;height:100%;object-fit:cover;display:block}
.str-card-bd{padding:22px 40px 20px 20px;display:flex;flex-direction:column;gap:6px;justify-content:center}
.str-card h3{font:600 20px/1.2 var(--serif);color:var(--ink);margin:0}
.str-card-loc{font:500 10px/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--mute);margin:0 0 6px}
.str-card-more{display:inline-flex;align-items:center;gap:10px;font:500 11px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.str-card-arrow{width:30px;height:30px;color:var(--gold);transition:transform .35s var(--ease)}
.str-card-arrow svg{width:100%;height:100%}
.str-card-more:hover .str-card-arrow{transform:translateX(4px)}
.str-card-x{position:absolute;top:6px;right:6px;width:32px;height:32px;border:0;background:transparent;font:300 26px/1 var(--sans);color:var(--mute);cursor:pointer}
.str-card-x:hover{color:var(--ink)}
/* bottom sheet (phones) */
.str-sheet{position:absolute;left:0;right:0;bottom:0;z-index:5;transform:translateY(100%);transition:transform .4s var(--ease);box-shadow:0 -14px 40px rgba(14,27,38,.22)}
.str-sheet.in{transform:none}
.str-sheet .str-card{grid-template-columns:120px 1fr;min-width:0}
.str-sheet .str-card-ph{min-height:120px}
.str-sheet .str-card-bd{padding:18px 44px 18px 16px}
.str-sheet .str-card-x{width:44px;height:44px}
@media (max-width:760px){
  .str-mapwrap{height:66vh;min-height:440px}
  .str-map-caption{bottom:8px;padding:0 16px;font-size:9.5px;letter-spacing:.14em}
  .str-map-back{bottom:44px;left:10px;padding:13px 12px}
  .str-map-key{left:10px;right:auto;top:calc(var(--hdr) + 10px);bottom:auto;padding:8px 10px;min-width:0;font-size:11px;line-height:1.3;display:flex;gap:10px;align-items:center}
  .str-map-key b{margin:0 2px 0 0}.str-map-key br{display:none}
  .str-map-caption{bottom:22px;padding:0 12px;font-size:9px;letter-spacing:.12em;text-align:right}
  .str-bubble b{font-size:19px}.str-bubble span{display:none}
  .str-bubble{box-shadow:0 6px 18px rgba(14,27,38,.16),0 0 0 3px rgba(255,255,255,.35)}
  .str-mapwrap .maplibregl-ctrl-group button{width:44px;height:44px}
}
