/* ==========================================================================
   KAPON · products.css
   产品栏目 / 大类页 / 产品详情页
   依赖 css/site.css（设计令牌与导航、页脚、按钮）
   ========================================================================== */

/* ---------- 内页头部 ---------- */
.page-head { position:relative; padding:152px 0 58px; background:var(--ink); color:var(--white); overflow:hidden; }
.page-head::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(17,18,18,.2),rgba(17,18,18,.75)); pointer-events:none; }
.page-head .wrap { position:relative; z-index:1; }
.page-head .eyebrow { color:rgba(255,255,255,.56); }
.page-head h1 { margin:20px 0 0; font-size:clamp(2.6rem,5vw,4.6rem); font-weight:700; line-height:1.02; letter-spacing:-.05em; }
.page-head h1 em { font-style:normal; color:var(--yellow); }
.page-head p { max-width:620px; margin:22px 0 0; color:rgba(255,255,255,.66); font-size:15px; line-height:1.75; }

/* 面包屑 */
.crumbs { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-bottom:26px; font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.45); }
.crumbs a { color:rgba(255,255,255,.45); transition:color .4s var(--ease); }
.crumbs a:hover { color:var(--yellow); }
.crumbs .sep { opacity:.5; }
.crumbs .now { color:var(--yellow); }

/* ---------- 统计条 ---------- */
.cat-stats { display:flex; gap:38px; margin-top:34px; padding-top:24px; border-top:1px solid rgba(255,255,255,.16); }
.cat-stats div { }
.cat-stats b { display:block; font-size:30px; font-weight:800; line-height:1; color:var(--yellow); }
.cat-stats span { display:block; margin-top:8px; font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.5); }

/* ---------- 大类卡片 ---------- */
.cats { padding:86px 0 96px; }
.cat-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(340px,1fr)); gap:26px; }

.cat-card { position:relative; display:flex; flex-direction:column; min-height:330px; padding:0; overflow:hidden; color:var(--white); background:var(--ink); transition:transform .7s var(--ease); }
.cat-card:hover { transform:translateY(-6px); }
.cat-card .cat-media { position:absolute; inset:0; }
.cat-card .cat-media img { width:100%; height:100%; object-fit:cover; filter:grayscale(.7) contrast(1.06); transition:transform 1s var(--ease),filter .7s var(--ease); }
.cat-card:hover .cat-media img { transform:scale(1.05); filter:grayscale(.35) contrast(1.05); }
.cat-card .cat-media::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(17,18,18,.35) 0%,rgba(17,18,18,.82) 68%,rgba(17,18,18,.94) 100%); }
.cat-card.no-cover .cat-media { background:var(--ink); }
.cat-card .cat-body { position:relative; z-index:1; display:flex; flex-direction:column; height:100%; padding:28px 26px 26px; }
.cat-card .cat-num { font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.14em; color:var(--yellow); }
.cat-card h3 { margin:auto 0 0; font-size:26px; font-weight:700; line-height:1.14; letter-spacing:-.03em; }
.cat-card p { margin:10px 0 0; color:rgba(255,255,255,.62); font-size:13.5px; line-height:1.65; }
.cat-card .cat-go { display:inline-flex; align-items:center; gap:10px; margin-top:20px; font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--yellow); }
.cat-card .cat-go::after { content:""; width:13px; height:13px; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; transform:rotate(45deg); transition:transform .5s var(--ease); }
.cat-card:hover .cat-go::after { transform:translate(4px,-2px) rotate(45deg); }

/* 无封面版式：大号幽灵数字，避免看起来像"空黑块" */
.cat-card.no-cover .cat-media { background:var(--ink); }
.cat-card.no-cover .cat-media::before { content:""; position:absolute; inset:0;
  background-image:repeating-linear-gradient(135deg,rgba(242,213,0,.055) 0 1px,transparent 1px 15px); }
.cat-card .ghost { position:absolute; right:-6px; top:-26px; font-size:150px; font-weight:800;
  line-height:1; letter-spacing:-.06em; color:rgba(255,255,255,.045); pointer-events:none; user-select:none; }
.cat-card.no-cover .ghost { color:rgba(242,213,0,.09); }
.cat-card:hover .ghost { color:rgba(255,255,255,.075); }

/* 类别计数徽标 */
.cat-card .cat-count { float:right; padding:2px 8px; letter-spacing:.06em;
  background:rgba(255,255,255,.12); color:rgba(255,255,255,.8); font-size:10px; }
.cat-card.no-cover .cat-count { background:rgba(242,213,0,.2); color:var(--yellow); }

/* 全部产品区 */
.all-head { max-width:620px; margin-bottom:34px; }
.all-head .eyebrow { color:var(--muted); }
.all-head h2 { margin:16px 0 0; font-size:clamp(2rem,3.6vw,3rem); font-weight:700;
  letter-spacing:-.045em; line-height:1.06; }
.all-head p { margin:14px 0 0; color:var(--muted); font-size:14.5px; line-height:1.7; }

/* ---------- 产品卡片 ---------- */
.prods { padding:78px 0 96px; }
.prod-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr)); gap:24px; }

