/* =====================================================================
   products.css — 제품 페이지(products) — 좌측 카테고리 · 제품 그리드 · 페이지 네비게이터 · 제품 카드
   ---------------------------------------------------------------------
   ● base.css의 전역 변수(:root)에 의존합니다. base.css를 먼저 불러온 뒤 이 파일을 불러오세요.
   ● 로드 순서: base → layout → home → company → products → modal → login → responsive
   ===================================================================== */

.cat-list{position:sticky;top:92px;display:flex;flex-direction:column;gap:8px}
.cat-list .cat-eyebrow{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);padding:0 4px 8px}
.cat-btn{display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;background:var(--paper-2);border:1px solid var(--line);border-radius:11px;padding:15px 16px;font-family:var(--font-body);font-size:15px;font-weight:600;color:#33414D;cursor:pointer;transition:border-color .18s,background .18s,color .18s}
.cat-btn:hover{border-color:var(--steel-2);color:var(--ink)}
.cat-btn::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--line);flex:none;transition:background .18s}
.cat-btn.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.cat-btn.on::after{background:var(--signal)}
.grid-head{display:flex;align-items:center;margin-bottom:22px;flex-wrap:wrap;gap:12px}
.grid-head h2{font-size:24px;font-weight:700;letter-spacing:-.01em}
.grid-head .count{font-family:var(--font-mono);font-size:12px;color:var(--slate);letter-spacing:.06em;margin-left:auto}
/* 페이지 네비게이터 */
.pager{display:flex;align-items:center;gap:6px}
.pager:empty{display:none}
.pager-bottom{justify-content:flex-end;margin-top:28px}
.pg-btn{min-width:34px;height:34px;padding:0 9px;border:1px solid var(--line);background:var(--paper-2);border-radius:8px;font-family:var(--font-body);font-size:14px;font-weight:600;color:#33414D;cursor:pointer;transition:border-color .15s,background .15s,color .15s}
.pg-btn:hover:not(:disabled){border-color:var(--steel-2);color:var(--ink)}
.pg-btn.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.pg-btn:disabled{opacity:.4;cursor:default}
.pg-arrow{font-size:16px;line-height:1}
.pg-ellipsis{padding:0 2px;color:var(--slate)}
/* ══════════ 제품 페이지 — 그리드 컨테이너 & 개별 카드(.pcard) ══════════ */
.grid-2x2{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.pcard{background:var(--paper-2);border:1px solid var(--line);border-radius:16px;padding:20px;position:relative;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.pcard:hover{transform:translateY(-3px);box-shadow:0 16px 38px rgba(11,22,32,.09)}
/* ── 产品卡片角标（丝带）：NEW（黑色）/ HOT（红色）──
   两者可同时显示；同时显示时 HOT 会自动排在 NEW 左侧。 */
.pcard .ribbon{position:absolute;top:0;z-index:2;display:block;
  font-family:var(--font-mono);font-size:10px;font-weight:600;letter-spacing:.12em;line-height:1;
  color:#fff;padding:9px 10px 13px;
  clip-path:polygon(0 0,100% 0,100% 100%,50% 82%,0 100%)}
.pcard .ribbon-new{background:var(--ink);right:18px}
.pcard .ribbon-hot{background:#D93025;right:18px}
/* NEW 와 HOT 이 함께 있으면 HOT 을 왼쪽으로 */
.pcard .ribbon-new ~ .ribbon-hot{right:64px}

.pimg{aspect-ratio:4/3;background:#F7F8F9;border:1px solid var(--line);border-radius:11px;overflow:hidden;display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.pimg img{width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply}
.pname{font-size:20px;font-weight:700;letter-spacing:-.01em;margin-bottom:12px}
.pspec{display:flex;justify-content:space-between;font-size:14px;padding:7px 0;color:#33414D}
.pspec .pk{color:var(--slate)}
.pspec .pv{font-weight:600}
.pcard-foot{display:flex;align-items:center;justify-content:space-between;margin-top:18px;padding-top:16px;border-top:1px solid var(--line)}
.wish{background:none;border:0;cursor:pointer;color:var(--slate);padding:4px;display:inline-flex;transition:color .18s,transform .15s}
.wish:hover{color:var(--ink)}
.wish.on{color:#E4573B}
.wish.on svg{fill:#E4573B}
.pcard .more{font-weight:600;font-size:14px;color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:10px 18px;display:inline-flex;align-items:center;gap:7px;transition:background .2s,color .2s,border-color .2s}
.pcard .more:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* ── 产品搜索框（位于标题栏，分页器旁边）── */
.grid-search{position:relative;display:flex;align-items:center;margin-left:auto}
.grid-search input{width:210px;padding:9px 34px 9px 34px;border:1px solid var(--line);border-radius:9px;
  background:var(--paper-2);font-family:var(--font-body);font-size:14px;color:var(--ink);
  transition:border-color .15s,box-shadow .15s,width .2s}
.grid-search input::placeholder{color:#A6B0B8}
.grid-search input:focus{outline:0;border-color:var(--steel-2);box-shadow:0 0 0 3px rgba(27,69,112,.12);width:250px}
.grid-search input::-webkit-search-cancel-button{display:none}
/* 왼쪽 돋보기 아이콘 */
.grid-search::before{content:"";position:absolute;left:12px;width:14px;height:14px;pointer-events:none;
  border:1.6px solid #8A97A2;border-radius:50%;box-sizing:border-box}
.grid-search::after{content:"";position:absolute;left:23px;top:22px;width:6px;height:1.6px;background:#8A97A2;
  transform:rotate(45deg);pointer-events:none}
/* 오른쪽 지우기 버튼 */
.gs-clear{position:absolute;right:8px;width:22px;height:22px;border:0;border-radius:50%;background:none;
  color:var(--slate);font-size:17px;line-height:1;cursor:pointer;display:none;align-items:center;justify-content:center}
.gs-clear:hover{background:var(--paper);color:var(--ink)}
.grid-search.has-text .gs-clear{display:flex}

/* 검색 결과 없음 */
.grid-empty{grid-column:1/-1;padding:56px;text-align:center;color:var(--slate);font-size:15px}
.grid-empty b{color:var(--ink)}

@media(max-width:860px){
  .grid-head{align-items:flex-start}
  .grid-search{margin-left:0;width:100%}
  .grid-search input,.grid-search input:focus{width:100%}
}

/* ── 검색창을 좌측 카테고리 상단에 배치할 때 ── */
.cat-list .cat-search{margin-left:0;margin-bottom:14px;width:100%}
.cat-list .cat-search input,
.cat-list .cat-search input:focus{width:100%}
.cat-list .cat-search::after{top:20px}      /* 돋보기 손잡이 위치 보정 */
@media(max-width:860px){
  /* 모바일: 카테고리가 가로 스크롤이라 검색창은 그 위에 전체 폭으로 */
  .cat-list{flex-wrap:wrap}
  .cat-list .cat-search{flex:1 0 100%;order:-1;margin-bottom:10px}
}

/* ── 分类概览图（显示在「产品系列 · 款产品」标题栏上方）──
   支持 1~4 张图片：多张时右上角出现翻页按钮与左右箭头。 */
.cat-overview{margin-bottom:34px;padding-bottom:34px;border-bottom:1px solid var(--line)}

/* 图片查看器 */
.ov-viewer{position:relative;border:1px solid var(--line);border-radius:14px;background:var(--paper-2);overflow:hidden}
.ov-viewer .ov-slide{width:100%;height:auto;display:none;cursor:zoom-in}
.ov-viewer .ov-slide.on{display:block;animation:ovfade .3s ease}
@keyframes ovfade{from{opacity:0}to{opacity:1}}
.ov-viewer:hover{border-color:var(--steel-2);box-shadow:0 14px 34px rgba(11,22,32,.07)}

/* 右上角翻页 */
.ov-nav{position:absolute;top:14px;right:14px;z-index:2;display:flex;align-items:center;gap:4px;
  background:rgba(255,255,255,.9);backdrop-filter:blur(6px);border:1px solid var(--line);
  border-radius:9px;padding:4px}
.ov-nav .ov-dot,.ov-nav .ov-arrow{min-width:28px;height:28px;padding:0 6px;border:0;border-radius:6px;
  background:none;color:#5B6B7A;font-family:var(--font-mono);font-size:13px;font-weight:600;
  line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:background .15s,color .15s}
.ov-nav .ov-arrow{font-size:17px}
.ov-nav .ov-dot:hover,.ov-nav .ov-arrow:hover{background:var(--paper);color:var(--ink)}
.ov-nav .ov-dot.on{background:var(--ink);color:#fff}
/* 只有 1 张图片时，左右箭头为禁用状态 */
.ov-nav .ov-arrow:disabled{opacity:.3;cursor:default}
.ov-nav .ov-arrow:disabled:hover{background:none;color:#5B6B7A}

@media(max-width:680px){
  .ov-nav{top:10px;right:10px;padding:3px}
  .ov-nav .ov-dot,.ov-nav .ov-arrow{min-width:24px;height:24px;font-size:12px}
}
