.pt-wrap{width:100%;position:relative;--pt-gap:14px;font-family:inherit}
.pt-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:0 0 30px}
.pt-filter{border:1px solid #d8d8d8;background:transparent;color:#222;padding:10px 18px;border-radius:999px;cursor:pointer;font:inherit;font-size:14px;line-height:1;transition:.25s}
.pt-filter:hover,.pt-filter.is-active{background:#111;color:#fff;border-color:#111}
.pt-grid{display:grid;grid-template-columns:repeat(var(--pt-cols),minmax(0,1fr));align-items:start;gap:var(--pt-gap)}
.pt-card{position:relative;overflow:hidden;cursor:pointer;background:#eee;min-width:0}
.pt-card:nth-child(5n+1){grid-row:span 2}
.pt-card:nth-child(7n+3){transform:translateY(12px)}
.pt-card img{display:block;width:100%;height:auto;transition:transform .6s cubic-bezier(.2,.7,.2,1);aspect-ratio:auto}
.pt-card:hover img{transform:scale(1.035)}
.pt-overlay{position:absolute;inset:0;padding:22px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(to top,rgba(0,0,0,.78),transparent 68%);opacity:0;transition:.3s}
.pt-card:hover .pt-overlay{opacity:1}
.pt-title{color:#fff;font-size:18px;font-weight:600}
.pt-cat{color:rgba(255,255,255,.78);font-size:11px;text-transform:uppercase;letter-spacing:.1em;margin-top:5px}
.pt-desc{color:rgba(255,255,255,.84);font-size:13px;line-height:1.5;margin-top:8px}
.pt-lightbox{position:fixed;inset:0;z-index:999999;background:rgba(7,7,8,.965);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,visibility .25s}
.pt-lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto}
.pt-stage{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:55px 90px 80px}
.pt-lightbox-image{display:block;max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;user-select:none;transition:opacity .18s}
.pt-close,.pt-prev,.pt-next{position:absolute;z-index:4;border:0;color:#fff;background:rgba(255,255,255,.09);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s}
.pt-close:hover,.pt-prev:hover,.pt-next:hover{background:rgba(255,255,255,.2)}
.pt-close{top:18px;right:22px;width:46px;height:46px;border-radius:50%;font-size:30px;font-weight:300;line-height:1}
.pt-prev,.pt-next{top:50%;transform:translateY(-50%);width:52px;height:76px;border-radius:4px;font-size:40px;line-height:1}
.pt-prev{left:18px}.pt-next{right:18px}
.pt-prev:hover,.pt-next:hover{transform:translateY(-50%) scale(1.04)}
.pt-caption{position:absolute;left:90px;bottom:22px;max-width:60%;color:#fff}
.pt-caption-title{font-size:19px;font-weight:600}.pt-caption-desc{margin-top:4px;font-size:13px;line-height:1.45;color:rgba(255,255,255,.7)}
.pt-counter{position:absolute;right:90px;bottom:25px;color:rgba(255,255,255,.7);font-size:13px}
.pt-loader{display:none;position:absolute;width:30px;height:30px;border:2px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:ptspin .7s linear infinite}
@keyframes ptspin{to{transform:rotate(360deg)}}
.pt-lightbox.is-loading .pt-loader{display:block}.pt-lightbox.is-loading .pt-lightbox-image{opacity:.15}
@media(max-width:1024px){.pt-grid{grid-template-columns:repeat(var(--pt-cols-tablet),minmax(0,1fr))}}
@media(max-width:767px){
.pt-grid{grid-template-columns:repeat(var(--pt-cols-mobile),minmax(0,1fr));gap:8px}
.pt-card:nth-child(7n+3){transform:none}.pt-card:nth-child(5n+1){grid-row:auto}
.pt-overlay{padding:12px}.pt-title{font-size:14px}.pt-desc{display:none}
.pt-filters{justify-content:flex-start;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}.pt-filters::-webkit-scrollbar{display:none}
.pt-filter{flex:0 0 auto;font-size:13px;padding:9px 14px}
.pt-stage{padding:60px 14px 105px}.pt-prev,.pt-next{width:40px;height:52px;font-size:28px}.pt-prev{left:4px}.pt-next{right:4px}
.pt-caption{left:15px;right:15px;bottom:20px;max-width:calc(100% - 80px)}.pt-caption-title{font-size:16px}.pt-counter{right:15px;bottom:22px}
.pt-close{top:12px;right:12px}
}