.pcard{height:100%;color:var(--fg);flex-direction:column;display:flex}.pcard__media{--ratio:1;border-radius:var(--r-card);background:var(--field);position:relative}.pcard__media img{object-fit:cover}.pcard__placeholder{font-size:40px;font-weight:var(--fw-bold);color:var(--fg-40);place-items:center;display:grid;position:absolute;inset:0}.pcard__badge{top:var(--s-3);left:var(--s-3);z-index:1;position:absolute}.pcard__body{padding-top:var(--s-4);flex-direction:column;gap:6px;display:flex}.pcard__category{font-size:var(--text-xs);font-weight:var(--fw-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--fg-60)}.pcard__title{overflow-wrap:anywhere;font-size:var(--text-body);font-weight:var(--fw-medium);letter-spacing:0;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4;display:-webkit-box;overflow:hidden}.pcard:hover .pcard__title{text-underline-offset:3px;text-decoration:underline}.pcard__meta{align-items:baseline;gap:var(--s-2);flex-wrap:wrap;margin-top:2px;display:flex}.pcard__price{font-size:var(--text-h6);font-weight:var(--fw-bold);align-items:baseline;gap:5px;display:inline-flex}.pcard__price-label{font-size:var(--text-xs);font-weight:var(--fw-medium);color:var(--fg-60)}.pcard__price--quote{font-size:var(--text-sm);font-weight:var(--fw-bold)}.pcard__moq{font-size:var(--text-xs);color:var(--fg-60)}.pcard__cta{margin-top:var(--s-2);font-size:var(--text-sm);font-weight:var(--fw-bold);align-items:center;gap:6px;display:inline-flex}.pcard__cta svg{transition:transform var(--ease-fast)}.pcard:hover .pcard__cta svg{transform:translate(4px)}.pgrid{gap:var(--s-8)var(--s-5);grid-template-columns:repeat(auto-fill,minmax(230px,1fr));display:grid}.pgrid>*,.pcard,.pcard__body,.pcard__meta{min-width:0}.pcard__title{min-height:2.8em}.pcard__body{flex:1}.pcard__meta{margin-top:auto}@media (max-width:640px){.pgrid{gap:var(--s-6)var(--s-3);grid-template-columns:repeat(2,1fr)}.pcard__title{font-size:var(--text-sm)}.pcard__category{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.pcard__cta{display:none}.pcard__price{font-size:var(--text-body)}.pcard__moq{width:100%;display:block}}@media (max-width:380px){.pgrid{gap:var(--s-5)var(--s-2)}}
