/* ═══ Product Tabs Module ═══ */
.pt-wrap{
  background:var(--pt-bg, #105281);
  padding:var(--pt-padding, 60px 20px);
}
.pt-inner{
  max-width:var(--pt-max-width, 1200px);
  margin:0 auto;
}

/* 섹션 타이틀 */
.pt-section-title{
  text-align:center;
  font-size:var(--pt-title-size, 26px);
  font-weight:800;
  color:var(--pt-title-color, #fff);
  margin-bottom:28px;
  letter-spacing:-0.5px;
}
.pt-section-title:empty{display:none}

/* 탭 버튼 */
.pt-tabs{
  display:flex;
  justify-content:center;
  gap:6px;
  margin-bottom:32px;
  flex-wrap:wrap;
}
.pt-tab{
  padding:10px 24px;
  border:2px solid var(--pt-tab-border, rgba(255,255,255,.3));
  border-radius:999px;
  background:transparent;
  color:var(--pt-tab-color, rgba(255,255,255,.7));
  font-size:14px;
  font-weight:600;
  cursor:pointer;
  transition:all .2s ease;
  white-space:nowrap;
}
.pt-tab:hover{
  border-color:var(--pt-tab-hover, rgba(255,255,255,.6));
  color:var(--pt-tab-hover-color, #fff);
}
.pt-tab.active{
  background:var(--pt-tab-active-bg, #fff);
  color:var(--pt-tab-active-color, #105281);
  border-color:var(--pt-tab-active-bg, #fff);
}

/* 상품 그리드 */
.pt-grid{
  display:grid;
  gap:var(--pt-gap, 20px);
}
.pt-grid.cols-2{grid-template-columns:repeat(2,1fr)}
.pt-grid.cols-3{grid-template-columns:repeat(3,1fr)}
.pt-grid.cols-4{grid-template-columns:repeat(4,1fr)}
.pt-grid.cols-5{grid-template-columns:repeat(5,1fr)}
.pt-grid.cols-6{grid-template-columns:repeat(6,1fr)}

/* 상품 카드 */
.pt-card{
  background:var(--pt-card-bg, #fff);
  border-radius:var(--pt-card-radius, 12px);
  overflow:hidden;
  transition:all .25s ease;
  text-decoration:none;
  color:inherit;
  display:block;
  box-shadow:0 2px 10px rgba(0,0,0,.08);
}
.pt-card:hover{
  transform:translateY(-4px);
  box-shadow:0 8px 30px rgba(0,0,0,.15);
}

/* 썸네일 */
.pt-thumb{
  position:relative;
  overflow:hidden;
  background:#f5f5f5;
}
.pt-thumb img{
  position:absolute;
  top:0;left:0;
  width:100%;height:100%;
  object-fit:cover;
  transition:transform .35s ease;
}
.pt-card:hover .pt-thumb img{
  transform:scale(1.06);
}

/* 뱃지 */
.pt-badge{
  position:absolute;
  top:10px;left:10px;
  padding:4px 12px;
  border-radius:6px;
  font-size:11px;
  font-weight:700;
  color:#fff;
  z-index:2;
}
.pt-badge.best{background:#e74c3c}
.pt-badge.rank{background:#f59e0b}

/* 상품 정보 */
.pt-info{
  padding:14px 16px 16px;
}
.pt-name{
  font-size:var(--pt-name-size, 14px);
  font-weight:600;
  color:var(--pt-name-color, #333);
  line-height:1.4;
  margin-bottom:6px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.pt-price{
  display:flex;
  align-items:baseline;
  gap:6px;
  flex-wrap:wrap;
}
.pt-price-sale{
  font-size:var(--pt-price-size, 16px);
  font-weight:800;
  color:var(--pt-price-color, #e74c3c);
}
.pt-price-origin{
  font-size:12px;
  color:#bbb;
  text-decoration:line-through;
}

/* 전체보기 링크 */
.pt-view-all{
  grid-column:1/-1;
  text-align:center;
  padding:16px 0 4px;
}
.pt-view-all a{
  display:inline-flex;
  align-items:center;
  gap:4px;
  padding:10px 32px;
  border:2px solid var(--pt-viewall-border, rgba(255,255,255,.4));
  border-radius:999px;
  color:var(--pt-viewall-color, rgba(255,255,255,.8));
  font-size:13px;
  font-weight:600;
  text-decoration:none;
  transition:all .2s;
}
.pt-view-all a:hover{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.7);
  color:#fff;
}

/* 로딩 / 빈 상태 */
.pt-loading,.pt-empty{
  text-align:center;
  padding:50px;
  color:rgba(255,255,255,.5);
  font-size:14px;
  grid-column:1/-1;
}

/* ═══ 반응형 ═══ */
@media(max-width:992px){
  .pt-grid.cols-4,.pt-grid.cols-5,.pt-grid.cols-6{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:768px){
  .pt-wrap{padding:40px 14px}
  .pt-section-title{font-size:22px;margin-bottom:20px}
  .pt-tabs{gap:4px;margin-bottom:24px}
  .pt-tab{padding:8px 16px;font-size:13px}
  .pt-grid.cols-3,.pt-grid.cols-4,.pt-grid.cols-5,.pt-grid.cols-6{grid-template-columns:repeat(2,1fr)}
  .pt-info{padding:10px 12px 14px}
  .pt-name{font-size:13px}
}
@media(max-width:480px){
  .pt-wrap{padding:30px 10px}
  .pt-section-title{font-size:19px}
  .pt-tab{padding:7px 14px;font-size:12px}
  .pt-grid.cols-2,.pt-grid.cols-3{grid-template-columns:repeat(2,1fr)}
  .pt-info{padding:8px 10px 12px}
  .pt-name{font-size:12px}
  .pt-price-sale{font-size:14px}
}
