/* CoreStruct Portfolio */
.csw-portfolio{background:var(--white)}
.csw-portfolio .deco.tr i:nth-child(1){background:var(--forest)}
.csw-portfolio .deco.tr i:nth-child(2){background:var(--mint)}
.csw-portfolio .deco.tr i:nth-child(3){background:var(--sage)}
.csw-portfolio .pj-filter{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:clamp(32px,5vw,56px)}
.csw-portfolio .pj-filter button{font:400 15px/1 var(--f-head);padding:12px 20px;margin:0;min-height:0;border-radius:999px;border:1.5px solid rgba(90,124,108,.35);background:var(--white);color:var(--text);cursor:pointer;text-transform:none;letter-spacing:normal;box-shadow:none;transition:background .25s,color .25s,border-color .25s,transform .25s}
.csw-portfolio .pj-filter button:hover,.csw-portfolio .pj-filter button:focus{border-color:var(--sage);background:var(--mint);color:var(--text);transform:translateY(-2px)}
.csw-portfolio .pj-filter button:focus:not(:hover){transform:none}
.csw-portfolio .pj-filter button.is-on{background:var(--forest);border-color:var(--forest);color:var(--white)}
.csw-portfolio .pj-grid{display:grid;grid-template-columns:repeat(var(--pj-cols,2),1fr);gap:clamp(24px,3vw,40px)}
.csw-portfolio .pj{background:var(--mint);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 40px -30px rgba(40,58,43,.5);transition:transform .35s,box-shadow .35s}
.csw-portfolio .pj:hover{transform:translateY(-4px);box-shadow:0 28px 48px -28px rgba(40,58,43,.6)}
.csw-portfolio .pj[hidden]{display:none}
.csw-portfolio .pj-media{position:relative;aspect-ratio:4/3;max-width:100%}
.csw-portfolio .pj-main{position:absolute;inset:0;border:0;padding:0;margin:0;border-radius:0;min-height:0;background:var(--forest);cursor:zoom-in;overflow:hidden;box-shadow:none}
.csw-portfolio .pj-main:hover,.csw-portfolio .pj-main:focus{background:var(--forest)}
.csw-portfolio .pj-main img{width:100%;height:100%;object-fit:cover;transition:transform .7s,opacity .3s}
.csw-portfolio .pj:hover .pj-main img{transform:scale(1.04)}
.csw-portfolio .pj-zoom{position:absolute;right:18px;bottom:18px;width:46px;height:46px;border-radius:50%;background:var(--white);color:var(--ink);display:grid;place-items:center;opacity:0;translate:0 8px;transition:opacity .3s,translate .3s,background .25s}
.csw-portfolio .pj-zoom svg{width:20px;height:20px}
.csw-portfolio .pj:hover .pj-zoom,.csw-portfolio .pj-main:focus-visible .pj-zoom{opacity:1;translate:0 0}
.csw-portfolio .pj-main:hover .pj-zoom{background:var(--gold)}
.csw-portfolio .pj-tag{display:block;margin:0;position:absolute;top:18px;left:18px;z-index:1;font:700 12px/1 var(--f-accent);letter-spacing:.12em;text-transform:uppercase;color:var(--white);background:rgba(40,58,43,.75);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:10px 14px;border-radius:999px;pointer-events:none}
.csw-portfolio .pj-count{position:absolute;left:18px;bottom:18px;z-index:1;font:600 14px/1 var(--f-nav);color:var(--white);background:rgba(13,20,26,.55);padding:8px 12px;border-radius:999px;font-variant-numeric:tabular-nums;pointer-events:none}
.csw-portfolio .pj-px{position:absolute;top:0;right:0;width:84px;height:56px;pointer-events:none}
.csw-portfolio .pj-px i{position:absolute;width:28px;height:28px}
.csw-portfolio .pj-px i:nth-child(1){top:0;right:0;background:var(--white)}
.csw-portfolio .pj-px i:nth-child(2){top:0;right:56px;background:var(--white)}
.csw-portfolio .pj-px i:nth-child(3){top:28px;right:28px;background:var(--gold)}
.csw-portfolio .pj-thumbs{display:flex;gap:10px;padding:14px 14px 0}
.csw-portfolio .pj-thumb{width:84px;height:64px;padding:0;margin:0;min-height:0;border:2px solid transparent;border-radius:8px;overflow:hidden;cursor:pointer;background:none;box-shadow:none;opacity:.6;transition:opacity .25s,border-color .25s,transform .25s}
.csw-portfolio .pj-thumb:hover,.csw-portfolio .pj-thumb:focus{background:none;opacity:1}
.csw-portfolio .pj-thumb:hover{transform:translateY(-2px)}
.csw-portfolio .pj-thumb img{width:100%;height:100%;object-fit:cover}
.csw-portfolio .pj-thumb.is-on{opacity:1;border-color:var(--sage)}
.csw-portfolio .pj-body{display:flex;gap:20px;align-items:flex-start;padding:22px clamp(20px,3vw,32px) clamp(24px,3vw,32px)}
.csw-portfolio .pj-num{font:700 44px/1 var(--f-head);color:transparent;-webkit-text-stroke:1.5px rgba(90,124,108,.45);flex:none}
.csw-portfolio .pj-body .pj-title{display:block;margin-top:0;color:var(--text);font:400 clamp(20px,2vw,24px)/1.25 var(--f-head);margin-bottom:8px}
.csw-portfolio .pj-body .pj-title::before{content:"";display:block;width:32px;height:3px;background:var(--gold);margin-bottom:12px}
.csw-portfolio .pj-body .pj-text{display:block;margin:0;max-width:48ch;font:400 var(--fs-body)/1.65 var(--f-head);color:var(--text)}
/* lightbox */
.csw-portfolio .lb{position:fixed;inset:0;z-index:100000;background:rgba(13,20,26,.92);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:calc(env(safe-area-inset-top,0px) + 64px) 16px calc(env(safe-area-inset-bottom,0px) + 32px)}
.csw-portfolio .lb[hidden]{display:none}
.csw-portfolio .lb-fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:14px;min-width:0;height:100%;justify-content:center}
.csw-portfolio .lb-fig img{max-width:100%;max-height:calc(100vh - 160px);border-radius:var(--radius);object-fit:contain}
.csw-portfolio .lb-fig figcaption{color:var(--mint);font:400 16px/1.4 var(--f-head)}
.csw-portfolio .lb-fig figcaption b{color:var(--gold);font-variant-numeric:tabular-nums;margin-left:8px}
.csw-portfolio .lb-nav,.csw-portfolio .lb-x{width:52px;height:52px;padding:0;margin:0;min-height:0;border-radius:50%;border:1.5px solid rgba(255,255,255,.3);background:rgba(255,255,255,.06);color:var(--white);display:grid;place-items:center;cursor:pointer;box-shadow:none;transition:background .25s,color .25s,border-color .25s}
.csw-portfolio .lb-nav:hover,.csw-portfolio .lb-x:hover{background:var(--gold);border-color:var(--gold);color:var(--ink)}
.csw-portfolio .lb-nav svg,.csw-portfolio .lb-x svg{width:22px;height:22px}
.csw-portfolio .lb-x{position:absolute;top:calc(env(safe-area-inset-top,0px) + 16px);right:16px}
@media (max-width:860px){.csw-portfolio .pj-grid{grid-template-columns:1fr}}
@media (max-width:560px){.csw-portfolio .lb{grid-template-columns:1fr;grid-template-rows:1fr auto}.csw-portfolio .lb-fig{grid-column:1}.csw-portfolio .lb-prev,.csw-portfolio .lb-next{position:absolute;bottom:calc(env(safe-area-inset-bottom,0px) + 20px)}.csw-portfolio .lb-prev{left:calc(50% - 64px)}.csw-portfolio .lb-next{right:calc(50% - 64px)}.csw-portfolio .lb-fig img{max-height:calc(100vh - 220px)}}
