.stp-filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin:22px auto 30px}
.stp-filter{border:1px solid #ddd;background:transparent;color:inherit;border-radius:24px;padding:9px 19px;cursor:pointer;font:inherit}
.stp-filter:hover,.stp-filter.is-active{background:#252525;border-color:#252525;color:#fff}
.stp-portfolio-grid{display:grid;grid-template-columns:repeat(var(--stp-cols,3),minmax(0,1fr));gap:22px}
.stp-gallery-card{position:relative;display:block;color:inherit;text-decoration:none!important;overflow:hidden;min-width:0;background:#f0efec}
.stp-card-image,.stp-card-empty{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .35s ease}
.stp-card-empty{display:grid;place-items:center;font-size:42px}
.stp-gallery-card:hover .stp-card-image{transform:scale(1.035)}
.stp-card-caption{display:flex;flex-direction:column;gap:4px;padding:14px 12px;background:#fff}
.stp-card-caption strong{font-size:1rem;line-height:1.35}
.stp-card-caption small{font-size:.84rem;opacity:.75}
.stp-masonry{columns:3 260px;column-gap:12px;margin:24px auto}
.stp-image-button{display:block;break-inside:avoid;page-break-inside:avoid;width:100%;border:0;background:transparent;padding:0;margin:0 0 12px;cursor:zoom-in;text-align:left}
.stp-image-button img{display:block;width:100%;height:auto;transition:opacity .2s}
.stp-image-button:hover img{opacity:.85}
.stp-pagination{display:flex;gap:8px;justify-content:center;margin:24px auto;flex-wrap:wrap}
.stp-pagination a{border:1px solid #ddd;padding:8px 14px;text-decoration:none;color:inherit}
.stp-pagination a[aria-current=page]{background:#222;color:#fff}
.stp-back{margin:0 0 20px}
.stp-back a{text-decoration:none}
.stp-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.94);z-index:999999;display:flex;align-items:center;justify-content:center;gap:10px;padding:32px 60px;box-sizing:border-box}
.stp-lightbox[hidden]{display:none!important}
.stp-lightbox img{max-width:100%;max-height:calc(100vh - 82px);width:auto;height:auto;object-fit:contain}
.stp-lightbox button{font-size:27px;cursor:pointer;color:#fff;background:#333b;border:1px solid #777;border-radius:50%;width:48px;height:48px;flex-shrink:0}
.stp-lightbox .stp-close{position:absolute;right:20px;top:16px}
.stp-lightbox .stp-counter{position:absolute;color:#fff;bottom:15px;left:0;right:0;text-align:center;font:14px/1.5 sans-serif}
@media(max-width:720px){.stp-portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.stp-card-caption{padding:9px}.stp-masonry{columns:2 140px;column-gap:6px}.stp-image-button{margin-bottom:6px}.stp-lightbox{padding:48px 10px;gap:4px}.stp-lightbox button{width:38px;height:38px;font-size:22px}}
@media(max-width:420px){.stp-portfolio-grid{grid-template-columns:1fr}}
