.pswc-wrap { max-width: 1120px; margin: 0 auto; padding: 1rem; }
.pswc-title { margin: .5rem 0 1rem; }
.pswc-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(260px,1fr)); gap: 16px; }
.pswc-card { display: block; border: 1px solid #eee; border-radius: 10px; overflow: hidden; background:#fff; text-decoration: none; color: inherit; transition: transform .1s ease; }
.pswc-card:hover { transform: translateY(-2px); }
.pswc-card-img { aspect-ratio: 4/3; background:#f9f9f9; overflow: hidden; position: relative; }
.pswc-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pswc-badge { position:absolute; left:8px; top:8px; background:#222; color:#fff; padding:4px 8px; font-size:12px; border-radius:6px; }
.pswc-card-body { padding: 12px; }
.pswc-card-title { margin: 0 0 8px; font-size: 17px; line-height: 1.3; }
.pswc-card-meta { display:flex; gap:8px; flex-wrap: wrap; align-items: center; }
.pswc-chip { background:#f1f1f1; padding:4px 8px; border-radius:999px; font-size:12px; }
.pswc-price { margin-left:auto; font-weight:600; }
.pswc-pagination { display:flex; gap:6px; justify-content:center; margin:18px 0 6px; }
.pswc-page { border:1px solid #ddd; padding:6px 10px; border-radius:8px; text-decoration:none; }
.pswc-active { background:#222; color:#fff; border-color:#222; }

.pswc-detail { max-width: 1000px; margin: 0 auto; padding: 1rem; }
.pswc-back { display:inline-block; margin-bottom: 8px; }
.pswc-detail-header h1 { margin: 8px 0; }
.pswc-detail-meta { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.pswc-detail-gallery { display:grid; gap:8px; grid-template-columns: repeat(auto-fill,minmax(280px,1fr)); margin:12px 0; }
.pswc-detail-gallery img { width:100%; height:260px; object-fit:cover; border-radius:10px; }
.pswc-detail-content { line-height:1.6; margin: 8px 0 18px; }
.pswc-contact { border-top:1px solid #eee; padding-top:14px; }
.pswc-contact form input, .pswc-contact form textarea { width:100%; padding:10px; border:1px solid #ddd; border-radius:8px; }
.pswc-btn { background:#222; color:#fff; border:0; padding:10px 14px; border-radius:8px; cursor:pointer; }
.pswc-alert.success { background:#eafbea; border:1px solid #bde5bd; padding:10px; border-radius:8px; margin-top:10px; }

.pswc-card.is-ref .pswc-card-img::after { content:''; position:absolute; inset:0; background: linear-gradient(180deg, transparent, rgba(0,0,0,.35)); }
