.wbcom-essential-portfolio-grid{--portfolio-columns:3;--portfolio-columns-tablet:2;--portfolio-columns-mobile:1;--portfolio-gap:30px;--portfolio-item-radius:8px;--portfolio-aspect-ratio:75%;--portfolio-box-shadow:0 2px 8px rgba(0,0,0,.08);--portfolio-box-shadow-hover:0 8px 24px rgba(0,0,0,.12);--portfolio-border-width:0px;--portfolio-image-radius:0px;--portfolio-overlay-valign:flex-end;--portfolio-text-align:left;--portfolio-content-padding:24px 24px 24px 24px;--portfolio-content-margin:0px 0px 0px 0px;--portfolio-content-radius:0px;--portfolio-filter-padding:8px 20px 8px 20px;--portfolio-title-margin:0px 0px 8px 0px;--portfolio-title-size:18px;--portfolio-title-weight:600;--portfolio-desc-size:14px;--portfolio-desc-clamp:2;--portfolio-item-bg:#fff;--portfolio-border-color:#e2e8f0;--portfolio-overlay:rgba(0,0,0,.7);--portfolio-overlay-hover:rgba(0,0,0,.85);--portfolio-title-color:#fff;--portfolio-desc-color:hsla(0,0%,100%,.9);--portfolio-filter-active:#3182ce;--portfolio-filter-text:#4a5568;--portfolio-filter-bg:rgba(0,0,0,.05);--portfolio-filter-active-bg:transparent;--portfolio-content-bg:transparent;--portfolio-layout-btn-bg:#f7f7f7;--portfolio-layout-btn-active-bg:#fff;--portfolio-empty-bg:#f8f9fa;--portfolio-empty-text:#6c757d;--portfolio-list-title:#1a202c;--portfolio-list-desc:#4a5568}.wbcom-essential-portfolio-grid.use-theme-colors{--portfolio-item-bg:var(--wbcom-card-bg,var(--wbcom-color-base,#fff));--portfolio-border-color:var(--wbcom-card-border,var(--wbcom-color-border,#e2e8f0));--portfolio-overlay:rgba(0,0,0,.7);--portfolio-overlay-hover:rgba(0,0,0,.85);--portfolio-title-color:var(--wbcom-button-text,#fff);--portfolio-desc-color:hsla(0,0%,100%,.9);--portfolio-filter-active:var(--wbcom-color-primary,#3182ce);--portfolio-filter-text:var(--wbcom-text-color,var(--wbcom-color-contrast-2,#4a5568));--portfolio-filter-bg:rgba(0,0,0,.05);--portfolio-filter-active-bg:transparent;--portfolio-content-bg:transparent;--portfolio-layout-btn-bg:var(--wbcom-card-bg-alt,var(--wbcom-color-base-2,#f7f7f7));--portfolio-layout-btn-active-bg:var(--wbcom-card-bg,var(--wbcom-color-base,#fff));--portfolio-empty-bg:var(--wbcom-card-bg-alt,var(--wbcom-color-base-2,#f8f9fa));--portfolio-empty-text:var(--wbcom-meta-color,var(--wbcom-color-contrast-2,#6c757d));--portfolio-list-title:var(--wbcom-heading-color,var(--wbcom-color-contrast,#1a202c));--portfolio-list-desc:var(--wbcom-text-color,var(--wbcom-color-contrast-2,#4a5568))}.wbcom-portfolio-controls{align-items:center;display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;margin-bottom:30px}.wbcom-portfolio-filters{display:flex;flex-wrap:wrap;gap:8px}.wbcom-portfolio-filter{background:var(--portfolio-filter-bg);border:none;border-radius:var(--portfolio-filter-radius,4px);color:var(--portfolio-filter-text);cursor:pointer;font-size:14px;font-weight:500;padding:var(--portfolio-filter-padding);position:relative;transition:all .3s ease}.wbcom-portfolio-filter:after{background:var(--portfolio-filter-active);bottom:0;content:"";height:2px;left:50%;position:absolute;transform:translateX(-50%);transition:all .3s ease;width:0}.wbcom-portfolio-filter.is-active,.wbcom-portfolio-filter:hover{background:var(--portfolio-filter-active-bg,transparent);border:none;color:var(--portfolio-filter-active)}.wbcom-portfolio-filter.is-active:after{width:100%}.wbcom-portfolio-layout-switch{background:var(--portfolio-layout-btn-bg);border-radius:6px;display:flex;gap:4px;padding:4px}.wbcom-layout-btn{align-items:center;background:transparent;border:none;border-radius:4px;color:var(--portfolio-filter-text);cursor:pointer;display:flex;height:36px;justify-content:center;padding:0;transition:all .2s ease;width:36px}.wbcom-layout-btn:hover{background:transparent;border:none;color:var(--portfolio-filter-active)}.wbcom-layout-btn.is-active{background:var(--portfolio-layout-btn-active-bg);box-shadow:0 1px 3px rgba(0,0,0,.1);color:var(--portfolio-filter-active)}.wbcom-layout-btn svg{height:18px;width:18px}.wbcom-portfolio-items{display:grid;gap:var(--portfolio-gap)}.wbcom-portfolio-items.layout-grid{grid-template-columns:repeat(var(--portfolio-columns),1fr)}.wbcom-portfolio-items.layout-list{grid-template-columns:1fr}.wbcom-portfolio-items.masonry-layout{grid-auto-rows:minmax(200px,auto)}.wbcom-portfolio-item{opacity:0;transform:translateY(20px);transition:opacity .4s ease,transform .4s ease}.wbcom-portfolio-item.is-visible{opacity:1;transform:translateY(0)}.wbcom-portfolio-item.is-hidden{display:none}.wbcom-portfolio-item.is-filtering{transition:none}.wbcom-portfolio-item-inner{background:var(--portfolio-item-bg);border:var(--portfolio-border-width) solid var(--portfolio-border-color);border-radius:var(--portfolio-item-radius);box-shadow:var(--portfolio-box-shadow);height:100%;overflow:hidden;position:relative;transition:transform .3s ease,box-shadow .3s ease}.wbcom-portfolio-item-inner:hover{box-shadow:var(--portfolio-box-shadow-hover)}.wbcom-portfolio-image{border-radius:var(--portfolio-image-radius);overflow:hidden;padding-top:var(--portfolio-aspect-ratio);position:relative}.wbcom-portfolio-image img{height:100%;left:0;-o-object-fit:cover;object-fit:cover;position:absolute;top:0;transition:transform .5s ease,opacity .3s ease;width:100%}.wbcom-portfolio-image.wbcom-portfolio-placeholder{align-items:center;background:var(--portfolio-layout-btn-bg);display:flex;justify-content:center}.wbcom-portfolio-image.wbcom-portfolio-placeholder svg{color:#ccc;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.wbcom-portfolio-lightbox-btn{align-items:center;background:hsla(0,0%,100%,.95);border:none;border-radius:50%;color:var(--portfolio-filter-active);cursor:pointer;display:flex;height:48px;justify-content:center;left:50%;opacity:0;padding:0;position:absolute;top:50%;transform:translate(-50%,-50%) scale(.8);transition:all .3s ease;width:48px;z-index:10}.wbcom-portfolio-lightbox-btn svg{height:20px;width:20px}.wbcom-portfolio-lightbox-btn:hover{background:#fff;color:var(--portfolio-filter-active);transform:translate(-50%,-50%) scale(1.1)}.has-lightbox .wbcom-portfolio-item-inner:hover .wbcom-portfolio-lightbox-btn{opacity:1;transform:translate(-50%,-50%) scale(1)}.wbcom-portfolio-overlay{align-items:var(--portfolio-overlay-valign);background:var(--portfolio-overlay);bottom:0;display:flex;justify-content:flex-start;left:0;margin:var(--portfolio-content-margin);opacity:0;padding:var(--portfolio-content-padding);position:absolute;right:0;text-align:var(--portfolio-text-align);top:0;transition:opacity .3s ease,background .3s ease}.wbcom-portfolio-content{background:var(--portfolio-content-bg);border-radius:var(--portfolio-content-radius);transform:translateY(20px);transition:transform .3s ease;width:100%}.wbcom-portfolio-title{color:var(--portfolio-title-color);font-size:var(--portfolio-title-size);font-weight:var(--portfolio-title-weight);line-height:1.3;margin:var(--portfolio-title-margin)}.wbcom-portfolio-title a{color:inherit;text-decoration:none}.wbcom-portfolio-title a:hover{text-decoration:underline}.wbcom-portfolio-description{color:var(--portfolio-desc-color);display:-webkit-box;font-size:var(--portfolio-desc-size);-webkit-line-clamp:var(--portfolio-desc-clamp);line-height:1.5;margin:0 0 16px;-webkit-box-orient:vertical;overflow:hidden}.wbcom-portfolio-link{align-items:center;background:var(--portfolio-title-color);border-radius:50%;color:var(--portfolio-overlay);display:inline-flex;height:40px;justify-content:center;text-decoration:none;transition:transform .2s ease;width:40px}.wbcom-portfolio-link:hover{transform:scale(1.1)}.wbcom-portfolio-link svg{height:18px;width:18px}.hover-effect-zoom .wbcom-portfolio-item-inner:hover .wbcom-portfolio-image img{transform:scale(1.1)}.hover-effect-zoom .wbcom-portfolio-item-inner:hover .wbcom-portfolio-overlay{opacity:1}.hover-effect-zoom .wbcom-portfolio-item-inner:hover .wbcom-portfolio-content{transform:translateY(0)}.hover-effect-overlay .wbcom-portfolio-overlay{opacity:0}.hover-effect-overlay .wbcom-portfolio-item-inner:hover .wbcom-portfolio-overlay{background:var(--portfolio-overlay-hover);opacity:1}.hover-effect-overlay .wbcom-portfolio-item-inner:hover .wbcom-portfolio-content{transform:translateY(0)}.hover-effect-slide-up .wbcom-portfolio-overlay{opacity:1;transform:translateY(100%)}.hover-effect-slide-up .wbcom-portfolio-content,.hover-effect-slide-up .wbcom-portfolio-item-inner:hover .wbcom-portfolio-overlay{transform:translateY(0)}.hover-effect-slide-up .wbcom-portfolio-item-inner:hover .wbcom-portfolio-image img{transform:scale(1.05)}.hover-effect-fade .wbcom-portfolio-overlay{opacity:0}.hover-effect-fade .wbcom-portfolio-content{transform:translateY(0)}.hover-effect-fade .wbcom-portfolio-item-inner:hover .wbcom-portfolio-overlay,.hover-effect-none .wbcom-portfolio-overlay{opacity:1}.hover-effect-none .wbcom-portfolio-content{transform:translateY(0)}.hover-animation-grow .wbcom-portfolio-item-inner:hover{transform:scale(1.03)}.hover-animation-shrink .wbcom-portfolio-item-inner:hover{transform:scale(.97)}.hover-animation-pulse .wbcom-portfolio-item-inner:hover{animation:portfolio-pulse 1s ease infinite}.hover-animation-float .wbcom-portfolio-item-inner:hover{transform:translateY(-8px)}.hover-animation-sink .wbcom-portfolio-item-inner:hover{transform:translateY(8px)}.hover-animation-bob .wbcom-portfolio-item-inner:hover{animation:portfolio-bob 1s ease-in-out infinite}.hover-animation-hang .wbcom-portfolio-item-inner:hover{animation:portfolio-hang 1s ease-in-out infinite}@keyframes portfolio-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}@keyframes portfolio-bob{0%,to{transform:translateY(-4px)}50%{transform:translateY(4px)}}@keyframes portfolio-hang{0%,to{transform:translateY(4px)}50%{transform:translateY(-4px)}}.text-placement-below .wbcom-portfolio-image{position:relative}.text-placement-below .wbcom-portfolio-overlay{display:none}.text-placement-below .wbcom-portfolio-content-below{background:var(--portfolio-content-bg,var(--portfolio-item-bg));border-radius:0 0 var(--portfolio-content-radius) var(--portfolio-content-radius);padding:var(--portfolio-content-padding);text-align:var(--portfolio-text-align)}.text-placement-below .wbcom-portfolio-content-below .wbcom-portfolio-title{color:var(--portfolio-list-title);margin:var(--portfolio-title-margin)}.text-placement-below .wbcom-portfolio-content-below .wbcom-portfolio-description{color:var(--portfolio-list-desc)}.text-placement-below .wbcom-portfolio-content-below .wbcom-portfolio-link{align-items:center;background:transparent;border-radius:0;color:var(--portfolio-filter-active);display:inline-flex;font-weight:500;gap:8px;height:auto;padding:0;width:auto}.text-placement-below .wbcom-portfolio-content-below .wbcom-portfolio-link svg{height:16px;width:16px}.text-placement-below .wbcom-portfolio-content-below .wbcom-portfolio-link:hover{transform:translateX(4px)}.layout-list .wbcom-portfolio-item-inner{display:flex;flex-direction:row}.layout-list .wbcom-portfolio-image{flex:0 0 300px;height:200px;padding-top:0}.layout-list .wbcom-portfolio-image img{height:100%;position:relative}.layout-list .wbcom-portfolio-overlay{align-items:center;background:var(--portfolio-item-bg);flex:1;opacity:1;padding:24px 32px;position:relative}.layout-list .wbcom-portfolio-content{transform:none}.layout-list .wbcom-portfolio-title{color:var(--portfolio-list-title)}.layout-list .wbcom-portfolio-description{color:var(--portfolio-list-desc);-webkit-line-clamp:3}.layout-list .wbcom-portfolio-link{background:var(--portfolio-filter-active);color:var(--portfolio-title-color)}.layout-list.text-placement-below .wbcom-portfolio-content-below{display:flex;flex:1;flex-direction:column;justify-content:center}.wbcom-portfolio-empty{background:var(--portfolio-empty-bg);border-radius:var(--portfolio-item-radius);color:var(--portfolio-empty-text);grid-column:1/-1;padding:60px 20px;text-align:center}.wbcom-portfolio-lightbox{align-items:center;display:flex;height:100%;justify-content:center;left:0;opacity:0;position:fixed;top:0;transition:opacity .3s ease,visibility .3s ease;visibility:hidden;width:100%;z-index:99999}.wbcom-portfolio-lightbox.is-open{opacity:1;visibility:visible}.wbcom-portfolio-lightbox-overlay{background:rgba(0,0,0,.9);cursor:pointer;height:100%;left:0;position:absolute;top:0;width:100%}.wbcom-portfolio-lightbox-content{max-height:90%;max-width:90%;position:relative;z-index:1}.wbcom-portfolio-lightbox-figure{align-items:center;display:flex;flex-direction:column;margin:0}.wbcom-portfolio-lightbox-image{border-radius:4px;max-height:80vh;max-width:100%;-o-object-fit:contain;object-fit:contain;opacity:0;transition:opacity .3s ease}.wbcom-portfolio-lightbox-image.is-loaded{opacity:1}.wbcom-portfolio-lightbox-caption{color:#fff;font-size:16px;margin-top:16px;text-align:center}.wbcom-portfolio-lightbox-close,.wbcom-portfolio-lightbox-next,.wbcom-portfolio-lightbox-prev{align-items:center;background:hsla(0,0%,100%,.1);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:48px;justify-content:center;position:absolute;transition:background .2s ease;width:48px}.wbcom-portfolio-lightbox-close:hover,.wbcom-portfolio-lightbox-next:hover,.wbcom-portfolio-lightbox-prev:hover{background:hsla(0,0%,100%,.2)}.wbcom-portfolio-lightbox-close svg,.wbcom-portfolio-lightbox-next svg,.wbcom-portfolio-lightbox-prev svg{height:24px;width:24px}.wbcom-portfolio-lightbox-close{right:20px;top:20px}.wbcom-portfolio-lightbox-prev{left:20px;top:50%;transform:translateY(-50%)}.wbcom-portfolio-lightbox-next{right:20px;top:50%;transform:translateY(-50%)}@media(max-width:1024px){.wbcom-portfolio-items.layout-grid{grid-template-columns:repeat(var(--portfolio-columns-tablet),1fr)}.layout-list .wbcom-portfolio-image{flex:0 0 220px;height:160px}}@media(max-width:768px){.wbcom-portfolio-controls{align-items:flex-start;flex-direction:column}.wbcom-portfolio-filters{justify-content:flex-start;overflow-x:auto;padding-bottom:8px;width:100%;-webkit-overflow-scrolling:touch}.wbcom-portfolio-filters::-webkit-scrollbar{height:4px}.wbcom-portfolio-filters::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}.wbcom-portfolio-filter{flex-shrink:0}.wbcom-portfolio-items.layout-grid{grid-template-columns:repeat(var(--portfolio-columns-mobile),1fr)}.layout-list .wbcom-portfolio-item-inner{flex-direction:column}.layout-list .wbcom-portfolio-image{flex:none;height:auto;padding-top:56.25%;width:100%}.layout-list .wbcom-portfolio-image img{position:absolute}.layout-list .wbcom-portfolio-overlay{padding:20px}.wbcom-portfolio-lightbox-next,.wbcom-portfolio-lightbox-prev{height:40px;width:40px}.wbcom-portfolio-lightbox-next svg,.wbcom-portfolio-lightbox-prev svg{height:20px;width:20px}.wbcom-portfolio-lightbox-prev{left:10px}.wbcom-portfolio-lightbox-next{right:10px}}
