.cpg-portfolio{width:100%}.cpg-filters{display:flex;flex-wrap:wrap;align-items:center;gap:28px;margin:0 0 40px}.cpg-filter{appearance:none;border:1px solid #0b2e27;border-radius:999px;background:#fff;color:#0b2e27;cursor:pointer;font:inherit;font-weight:600;line-height:1;padding:12px 22px;transition:background-color .2s,color .2s,border-color .2s,transform .2s}.cpg-filter:is(:hover,:focus-visible,.is-active){background:#00b984;border-color:#00b984}.cpg-filter:focus-visible{outline:2px solid currentColor;outline-offset:3px}.cpg-grid{display:grid;grid-template-columns:repeat(var(--cpg-cols,3),minmax(0,1fr));column-gap:24px;row-gap:36px}.cpg-card{min-width:0}.cpg-card[hidden]{display:none}.cpg-image-link{display:block}.cpg-image-wrap{aspect-ratio:1.3;position:relative;overflow:hidden;border-radius:16px;background:#eee}.cpg-image{display:block;width:100%;height:100%!important;object-fit:cover;transition:transform .45s ease}.cpg-image-link:hover .cpg-image{transform:scale(1.025)}.cpg-badge{position:absolute;z-index:1;top:18px;left:18px;display:inline-flex;max-width:calc(100% - 36px);border-radius:999px;background:#0b2e27;color:#fff;font-size:12px;line-height:1;padding:6px 12px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cpg-card-body{padding-top:18px}.cpg-title{font-size:clamp(25px,2.2vw,36px);line-height:1.02;margin:0 0 12px}.cpg-title a{color:#050505;text-decoration:none}.cpg-service,.cpg-location{font-size:18px;line-height:1.35}.cpg-view-link{display:inline-flex;align-items:center;gap:.25em;margin-top:14px;color:#00a878;text-decoration:none;border-bottom:1px solid currentColor;line-height:1.2}.cpg-view-link span{transition:transform .2s}.cpg-view-link:hover span{transform:translateX(3px)}.cpg-empty{margin:20px 0}.cpg-card.cpg-enter{animation:cpg-in .28s ease both}@keyframes cpg-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(max-width:1024px){.cpg-grid{grid-template-columns:repeat(var(--cpg-cols-tablet,2),minmax(0,1fr))}}@media(max-width:767px){.cpg-filters{gap:10px;margin-bottom:28px}.cpg-filter{padding:10px 15px}.cpg-grid{grid-template-columns:repeat(var(--cpg-cols-mobile,1),minmax(0,1fr))}.cpg-title{font-size:28px}}

