/* Vitrine SPA — CATÁLOGO: grade de produtos e card (listagem, busca, categoria, promoções). */
.grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 1rem; min-width: 0; }
@media (max-width: 560px) { .grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .65rem; } }
.pc { background: #fff; border-radius: 14px; overflow: hidden; position: relative; display: flex; flex-direction: column;
      border: 1px solid #eceef4; transition: box-shadow .15s, transform .15s; }
.pc:hover { box-shadow: 0 10px 28px rgba(30,41,59,.12); transform: translateY(-2px); }
.pc-img { height: 190px; background: #fff; display: flex; align-items: center; justify-content: center; color: #d7dbe6; font-size: 2.4rem; border-bottom: 1px solid #f1f3f8; overflow: hidden; cursor: pointer; }
.pc-img img { width: 100%; height: 100%; object-fit: contain; padding: .6rem; }
@media (max-width: 560px) { .pc-img { height: 140px; } }
.pc-body { padding: .7rem .85rem .85rem; display: flex; flex-direction: column; flex: 1; gap: .18rem; }
.pc-nm { font-size: .84rem; font-weight: 600; line-height: 1.3; min-height: 2.6em; cursor: pointer;
         display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pc-nm:hover { color: var(--indigo); }
.pc-cd { font-size: .66rem; color: #98a1b3; }
.pc-pr { font-size: 1.18rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.pc-pr .un { font-size: .66rem; color: #98a1b3; font-weight: 600; }
.pc-pr.na { font-size: .76rem; color: var(--indigo); font-weight: 700; margin-top: .35rem; }
.pc-pr.na button { border: none; background: none; padding: 0; color: var(--indigo); font-weight: 700; font-size: .76rem; text-decoration: underline; cursor: pointer; }
.pc-foot { margin-top: auto; padding-top: .5rem; display: flex; gap: .45rem; align-items: stretch; }
.pc.off .pc-img, .pc.off .pc-nm, .pc.off .pc-pr { opacity: .5; filter: grayscale(.6); }
.ptag { position: absolute; top: .6rem; left: .6rem; background: #fef2f2; color: #991b1b; font-size: .62rem; font-weight: 800; padding: .2rem .55rem; border-radius: 6px; z-index: 2; box-shadow: 0 1px 4px rgba(0,0,0,.12); }
