/* Product Showcase Module */
.ps-wrap{
  max-width:var(--ps-max-width, 1200px);
  margin:0 auto;
  padding:var(--ps-padding, 30px 20px);
}
.ps-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:var(--ps-gap, 20px);
}

/* Card */
.ps-card{
  display:flex;
  background:var(--ps-card-bg, #fff);
  border:1px solid var(--ps-card-border, #e0e0e0);
  border-radius:var(--ps-card-radius, 4px);
  overflow:hidden;
  text-decoration:none;
  color:inherit;
  transition:box-shadow .3s, transform .3s;
  min-height:220px;
}
.ps-card:hover{
  box-shadow:0 6px 24px rgba(0,0,0,.1);
  transform:translateY(-2px);
}

/* Image area */
.ps-card-img{
  flex:0 0 40%;
  min-height:200px;
  background-size:contain;
  background-position:center;
  background-repeat:no-repeat;
  background-color:var(--ps-img-bg, #f5f5f5);
  position:relative;
  cursor:default;
  border:1px solid var(--ps-img-border, #ddd);
}
.ps-card-img.ps-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  color:#bbb;
  font-size:32px;
}

/* Hover slide-up overlay (프론트엔드) */
.ps-card-img::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.55) 0%, rgba(0,0,0,.15) 60%, transparent 100%);
  transform:translateY(100%);
  transition:transform .45s cubic-bezier(.25,.46,.45,.94);
  pointer-events:none;
  z-index:1;
}
.ps-card:hover .ps-card-img::after{
  transform:translateY(0);
}

/* Upload overlay + placeholder icon — 완전 숨김 */
.ps-upload-overlay{display:none!important}
.ps-card-img>.bi-image{display:none!important}

/* Text area */
.ps-card-body{
  flex:1;
  padding:24px 28px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
}
.ps-card-title{
  font-size:var(--ps-title-size, 28px);
  font-weight:900;
  color:var(--ps-title-color, #222);
  line-height:1.15;
  margin:0 0 12px 0;
  letter-spacing:-.02em;
}
.ps-card-subtitle{
  font-size:var(--ps-sub-size, 14px);
  font-weight:700;
  color:var(--ps-sub-color, #7a7a2e);
  margin-bottom:10px;
  letter-spacing:.02em;
}
.ps-card-desc{
  font-size:var(--ps-desc-size, 13px);
  color:var(--ps-desc-color, #666);
  line-height:1.65;
  margin-bottom:16px;
  flex:1;
}
.ps-card-btn{
  align-self:flex-end;
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:8px 20px;
  background:var(--ps-btn-bg, #333);
  color:var(--ps-btn-color, #fff);
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  border:none;
  cursor:pointer;
  text-decoration:none;
  transition:background .2s;
}
.ps-card-btn:hover{background:var(--ps-btn-hover, #555)}

/* Loading / Empty */
.ps-loading,.ps-empty{
  text-align:center;
  padding:60px 20px;
  color:#bbb;
  font-size:13px;
  grid-column:1/-1;
}

/* Responsive */
@media(max-width:992px){
  .ps-card-body{padding:18px 20px}
  .ps-card-title{font-size:22px}
  .ps-card-desc{font-size:12px}
}
@media(max-width:768px){
  .ps-grid{grid-template-columns:1fr}
  .ps-card{min-height:180px}
  .ps-card-img{flex:0 0 35%;min-height:160px}
}
@media(max-width:480px){
  .ps-wrap{padding:16px 12px}
  .ps-card{flex-direction:column}
  .ps-card-img{flex:none;height:200px;min-height:auto}
  .ps-card-body{padding:16px}
  .ps-card-title{font-size:20px}
}