.prod-card { display:flex; flex-direction:column; background:var(--white); border:1px solid var(--line); transition:transform .6s var(--ease),box-shadow .6s var(--ease); }
.prod-card:hover { transform:translateY(-5px); box-shadow:0 18px 44px rgba(24,25,25,.1); }
.prod-card .prod-media { position:relative; aspect-ratio:1/1; overflow:hidden; background:var(--paper-2); }
.prod-card .prod-media img { width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.prod-card:hover .prod-media img { transform:scale(1.045); }
.prod-card .prod-media.placeholder::after { content:"KAPON"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'DM Mono',monospace; font-size:13px; letter-spacing:.24em; color:rgba(24,25,25,.22); }
.prod-card .prod-body { display:flex; flex-direction:column; flex:1; padding:20px 20px 22px; }
.prod-card .prod-cat { font-family:'DM Mono',monospace; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.prod-card h3 { margin:10px 0 0; font-size:17.5px; font-weight:700; line-height:1.32; letter-spacing:-.015em; }
.prod-card p { margin:9px 0 0; color:var(--muted); font-size:13px; line-height:1.62; }
.prod-card .prod-foot { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:auto; padding-top:18px; }
.prod-card .prod-foot .more { display:inline-flex; align-items:center; gap:9px; font-family:'DM Mono',monospace; font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--ink); }
.prod-card .prod-foot .more::after { content:""; width:11px; height:11px; border-top:1.5px solid currentColor; border-right:1.5px solid currentColor; transform:rotate(45deg); }
.prod-card .badge-star { width:7px; height:7px; border-radius:50%; background:var(--yellow); flex:0 0 auto; }

/* ---------- 产品详情 ---------- */
.detail { padding:64px 0 40px; }
.detail-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:56px; align-items:start; }

.gallery { display:grid; gap:12px; }
.gallery .g-main { position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--paper-2); border:1px solid var(--line); }
.gallery .g-main.placeholder { display:flex; align-items:center; justify-content:center; }
.gallery .g-main.placeholder::after { content:"KAPON"; font-family:'DM Mono',monospace; font-size:14px; letter-spacing:.26em; color:rgba(24,25,25,.22); }
.gallery .g-main img { width:100%; height:100%; object-fit:cover; }
.gallery .g-thumbs { display:grid; grid-template-columns:repeat(auto-fill,minmax(84px,1fr)); gap:10px; }
.gallery .g-thumbs button { padding:0; border:1px solid var(--line); background:none; cursor:pointer; aspect-ratio:1/1; overflow:hidden; transition:border-color .4s var(--ease); }
.gallery .g-thumbs button.on { border-color:var(--ink); }
.gallery .g-thumbs img { width:100%; height:100%; object-fit:cover; }

.detail-info .eyebrow { color:var(--muted); }
.detail-info h1 { margin:16px 0 0; font-size:clamp(1.9rem,3.4vw,2.9rem); font-weight:700; line-height:1.1; letter-spacing:-.045em; }
.detail-info .ref { margin-top:12px; font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.12em; color:var(--muted); }
.detail-info .lead { margin:22px 0 0; color:#4a4c47; font-size:15px; line-height:1.78; }

.block-title { display:flex; align-items:center; gap:12px; margin:34px 0 14px; font-family:'DM Mono',monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.block-title::before { content:""; width:22px; height:1px; background:currentColor; }

.spec-list { border-top:1px solid var(--line); }
.spec-row { display:flex; gap:20px; padding:13px 0; border-bottom:1px solid var(--line); font-size:13.5px; }
.spec-row dt { flex:0 0 42%; margin:0; color:var(--muted); }
.spec-row dd { margin:0; font-weight:600; }

.cta-box { margin-top:34px; padding:26px 24px; background:var(--ink); color:var(--white); }
.cta-box h3 { margin:0; font-size:17px; font-weight:700; letter-spacing:-.015em; }
.cta-box p { margin:10px 0 20px; color:rgba(255,255,255,.6); font-size:13px; line-height:1.65; }
.cta-box .btn { width:100%; }

/* 相关产品 */
.related { padding:56px 0 96px; }
.related h2 { margin:0 0 26px; font-size:clamp(1.5rem,2.6vw,2.2rem); font-weight:700; letter-spacing:-.04em; }

/* ---------- 空状态 ---------- */
.empty { padding:90px 0; text-align:center; }
.empty p { color:var(--muted); font-size:15px; }
.empty .btn { margin-top:24px; }

/* ---------- 响应式 ---------- */
@media (max-width:1000px) {
  .detail-grid { grid-template-columns:1fr; gap:34px; }
  .cat-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width:760px) {
  .page-head { padding:104px 0 38px; }
  .page-head h1 { font-size:2.35rem; }
  .page-head p { margin-top:16px; font-size:14px; }
  .crumbs { margin-bottom:18px; }
  .cat-stats { margin-top:24px; padding-top:18px; gap:26px; }
  .cat-stats b { font-size:24px; }
  .cats, .prods { padding:42px 0 56px; }
  .cat-grid { grid-template-columns:1fr; }
  .prod-grid { grid-template-columns:1fr 1fr; gap:14px; }
  .prod-card .prod-body { padding:15px 14px 16px; }
  .prod-card h3 { font-size:15px; }
  .prod-card p { display:none; }
  .cat-stats { gap:24px; }
  .spec-row dt { flex:0 0 48%; }
}
@media (max-width:520px) {
  .prod-grid { grid-template-columns:1fr; }
}
