.portfolio-page-content{max-width:1500px;margin:auto;padding:128px 36px 70px}
.portfolio-heading{margin-bottom:28px}
.portfolio-heading h1{font-size:clamp(34px,4vw,60px);letter-spacing:-.05em;line-height:1.08;margin:0 0 16px}
.portfolio-heading p{color:#bdc3c7;font-size:15px;max-width:650px;line-height:1.7}
.portfolio-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:16px;margin-bottom:24px}
.portfolio-toolbar label{display:grid;gap:8px;font-size:12px;color:#c6cbd0}
.portfolio-toolbar input,.portfolio-toolbar select{font:inherit;font-size:15px;min-height:44px;background:#1c1f21;color:#fff;border:1px solid #565b5e;border-radius:0;padding:10px 12px;width:100%}
.portfolio-toolbar label:first-child{flex:1;min-width:220px}
#portfolio-count{font-size:13px;color:#c6cbd0;margin-left:auto}
.portfolio-layout{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.5fr);gap:24px;align-items:start}
.portfolio-map-panel{grid-column:2;grid-row:1;position:sticky;top:24px;min-width:0}
.portfolio-map{height:min(68vh,740px);min-height:340px;z-index:0;background:#dde2da;color:#18201d;border:1px solid #5a6260}
.map-notice{font-size:13px;line-height:1.6;margin:10px 0}
.map-notice:empty{display:none}
.portfolio-list{grid-column:1;grid-row:1;display:grid;gap:16px;max-height:74vh;overflow-y:auto;padding:3px}
.built-card{border:1px solid #3f4648;background:#15191b;overflow:hidden}
.built-card.selected{border-color:var(--accent,#ff793e);box-shadow:0 0 0 1px var(--accent,#ff793e)}
.built-card>img{display:block;width:100%;aspect-ratio:1.8;object-fit:cover;background:#242a2e}
.built-card-copy{padding:20px}
.built-card h2{font-size:22px;line-height:1.2;margin:6px 0 12px;letter-spacing:-.03em;overflow-wrap:anywhere}
.built-location,.built-facts{font-size:13px;color:#b8c1c5;line-height:1.6;margin:0}
.built-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.built-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border:1px solid #7b8589;padding:10px 14px;background:transparent;color:inherit;text-decoration:none;font:inherit;font-size:13px;cursor:pointer}
.built-button:hover{background:#ffffff12}
.built-button:focus-visible,.portfolio-toolbar :focus-visible{outline:2px solid var(--accent,#ff793e);outline-offset:3px}
.portfolio-empty{padding:36px 24px;border:1px solid #41484b;line-height:1.7}
.portfolio-empty h2{font-size:24px;margin:0 0 10px}
.portfolio-empty p{font-size:14px;color:#bdc3c7}
.portfolio-pin{background:transparent;border:0}
.portfolio-pin>span{width:34px;height:34px;margin:3px;display:grid;place-items:center;background:#f6783b;color:#171e20;border:2px solid #fff;border-radius:50% 50% 50% 6px;box-shadow:0 2px 8px #0006}
.portfolio-pin svg{width:20px;height:20px}
.portfolio-pin.selected>span{background:#17272e;color:#fff;box-shadow:0 0 0 3px #f6783b}
.portfolio-pin:focus-visible{outline:3px solid #17272e;outline-offset:3px}
.built-popup{font-family:Montserrat,system-ui,sans-serif;color:#17272e}
.built-popup img{display:block;width:100%;height:130px;object-fit:cover;margin-bottom:10px}
.built-popup strong{display:block;font-size:15px;overflow-wrap:anywhere}
.built-popup p{margin:8px 0!important;line-height:1.5;font-size:12px}
.built-popup button{font:inherit;font-size:12px;cursor:pointer;border:0;background:#17272e;color:#fff;min-height:40px;padding:10px}
.portfolio-map .leaflet-control-attribution{font:11px/1.4 Arial,sans-serif;background:#fffffff2}
.portfolio-map .leaflet-control-attribution a{color:#155b83}
.portfolio-map .leaflet-control-zoom a{color:#17272e}
.portfolio-detail{width:min(800px,calc(100% - 32px));max-height:90dvh;overflow:auto;padding:0;border:1px solid #566269;background:#15191b;color:#f5f5f0}
.portfolio-detail::backdrop{background:#000b}
.portfolio-detail>button{position:sticky;top:12px;margin:12px 12px 12px auto;display:block;z-index:1;background:#15191b;color:#fff}
#portfolio-detail-body>img{width:100%;max-height:420px;object-fit:cover;display:block}
.built-detail-copy{padding:24px}
.built-detail-copy h2{font-size:30px;line-height:1.2;overflow-wrap:anywhere}
.built-detail-copy p{font-size:14px;line-height:1.8}
.built-description{white-space:pre-wrap;overflow-wrap:anywhere}
[hidden]{display:none!important}
@media(max-width:800px){
  .portfolio-page-content{padding:110px 18px 50px}
  .portfolio-layout{display:flex;flex-direction:column;gap:18px}
  .portfolio-map-panel{position:relative;top:0;width:100%}
  .portfolio-map{height:48vh;min-height:300px}
  .portfolio-list{width:100%;max-height:none;overflow:visible;grid-template-columns:repeat(2,minmax(0,1fr))}
  .portfolio-empty{grid-column:1/-1}
}
@media(max-width:520px){.portfolio-list{grid-template-columns:1fr}.portfolio-toolbar label{width:100%}#portfolio-count{margin:0}.built-detail-copy{padding:18px}}
