.hs-portfolio{padding:40px 0}
.hs-portfolio h3{margin:0 0 16px 0;text-align:center;font-size:clamp(22px,3.2vw,34px)}
.hs-wrap{max-width:1140px;margin:0 auto;padding:0 10px}
.hs-portfolio .cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:clamp(12px,1.8vw,20px);width:100%;align-items:start}
@media (min-width:1200px){.hs-portfolio .cards{grid-template-columns:repeat(4,1fr)}}
.hs-portfolio .card{position:relative;background:#fff;border:1px solid #e5e7eb;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;height:100%;box-shadow:0 6px 18px rgba(17,24,39,.04);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.hs-portfolio .card:hover{transform:translateY(-6px);box-shadow:0 14px 36px rgba(17,24,39,.12);border-color:#d1d5db}
.hs-portfolio .card a.card-link:focus-visible{outline:2px solid var(--brand-turq);outline-offset:2px;border-radius:14px}
.hs-portfolio .card a.card-link{color:inherit;text-decoration:none;display:flex;flex-direction:column;height:100%}
.hs-portfolio .card-media{position:relative;background:#f3f4f6;overflow:hidden}
.hs-portfolio .card-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 55%,rgba(0,0,0,.35) 100%);opacity:0;transition:opacity .25s ease;pointer-events:none}
.hs-portfolio .card:hover .card-media::after{opacity:1}
.hs-portfolio .card-img{width:100%;height:auto;display:block;transform:scale(1);transition:transform .6s cubic-bezier(.2,.65,.18,.98)}
.hs-portfolio .card:hover .card-img{transform:scale(1.03)}
.hs-portfolio .card-media--placeholder{width:100%;height:100%;background:linear-gradient(135deg,#f3f4f6,#e5e7eb)}
.hs-portfolio .card-badges{position:absolute;left:10px;right:10px;bottom:10px;display:flex;gap:8px;flex-wrap:wrap;align-items:center;z-index:2}
.hs-portfolio .badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;font-size:.78rem;font-weight:700;backdrop-filter:saturate(140%) blur(8px);border:1px solid rgba(0,0,0,.5)}
.hs-portfolio .badge--neutral{color:#fff;background:rgba(0,0,0,.55)}
.hs-portfolio .badge--price{color:#0b1429;background:rgba(57,199,206,.9)}
.hs-portfolio .price-ribbon{position:absolute;top:12px;right:-36px;width:140px;height:30px;background:var(--brand-pink);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;transform:rotate(45deg);border-radius:5px;box-shadow:0 12px 24px rgba(213,0,105,.25);z-index:4;pointer-events:none;letter-spacing:.15px;font-size:.9rem}
.hs-portfolio .price-ribbon span{white-space:nowrap;line-height:1}
@media (max-width:480px){.hs-portfolio .price-ribbon{top:10px;right:-30px;width:120px;height:26px;font-size:.84rem}}
.hs-portfolio .card-body{padding:14px 14px 12px;display:flex;flex-direction:column;gap:8px}
.hs-portfolio .card-body h2{font-size:.95rem;margin:0}
.hs-portfolio .card-body h2 a{color:inherit;text-decoration:none}
.hs-portfolio .card-title{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hs-portfolio .card-excerpt{color:#4b5563;font-size:.92rem;margin:0;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hs-portfolio .card-footer{margin-top:auto;padding-top:4px}
.hs-portfolio .card-cta{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--brand-blue);font-size:.92rem}
.hs-portfolio .card:hover .card-cta{color:var(--brand-pink)}
.hs-portfolio .card-cta::after{content:"\2192";transition:transform .18s ease}
.hs-portfolio .card:hover .card-cta::after{transform:translateX(4px)}
.hs-portfolio .hs-empty{grid-column:1/-1;text-align:center;color:#6b7280}
@media (prefers-reduced-motion:reduce){.hs-portfolio .card{transition:none}.hs-portfolio .card-img{transition:none}}