/* S615 Portfolio — Frontend */
.s615pf-filter{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}
.s615pf-filter-btn{padding:7px 18px;border:1px solid #e5e5ea;border-radius:20px;background:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;color:#6e6e73;font-family:inherit}
.s615pf-filter-btn:hover{border-color:var(--s6s-primary,#2962FF);color:var(--s6s-primary,#2962FF)}
.s615pf-filter-btn.active{background:var(--s6s-primary,#2962FF);color:#fff;border-color:var(--s6s-primary,#2962FF)}
.s615pf-grid{display:grid;grid-template-columns:repeat(var(--pf-cols,3),1fr);gap:var(--pf-gap,16px)}
.s615pf-item{border-radius:12px;overflow:hidden;background:#fff;border:1px solid #e5e5ea;transition:all .3s}
.s615pf-item.hidden{display:none}
.s615pf-item:hover{box-shadow:0 8px 30px rgba(0,0,0,.08);transform:translateY(-3px)}
.s615pf-thumb{position:relative;overflow:hidden;aspect-ratio:4/3}
.s615pf-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.s615pf-hover-zoom:hover img{transform:scale(1.08)}
.s615pf-hover-fade .s615pf-overlay{opacity:0;transition:opacity .3s}
.s615pf-hover-fade:hover .s615pf-overlay{opacity:1}
.s615pf-hover-slide .s615pf-overlay{transform:translateY(100%);transition:transform .3s}
.s615pf-hover-slide:hover .s615pf-overlay{transform:translateY(0)}
.s615pf-overlay{position:absolute;inset:0;background:rgba(0,0,0,.55);display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;padding:16px}
.s615pf-thumb:hover .s615pf-overlay{opacity:1}
.s615pf-overlay h3{color:#fff;font-size:16px;font-weight:700;margin:0 0 4px;text-align:center}
.s615pf-cats{color:rgba(255,255,255,.7);font-size:12px}
.s615pf-actions{display:flex;gap:8px;margin-top:12px}
.s615pf-actions a{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.2);color:#fff;display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:16px;transition:background .2s}
.s615pf-actions a:hover{background:rgba(255,255,255,.4)}
.s615pf-info{padding:14px 16px}
.s615pf-title{font-size:15px;font-weight:600;color:#1d1d1f;text-decoration:none;display:block}
.s615pf-title:hover{color:#2962FF}
.s615pf-client{font-size:12px;color:#aeaeb2;display:block;margin-top:2px}
/* Lightbox */
.s615pf-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:999999;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;cursor:zoom-out}
.s615pf-lightbox.active{opacity:1}
.s615pf-lightbox img{max-width:90vw;max-height:90vh;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5)}
.s615pf-lb-close{position:absolute;top:20px;right:20px;color:#fff;font-size:28px;cursor:pointer;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:rgba(255,255,255,.1)}
.s615pf-lb-close:hover{background:rgba(255,255,255,.2)}
@media(max-width:768px){.s615pf-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.s615pf-grid{grid-template-columns:1fr}}
