/* ============================================================================
   YIQIDA customer site — design layer v2
   Direction: "Precision Industrial Editorial"
   - Display type: Barlow Condensed (self-hosted, already on disk)
   - Body type: Inter (self-hosted, already on disk)
   - Palette: warm paper + ink + deep vermillion, hairline rules, indexed sections
   - Motion: scroll-reveal + staggered entry, respects prefers-reduced-motion
   Scope: body.catalog-page ONLY — the ops console (body with #app) is untouched.
   Loaded AFTER style.css so it overrides the legacy customer skin.
   ========================================================================== */

/* ---------------------------------------------------------------- tokens -- */
body.catalog-page{
  --ink:#14181d;      --ink-2:#39424d;   --muted:#6b7681;  --muted-2:#98a1aa;
  --paper:#f4f2ee;    --surface:#ffffff;  --steel:#171c22;  --steel-2:#232b34;
  --line:#e4e1da;     --line-2:#d3cfc6;
  --brand:#b0291f;    --brand-600:#8f1f17; --accent:#ff6a4d;
  --ok:#1d7a53;
  --flag:#e8a33d;
  --r-lg:18px; --r-md:12px; --r-sm:8px; --r-xs:6px;
  --sh-1:0 1px 2px rgba(20,24,29,.05), 0 10px 26px -16px rgba(20,24,29,.22);
  --sh-2:0 2px 6px rgba(20,24,29,.06), 0 34px 70px -34px rgba(20,24,29,.34);
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --shell:1264px;
  --gut:clamp(20px,4.4vw,60px);
  --sec-y:clamp(56px,7.5vw,112px);

  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:Inter,"Segoe UI","Microsoft YaHei",system-ui,-apple-system,sans-serif;
  font-size:16px;line-height:1.62;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  font-feature-settings:"kern" 1,"liga" 1,"cv11" 1;
}
body.catalog-page ::selection{background:var(--brand);color:#fff}

/* ------------------------------------------------------------ base type --- */
body.catalog-page h1,
body.catalog-page .display{
  font-family:"Barlow Condensed",Inter,"Arial Narrow",sans-serif;
  font-weight:600;letter-spacing:-.012em;line-height:1.02;color:var(--ink);
  text-wrap:balance;
}
body.catalog-page h2{
  font-family:"Barlow Condensed",Inter,sans-serif;
  font-weight:600;letter-spacing:-.008em;line-height:1.06;
  font-size:clamp(28px,3.1vw,44px);margin:0 0 10px;color:var(--ink);text-wrap:balance;
}
body.catalog-page h3{font-size:18px;font-weight:600;letter-spacing:-.01em;line-height:1.3}
body.catalog-page p{margin:0 0 14px;color:var(--ink-2)}
body.catalog-page a{color:var(--brand);text-decoration:none}
body.catalog-page a:hover{color:var(--brand-600)}
body.catalog-page .muted{color:var(--muted);font-size:14px}
body.catalog-page .mono{font-family:ui-monospace,"SFMono-Regular",Consolas,"Liberation Mono",monospace;font-variant-numeric:tabular-nums}

body.catalog-page :focus-visible{
  outline:3px solid var(--accent);outline-offset:3px;border-radius:4px;
}

/* ------------------------------------------------------------- shell ------ */
body.catalog-page .parts-shell{
  max-width:var(--shell);margin:0 auto;
  padding-left:var(--gut);padding-right:var(--gut);
}

/* eyebrow: indexed, technical */
body.catalog-page .eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font-family:ui-monospace,Consolas,monospace;
  font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--brand);margin:0 0 14px;
}
body.catalog-page .eyebrow::before{
  content:"";width:22px;height:1px;background:var(--brand);opacity:.55;
}

/* ---------------------------------------------------------- contact bar --- */
body.catalog-page .contact-bar{
  background:var(--steel);color:#c8cfd6;font-size:12.5px;letter-spacing:.01em;
}
body.catalog-page .contact-bar .contact-row{
  height:42px;display:flex;align-items:center;justify-content:space-between;gap:16px;
}
body.catalog-page .contact-bar a{
  color:#fff;text-decoration:none;margin-left:20px;
  display:inline-flex;align-items:center;gap:6px;
  border-bottom:1px solid transparent;transition:border-color .2s var(--ease);
}
body.catalog-page .contact-bar a:hover{border-bottom-color:var(--accent);color:#fff}
body.catalog-page .contact-bar em{color:var(--muted-2);font-style:normal}

/* -------------------------------------------------------------- header ---- */
body.catalog-page .parts-header{
  position:sticky;top:0;z-index:40;background:rgba(244,242,238,.86);
  backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s var(--ease),background .3s var(--ease);
}
body.catalog-page .parts-header.is-stuck{box-shadow:0 8px 30px -22px rgba(20,24,29,.4);background:rgba(244,242,238,.95)}
body.catalog-page .nav-row{height:76px;display:flex;align-items:center;gap:36px;transition:height .3s var(--ease)}
body.catalog-page .parts-header.is-stuck .nav-row{height:66px}
body.catalog-page .parts-wordmark{display:flex;align-items:center;text-decoration:none}
body.catalog-page .company-logo{height:38px;width:auto;object-fit:contain;display:block}
body.catalog-page .parts-header nav{display:flex;gap:28px;flex:1}
body.catalog-page .parts-header nav a{
  position:relative;color:var(--ink-2);font-size:14.5px;font-weight:500;text-decoration:none;
  padding:6px 0;transition:color .2s var(--ease);
}
body.catalog-page .parts-header nav a::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--brand);
  transition:right .32s var(--ease);
}
body.catalog-page .parts-header nav a:hover{color:var(--ink)}
body.catalog-page .parts-header nav a:hover::after{right:0}
body.catalog-page .nav-contact,
body.catalog-page .hero-search button,
body.catalog-page .enquire-btn,
body.catalog-page .quote-btn,
body.catalog-page .nav-contact{
  border:0;background:var(--brand);color:#fff;text-decoration:none;font-weight:600;
  font-size:14px;padding:11px 20px;border-radius:var(--r-sm);cursor:pointer;
  transition:background .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease);
  box-shadow:0 1px 2px rgba(176,41,31,.28);
}
body.catalog-page .nav-contact:hover,
body.catalog-page .hero-search button:hover,
body.catalog-page .enquire-btn:hover,
body.catalog-page .quote-btn:hover{background:var(--brand-600);transform:translateY(-1px);box-shadow:0 8px 20px -10px rgba(176,41,31,.6)}

/* ---------------------------------------------------------------- hero ---- */
body.catalog-page .parts-hero{
  position:relative;isolation:isolate;overflow:hidden;
  background:
    radial-gradient(120% 90% at 88% -10%, rgba(176,41,31,.07) 0%, rgba(176,41,31,0) 58%),
    linear-gradient(180deg,#faf9f6 0%,#f4f2ee 100%);
  border-bottom:1px solid var(--line);
}
body.catalog-page .parts-hero::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:96px 96px;opacity:.34;
  mask-image:radial-gradient(90% 70% at 50% 40%,#000 0%,transparent 78%);
  -webkit-mask-image:radial-gradient(90% 70% at 50% 40%,#000 0%,transparent 78%);
}
body.catalog-page .hero-grid{
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,.85fr);
  gap:clamp(32px,5vw,76px);align-items:center;
  padding-top:clamp(56px,7vw,96px);padding-bottom:clamp(48px,6vw,84px);
}
body.catalog-page .parts-hero h1{
  font-size:clamp(42px,6.2vw,78px);line-height:1.0;letter-spacing:-.02em;
  margin:16px 0 20px;max-width:15ch;
}
body.catalog-page .parts-hero h1 em{font-style:normal;color:var(--brand);position:relative}
body.catalog-page .parts-hero h1 em::after{
  content:"";position:absolute;left:0;right:0;bottom:.06em;height:.08em;
  background:currentColor;opacity:.22;border-radius:2px;
}
body.catalog-page .parts-hero p{max-width:56ch;color:var(--muted);font-size:16.5px;line-height:1.68}

body.catalog-page .hero-search{
  display:flex;align-items:center;gap:6px;max-width:620px;margin-top:28px;
  background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-md);
  padding:7px 7px 7px 16px;box-shadow:var(--sh-1);
  transition:box-shadow .25s var(--ease),border-color .25s var(--ease);
}
body.catalog-page .hero-search:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px rgba(176,41,31,.1),var(--sh-1)}
body.catalog-page .hero-search span{color:var(--brand);font-size:18px;flex:none}
body.catalog-page .hero-search input{
  flex:1;min-width:0;border:0;background:transparent;outline:0;font-size:15px;padding:11px 4px;color:var(--ink);width:auto;
}
body.catalog-page .hero-search input::placeholder{color:var(--muted-2)}
body.catalog-page .hero-search button{flex:none;border-radius:calc(var(--r-md) - 4px)}

body.catalog-page .hero-cta{
  display:flex;align-items:center;gap:16px;margin-top:22px;flex-wrap:wrap;
  background:transparent;padding:0;border:0;border-radius:0;
}
body.catalog-page .hero-cta .h1-line{display:block}
body.catalog-page .parts-hero h1 .h1-line{display:block}
body.catalog-page .hero-quote-btn{
  display:inline-block;padding:13px 24px;border-radius:var(--r-sm);
  border:1px solid var(--ink);color:var(--ink);background:transparent;font-weight:600;font-size:14.5px;
  transition:background .22s var(--ease),color .22s var(--ease),transform .22s var(--ease);
}
body.catalog-page .hero-quote-btn:hover{background:var(--ink);color:#fff;transform:translateY(-1px)}
body.catalog-page .hero-cta span{color:var(--muted);font-size:13.5px;max-width:34ch;line-height:1.5}

body.catalog-page .hero-notes{display:flex;gap:26px;margin-top:26px;flex-wrap:wrap}
body.catalog-page .hero-notes span{
  display:inline-flex;align-items:center;gap:9px;color:var(--muted);font-size:12.5px;letter-spacing:.02em;
}
body.catalog-page .hero-notes b{
  font-family:ui-monospace,Consolas,monospace;color:var(--brand);font-size:11px;font-weight:700;
  border:1px solid rgba(176,41,31,.28);border-radius:4px;padding:1px 5px;
}

body.catalog-page .hero-visual{position:relative}
body.catalog-page .hero-visual img{
  width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--r-lg);
  box-shadow:var(--sh-2);display:block;
}
body.catalog-page .hero-panel{
  position:absolute;left:-18px;bottom:-18px;background:var(--steel);color:#fff;
  padding:22px 26px;border-radius:var(--r-md);box-shadow:var(--sh-2);max-width:270px;
}
body.catalog-page .panel-label{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#9aa5b1}
body.catalog-page .panel-number{
  font-family:"Barlow Condensed",Inter,sans-serif;font-size:56px;font-weight:600;line-height:1;
  letter-spacing:-.03em;margin:12px 0 4px;color:#fff;
}
body.catalog-page .panel-number span{color:var(--accent)}
body.catalog-page .hero-panel p{color:#b6bfc8;font-size:12.5px;margin:0;line-height:1.45}

/* --------------------------------------------------------- trust strip ---- */
body.catalog-page .trust-strip{
  background:var(--steel);color:#cdd5dc;border-bottom:1px solid #0d1116;
}
body.catalog-page .trust-strip .parts-shell{display:flex;flex-wrap:wrap;gap:8px 40px;padding-top:16px;padding-bottom:16px}
body.catalog-page .trust-strip span{
  display:inline-flex;align-items:center;gap:9px;font-size:13px;letter-spacing:.01em;color:#cdd5dc;
}
body.catalog-page .trust-strip span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);flex:none}

/* ------------------------------------------------------- facts band ------- */
body.catalog-page .facts-band{padding-top:clamp(40px,5vw,64px);padding-bottom:0}
body.catalog-page .facts-band-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:0;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
body.catalog-page .fact-cell{padding:26px 26px 26px 0;border-right:1px solid var(--line)}
body.catalog-page .fact-cell:last-child{border-right:0;padding-right:0}
body.catalog-page .fact-cell b{
  display:block;font-family:"Barlow Condensed",Inter,sans-serif;font-weight:600;
  font-size:clamp(34px,3.6vw,50px);line-height:1;letter-spacing:-.02em;color:var(--ink);margin-bottom:8px;
}
body.catalog-page .fact-cell span{color:var(--muted);font-size:13.5px;line-height:1.4;display:block;max-width:22ch}

/* ------------------------------------------------------ section frame ----- */
body.catalog-page .brand-section,
body.catalog-page .directory,
body.catalog-page .capability,
body.catalog-page .reviews-section{padding-top:var(--sec-y);padding-bottom:var(--sec-y)}
body.catalog-page .brand-head{display:flex;justify-content:space-between;align-items:flex-end;gap:28px;margin-bottom:30px;flex-wrap:wrap}
body.catalog-page .brand-head p,.body.catalog-page .directory-heading p{color:var(--muted);max-width:62ch;margin-bottom:0}
body.catalog-page .brand-count{
  font-family:ui-monospace,Consolas,monospace;font-size:12.5px;color:var(--muted);
  border:1px solid var(--line-2);border-radius:999px;padding:6px 14px;white-space:nowrap;background:var(--surface);
}

/* ------------------------------------------------------- brand grid ------- */
body.catalog-page .brand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:12px}
body.catalog-page .brand-chip{
  position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
  padding:18px 18px;color:var(--ink);font-weight:600;font-size:15px;text-decoration:none;
  transition:border-color .22s var(--ease),transform .22s var(--ease),box-shadow .22s var(--ease);
  overflow:hidden;
}
body.catalog-page .brand-chip::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--brand);
  transform:scaleY(0);transform-origin:bottom;transition:transform .3s var(--ease);
}
body.catalog-page .brand-chip:hover{border-color:var(--line-2);transform:translateY(-3px);box-shadow:var(--sh-1)}
body.catalog-page .brand-chip:hover::before{transform:scaleY(1)}
body.catalog-page .brand-chip em,.body.catalog-page .brand-chip .brand-n{
  font-family:ui-monospace,Consolas,monospace;font-style:normal;font-size:12px;color:var(--muted-2);
}
body.catalog-page .brand-page-link{
  display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;color:var(--brand);
}

/* -------------------------------------------------------- directory ------- */
body.catalog-page .directory-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:26px;margin-bottom:26px;flex-wrap:wrap}
body.catalog-page .directory-count{font-family:ui-monospace,Consolas,monospace;font-size:12.5px;color:var(--muted);white-space:nowrap}
body.catalog-page .filter-box{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:14px;align-items:end;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:18px;box-shadow:var(--sh-1);
}
body.catalog-page .filter-box label{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin:0}
body.catalog-page .filter-box label input,
body.catalog-page .filter-box label select{margin-top:7px}
body.catalog-page input,body.catalog-page select,body.catalog-page textarea{
  width:100%;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);
  padding:11px 13px;color:var(--ink);font-size:14.5px;
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease);
}
body.catalog-page input:focus,body.catalog-page select:focus,body.catalog-page textarea:focus{
  outline:0;border-color:var(--brand);box-shadow:0 0 0 4px rgba(176,41,31,.1);
}
body.catalog-page #clear-filters{
  border:1px solid var(--line-2);background:transparent;color:var(--ink-2);font-size:14px;font-weight:500;
  padding:12px 18px;border-radius:var(--r-sm);
}
body.catalog-page #clear-filters:hover{background:#efece6}

body.catalog-page .results-bar{
  display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;
  margin:20px 0 6px;color:var(--muted);font-size:12.5px;
}
body.catalog-page .parts-results{margin-top:10px}

/* result rows (rendered by catalog.js) — 6 列：图 / 零件号 / 名称 / 品质 / 价格 / 按钮 */
body.catalog-page .part-row{
  display:grid;
  grid-template-columns:76px minmax(110px,160px) minmax(0,1fr) 132px auto;
  gap:12px 22px;align-items:center;
  padding:16px 6px;border-top:1px solid var(--line);
  transition:background .2s var(--ease);
}
/* 每行完全相同的「Quality options / Genuine, Special…」是零信息噪音，隐藏 */
body.catalog-page .part-brand{display:none}
body.catalog-page .part-row:hover{background:rgba(255,255,255,.72)}
body.catalog-page .part-image{grid-column:1}
body.catalog-page .part-image img{
  width:76px;height:76px;object-fit:contain;border-radius:var(--r-sm);
  background:#fff;border:1px solid var(--line);padding:5px;display:block;
  transition:transform .3s var(--ease);
}
body.catalog-page .part-row:hover .part-image img{transform:scale(1.05)}
/* 无实拍图的商品：不显示破图，改画一张中性的「待补图」图案（约 86% 商品当前无图） */
body.catalog-page .part-image.no-img img{display:none}
body.catalog-page .part-image.no-img::before{
  content:"N/A";display:grid;place-items:center;
  width:76px;height:76px;border-radius:var(--r-sm);
  border:1px solid var(--line);color:var(--muted-2);
  font-family:ui-monospace,Consolas,monospace;font-size:10px;letter-spacing:.08em;
  background:
    repeating-linear-gradient(45deg,rgba(20,24,29,.045) 0 6px,transparent 6px 12px),
    linear-gradient(180deg,#fbfaf8,#f3f1ec);
}
body.catalog-page .part-code{
  grid-column:2;font-family:ui-monospace,Consolas,monospace;font-size:13px;font-weight:600;
  color:var(--ink);letter-spacing:.01em;text-decoration:none;word-break:break-word;
}
body.catalog-page .part-row a.part-code:hover{color:var(--brand)}
body.catalog-page .part-main{grid-column:3;min-width:0}
body.catalog-page .part-main h3{font-size:16px;font-weight:600;margin:0 0 4px;letter-spacing:-.008em}
body.catalog-page .part-main p{margin:0;color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.catalog-page .part-alt{font-family:ui-monospace,Consolas,monospace;font-size:11.5px;color:var(--muted-2);margin-top:4px}
body.catalog-page .part-brand{display:none}
body.catalog-page .part-price{grid-column:5;text-align:right;white-space:nowrap}
body.catalog-page .part-price strong,body.catalog-page .part-price b{
  display:block;font-size:16.5px;font-weight:700;letter-spacing:-.01em;color:var(--ink);font-variant-numeric:tabular-nums}
body.catalog-page .part-price small{display:block;color:var(--muted-2);font-size:11px;margin-top:3px}
body.catalog-page .quote-price{color:var(--brand);font-weight:700;font-size:13.5px}
body.catalog-page .part-row .enquire-btn{grid-column:6;justify-self:end;align-self:center;padding:10px 16px;font-size:13px}
body.catalog-page .empty-state,body.catalog-page .loading{text-align:center;padding:70px 20px;color:var(--muted)}
body.catalog-page .empty-cta{display:inline-block;margin-top:14px;font-weight:600}
body.catalog-page .results-more{display:flex;align-items:center;justify-content:center;gap:16px;padding:34px 0 6px;flex-wrap:wrap}

/* -------------------------------------------------------- capability ------ */
body.catalog-page .capability{
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,4vw,64px);
  align-items:center;
}
body.catalog-page .capability-copy h2{max-width:18ch}
body.catalog-page .capability-copy p{color:var(--muted);max-width:56ch}
body.catalog-page .capability-copy a{font-weight:600;display:inline-block;margin-top:8px}
body.catalog-page .capability-side img{
  width:100%;aspect-ratio:5/4;object-fit:cover;border-radius:var(--r-lg);box-shadow:var(--sh-2);display:block;
}
body.catalog-page .capability-facts{
  grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  margin-top:clamp(24px,3vw,40px);border-top:1px solid var(--line);
}
body.catalog-page .capability-facts>div{padding:26px 26px 0 0;border-right:1px solid var(--line)}
body.catalog-page .capability-facts>div:last-child{border-right:0;padding-right:0}
body.catalog-page .capability-facts b{display:block;font-size:16px;font-weight:600;margin-bottom:6px}
body.catalog-page .capability-facts span{color:var(--muted);font-size:13.5px;line-height:1.5;display:block;max-width:30ch}

/* ----------------------------------------------------------- reviews ------ */
body.catalog-page .reviews-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
body.catalog-page .reviews-score{
  font-family:ui-monospace,Consolas,monospace;font-size:12px;color:var(--ok);
  border:1px solid rgba(29,122,83,.3);border-radius:999px;padding:5px 12px;background:rgba(29,122,83,.06);white-space:nowrap;
}
body.catalog-page .reviews-lead{color:var(--muted);max-width:64ch}
body.catalog-page .reviews-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin-top:26px}
body.catalog-page .review-card{
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:22px;
  display:flex;flex-direction:column;gap:12px;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease);
}
body.catalog-page .review-card:hover{transform:translateY(-3px);box-shadow:var(--sh-1)}
body.catalog-page .review-stars{color:var(--flag);letter-spacing:2px;font-size:14px}
body.catalog-page .review-text{font-size:15px;line-height:1.55;color:var(--ink);margin:0;flex:1}
body.catalog-page .review-meta{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}
body.catalog-page .review-meta b{color:var(--ink-2)}
body.catalog-page .reviews-source{margin-top:22px;font-size:12.5px;color:var(--muted)}

/* 能力区：style.css 后段有一版「碳黑 full-bleed」主题，这里整体还原为亮色编辑风 */
body.catalog-page .capability{
  background:transparent;box-shadow:none;clip-path:none;margin-top:0;color:var(--ink);
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,4vw,64px);align-items:center;
}
body.catalog-page .capability-copy h2{color:var(--ink)}
body.catalog-page .capability-copy p{color:var(--muted)}
body.catalog-page .capability-copy a{color:var(--brand);font-weight:600}
body.catalog-page .capability-side>img{width:100%;aspect-ratio:5/4;object-fit:cover;border-radius:var(--r-lg);box-shadow:var(--sh-2);display:block;margin:0}
body.catalog-page .capability .capability-facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:clamp(24px,3vw,40px)}
body.catalog-page .capability-facts>div{
  background:transparent;border:0;border-right:1px solid var(--line);border-radius:0;
  padding:26px 26px 0 0;display:block;box-shadow:none;
}
body.catalog-page .capability-facts>div:last-child{border-right:0;padding-right:0}
body.catalog-page .capability-facts b{color:var(--ink);font-size:16px;font-weight:600;margin-bottom:6px;text-align:left;display:block}
body.catalog-page .capability-facts span{color:var(--muted);font-size:13.5px;line-height:1.55;text-align:left;display:block;max-width:30ch}

body.catalog-page .cta-band{
  background:var(--steel);color:#fff;position:relative;overflow:hidden;
}
body.catalog-page .cta-band::after{
  content:"";position:absolute;right:-80px;top:-80px;width:360px;height:360px;border-radius:50%;
  background:radial-gradient(circle,rgba(176,41,31,.5) 0%,rgba(176,41,31,0) 70%);
}
body.catalog-page .cta-band .parts-shell{
  display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;
  padding-top:clamp(40px,5vw,64px);padding-bottom:clamp(40px,5vw,64px);position:relative;z-index:1;
}
body.catalog-page .cta-band h2{color:#fff;font-size:clamp(26px,3vw,42px);margin-bottom:6px}
body.catalog-page .cta-band p{color:#b6bfc8;margin:0;max-width:52ch}
body.catalog-page .cta-actions{display:flex;gap:12px;flex-wrap:wrap}
body.catalog-page .cta-btn-white,body.catalog-page .cta-btn-ghost{
  display:inline-block;padding:13px 24px;border-radius:var(--r-sm);font-weight:600;font-size:14.5px;text-decoration:none;
  transition:transform .2s var(--ease),background .2s var(--ease),border-color .2s var(--ease);
}
body.catalog-page .cta-btn-white{background:#fff;color:var(--ink)}
body.catalog-page .cta-btn-white:hover{transform:translateY(-2px);color:var(--ink)}
body.catalog-page .cta-btn-ghost{border:1px solid rgba(255,255,255,.34);color:#fff}
body.catalog-page .cta-btn-ghost:hover{background:rgba(255,255,255,.1);transform:translateY(-2px);color:#fff}

/* --------------------------------------------------------- quote form ----- */
body.catalog-page .quote-section{padding:var(--sec-y) 0;background:var(--paper)}
body.catalog-page .quote-section h2{font-family:"Barlow Condensed",Inter,sans-serif;font-size:clamp(28px,3.1vw,44px)}
body.catalog-page .quote-sub{color:var(--muted);max-width:64ch}
body.catalog-page .quote-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}
body.catalog-page .quote-grid label,body.catalog-page .quote-msg{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
body.catalog-page .quote-grid label input,body.catalog-page .quote-msg textarea{margin-top:7px;font-weight:400;letter-spacing:0;text-transform:none;font-size:15px;color:var(--ink)}
body.catalog-page .quote-msg{display:block}
body.catalog-page .quote-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:6px}
body.catalog-page .quote-alt{font-size:13px;color:var(--muted)}
body.catalog-page .quote-tip{margin-top:12px;font-size:13.5px;padding:11px 14px;border-radius:var(--r-sm)}
body.catalog-page .quote-tip.ok{background:rgba(29,122,83,.08);color:var(--ok);border:1px solid rgba(29,122,83,.25)}
body.catalog-page .quote-tip.err{background:rgba(176,41,31,.07);color:var(--brand);border:1px solid rgba(176,41,31,.28)}
body.catalog-page .quote-hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

/* --------------------------------------------------------- support float -- */
body.catalog-page .support-float{position:fixed;right:20px;bottom:22px;z-index:45;display:flex;flex-direction:column;gap:8px}
body.catalog-page .support-float a{
  display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line-2);
  border-radius:999px;padding:11px 16px;color:var(--brand);text-decoration:none;font-size:13px;font-weight:600;
  box-shadow:var(--sh-1);transition:transform .2s var(--ease),box-shadow .2s var(--ease);
}
body.catalog-page .support-float a:hover{transform:translateX(-3px);box-shadow:var(--sh-2)}
body.catalog-page .support-float span{color:var(--ink-2)}

/* ------------------------------------------------------------- footer ----- */
body.catalog-page footer{background:var(--steel);color:#a9b3bd;padding-top:clamp(44px,5vw,72px)}
body.catalog-page .footer-grid{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:32px}
body.catalog-page .footer-grid img{height:34px;width:auto;margin-bottom:14px;filter:brightness(0) invert(1);opacity:.92}
body.catalog-page .footer-grid p{color:#8d97a1;font-size:13.5px;max-width:34ch;line-height:1.6}
body.catalog-page .footer-grid h4{
  color:#fff;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;margin:0 0 14px;
}
body.catalog-page .footer-grid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
body.catalog-page .footer-grid li a{color:#c3ccd4;font-size:13.5px;text-decoration:none;display:inline-flex;align-items:center;gap:8px}
body.catalog-page .footer-grid li a:hover{color:#fff}
body.catalog-page .footer-grid .wa-area{color:#7d8791;font-style:normal;font-size:11.5px}
body.catalog-page .footer-div{height:1px;background:#2b333c;margin:40px 0 0}
body.catalog-page .footer-bottom{
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:22px 0 30px;font-size:12.5px;color:#7d8791;
}
body.catalog-page .language-switcher{background:#111519;padding:10px 16px;display:flex;gap:16px;justify-content:center;flex-wrap:wrap;font-size:12.5px}
body.catalog-page .language-switcher a{color:#93a0ab}
body.catalog-page .language-switcher a:hover{color:#fff}

/* ---------------------------------------------------------- crawl index --- */
body.catalog-page .crawl-index{padding-top:8px}
body.catalog-page .crawl-index details{border:1px dashed var(--line-2);border-radius:var(--r-md);padding:14px 18px;background:rgba(255,255,255,.5)}
body.catalog-page .crawl-index summary{cursor:pointer;font-size:13px;color:var(--muted);font-weight:600}
body.catalog-page .crawl-chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
body.catalog-page .crawl-chips a{border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:12.5px;color:var(--ink-2);background:#fff}
body.catalog-page .crawl-chips em{font-style:normal;color:var(--muted-2);margin-left:6px;font-size:11px}
body.catalog-page .crawl-nums{display:flex;flex-wrap:wrap;gap:6px 14px;font-family:ui-monospace,Consolas,monospace;font-size:12px}
body.catalog-page .crawl-nums a{color:var(--muted)}

/* ================================================================ PRODUCT = */
body.catalog-page .breadcrumbs{
  max-width:var(--shell);margin:22px auto 0;padding:0 var(--gut);
  font-size:12.5px;color:var(--muted);letter-spacing:.01em;
}
body.catalog-page .breadcrumbs a{color:var(--muted)}
body.catalog-page .breadcrumbs a:hover{color:var(--brand)}
body.catalog-page .product-hero{
  max-width:var(--shell);margin:20px auto 0;display:grid;grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);
  gap:clamp(24px,3.4vw,52px);background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:clamp(22px,3vw,40px);box-shadow:var(--sh-1);
}
body.catalog-page .product-copy .eyebrow{margin-bottom:10px}
body.catalog-page .product-copy h1{font-size:clamp(30px,3.6vw,46px);line-height:1.05;margin:0 0 12px}
body.catalog-page .product-copy .lead{color:var(--muted);font-size:16px}
body.catalog-page .facts,body.catalog-page .detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:22px 0}
body.catalog-page .facts>div,body.catalog-page .detail-grid>div{
  border:1px solid var(--line);border-radius:var(--r-sm);padding:14px 16px;background:#fbfaf8;
}
body.catalog-page .facts b,body.catalog-page .detail-grid b{
  display:block;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:5px;
}
body.catalog-page .facts span,body.catalog-page .detail-grid span{color:var(--ink);font-size:14.5px}
body.catalog-page .option-list{margin-top:22px;border-top:1px solid var(--line);padding-top:20px}
body.catalog-page .option-list h2{font-size:22px;margin-bottom:12px}
body.catalog-page .product-option{
  display:grid;grid-template-columns:minmax(0,1.2fr) auto auto;align-items:center;gap:12px;
  padding:13px 0;border-top:1px solid var(--line);
}
body.catalog-page .product-option span{font-weight:700;color:var(--brand);font-variant-numeric:tabular-nums}
body.catalog-page .product-image-wrap{
  background:#fbfaf8;border:1px solid var(--line);border-radius:var(--r-md);padding:20px;text-align:center;
}
body.catalog-page .product-image-wrap img{width:100%;max-height:440px;object-fit:contain;display:block}
body.catalog-page .product-image-wrap small{display:block;color:var(--muted-2);font-size:12px;margin-top:12px;line-height:1.5}
body.catalog-page .detail-section{
  max-width:var(--shell);margin:18px auto 0;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-lg);padding:clamp(22px,3vw,38px);
}
body.catalog-page .detail-section h2{font-size:clamp(22px,2.4vw,30px);margin-bottom:10px}
body.catalog-page .detail-section h1{font-size:clamp(26px,3vw,38px);margin:0 0 8px}
body.catalog-page .primary-btn,body.catalog-page .secondary-btn{
  display:inline-block;padding:12px 22px;border-radius:var(--r-sm);text-decoration:none;font-weight:600;font-size:14.5px;margin:6px 8px 0 0;
  transition:transform .2s var(--ease),background .2s var(--ease);
}
body.catalog-page .primary-btn{background:var(--brand);color:#fff}
body.catalog-page .primary-btn:hover{background:var(--brand-600);transform:translateY(-1px);color:#fff}
body.catalog-page .secondary-btn{border:1px solid var(--line-2);color:var(--ink)}
body.catalog-page .secondary-btn:hover{border-color:var(--ink);transform:translateY(-1px);color:var(--ink)}
body.catalog-page .product-guides{list-style:none;padding:0;margin:10px 0 0;display:flex;flex-wrap:wrap;gap:10px}
body.catalog-page .product-guides a{
  border:1px solid var(--line);border-radius:999px;padding:7px 14px;font-size:13px;color:var(--ink-2);background:#fbfaf8;
}
body.catalog-page .related-part-item a{display:flex;justify-content:space-between;gap:12px;padding:11px 0;border-top:1px solid var(--line);color:var(--ink-2);font-size:13.5px}
body.catalog-page .related-part-item b{font-family:ui-monospace,Consolas,monospace;font-size:12.5px;color:var(--ink)}
body.catalog-page .related-part-item span{color:var(--muted)}
body.catalog-page .related-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:0 30px}

/* detail modal (catalog.js) */
body.catalog-page .detail-modal{display:none;position:fixed;inset:0;background:rgba(20,24,29,.55);z-index:60;align-items:center;justify-content:center;padding:20px;backdrop-filter:blur(4px)}
body.catalog-page .detail-modal.open{display:flex}
body.catalog-page .detail-card{
  background:var(--surface);width:min(560px,100%);border-radius:var(--r-lg);padding:30px;position:relative;box-shadow:var(--sh-2);
}
body.catalog-page .detail-close{position:absolute;right:12px;top:8px;border:0;background:none;font-size:28px;line-height:1;color:var(--muted);cursor:pointer}
body.catalog-page .quality-list{border-top:1px solid var(--line);margin-top:16px}
body.catalog-page .quality-option{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line)}

/* ================================================================ COMPANY = */
body.catalog-page .company-hero{
  border-bottom:1px solid var(--line);
  background:linear-gradient(180deg,#faf9f6,#f4f2ee);
}
body.catalog-page .company-hero .parts-shell{
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(28px,4vw,64px);
  align-items:center;padding-top:clamp(52px,6vw,92px);padding-bottom:clamp(48px,6vw,84px);
}
body.catalog-page .company-hero h1{font-size:clamp(36px,5vw,64px);line-height:1.02;margin:14px 0 18px;max-width:17ch}
body.catalog-page .company-hero p{color:var(--muted);font-size:17px;max-width:56ch;line-height:1.66}
body.catalog-page .company-hero img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-lg);box-shadow:var(--sh-2);display:block}
body.catalog-page .stats-band{border-bottom:1px solid var(--line);background:var(--surface)}
body.catalog-page .stats-band .parts-shell{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
body.catalog-page .stat{padding:26px 26px 26px 0;border-right:1px solid var(--line)}
body.catalog-page .stat:last-child{border-right:0}
body.catalog-page .stat b{display:block;font-family:"Barlow Condensed",Inter,sans-serif;font-size:clamp(32px,3.4vw,48px);line-height:1;letter-spacing:-.02em;margin-bottom:6px}
body.catalog-page .stat span{color:var(--muted);font-size:13.5px}
body.catalog-page .steps-section{padding-top:var(--sec-y);padding-bottom:var(--sec-y)}
body.catalog-page .section-sub{color:var(--muted);max-width:64ch}

/* =============================================================== MISC ===== */
body.catalog-page .language-switcher{background:#111519}

/* ------------------------------------------------------------ motion ------ */
/* 内容默认可见；仅当 JS 就绪（html.has-reveal）后才进入「隐藏→揭示」流程。
   这样 JS 失败/未执行时页面完整可读（无 FOUC 也无内容丢失）。 */
html.has-reveal body.catalog-page [data-reveal]{
  opacity:0;transform:translateY(18px);
  transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);
  transition-delay:var(--rd,0ms);
}
html.has-reveal body.catalog-page [data-reveal].is-in{opacity:1;transform:none}
html.has-reveal body.catalog-page [data-reveal="fade"]{transform:none}
html.has-reveal body.catalog-page [data-reveal="scale"]{transform:translateY(22px) scale(.985)}
html.has-reveal body.catalog-page [data-reveal].is-in[data-reveal="scale"]{transform:none}

@media(prefers-reduced-motion:reduce){
  html.has-reveal body.catalog-page [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}
  body.catalog-page *{animation-duration:.001ms!important;transition-duration:.001ms!important}
}

/* --------------------------------------------------------- responsive ----- */
@media(max-width:1024px){
  body.catalog-page .hero-grid{grid-template-columns:minmax(0,1fr);gap:36px}
  body.catalog-page .hero-visual{max-width:440px}
  body.catalog-page .facts-band-grid{grid-template-columns:repeat(2,1fr)}
  body.catalog-page .fact-cell:nth-child(2){border-right:0}
  body.catalog-page .fact-cell:nth-child(3),body.catalog-page .fact-cell:nth-child(4){border-top:1px solid var(--line)}
  body.catalog-page .capability{grid-template-columns:minmax(0,1fr)}
  body.catalog-page .capability-facts{grid-template-columns:repeat(3,1fr)}
  body.catalog-page .footer-grid{grid-template-columns:repeat(3,1fr);gap:26px}
  body.catalog-page .filter-box{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.catalog-page .company-hero .parts-shell{grid-template-columns:minmax(0,1fr)}
  body.catalog-page .company-hero img{max-width:520px}
  body.catalog-page .stats-band .parts-shell{grid-template-columns:repeat(2,1fr)}
  body.catalog-page .stat:nth-child(2){border-right:0}
  body.catalog-page .stat:nth-child(3),body.catalog-page .stat:nth-child(4){border-top:1px solid var(--line)}
  body.catalog-page .product-hero{grid-template-columns:minmax(0,1fr)}
}
@media(max-width:900px){
  body.catalog-page .part-row{
    grid-template-columns:72px minmax(0,1fr) auto;
    grid-template-areas:"img code code" "img main main" "img price btn";
    gap:6px 14px;padding:16px 2px;
  }
  body.catalog-page .part-image{grid-area:img;grid-column:auto}
  body.catalog-page .part-code{grid-area:code;grid-column:auto}
  body.catalog-page .part-main{grid-area:main;grid-column:auto}
  body.catalog-page .part-brand{display:none}
  body.catalog-page .part-price{grid-area:price;grid-column:auto;text-align:left;justify-self:start;align-self:center}
  body.catalog-page .part-price small{display:none}
  body.catalog-page .part-row .enquire-btn{grid-area:btn;justify-self:end;align-self:center;white-space:nowrap;padding:10px 16px}
}
@media(max-width:700px){
  /* 注意：contact-row/nav-row 同时挂 .parts-shell，padding 简写必须带左右 gutter，
     否则会把 --gut 内边距清零（10-12 移动端贴边 bug 的根因） */
  body.catalog-page .contact-bar .contact-row{height:auto;padding:9px var(--gut);flex-direction:column;align-items:flex-start;gap:4px}
  body.catalog-page .contact-bar a{margin-left:0;margin-right:16px}
  body.catalog-page .parts-header .nav-row{height:auto;flex-wrap:wrap;gap:10px;padding:10px var(--gut)}
  body.catalog-page .parts-header nav{order:3;width:100%;flex:0 0 100%;overflow-x:auto;gap:20px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  body.catalog-page .parts-header nav a{white-space:nowrap}
  body.catalog-page .parts-header .nav-contact{margin-left:auto}
  body.catalog-page .parts-hero h1{font-size:clamp(34px,10vw,48px)}
  body.catalog-page .hero-panel{position:static;margin-top:14px;max-width:none;left:auto;bottom:auto}
  body.catalog-page .facts-band-grid{grid-template-columns:1fr}
  body.catalog-page .fact-cell{border-right:0;padding-right:0;border-top:1px solid var(--line);padding-top:20px}
  body.catalog-page .fact-cell:first-child{border-top:0}
  body.catalog-page .filter-box{grid-template-columns:1fr}
  body.catalog-page .capability-facts{grid-template-columns:1fr}
  body.catalog-page .capability-facts>div{border-right:0;border-top:1px solid var(--line);padding:20px 0 0}
  body.catalog-page .reviews-grid{grid-template-columns:1fr}
  body.catalog-page .footer-grid{grid-template-columns:1fr 1fr}
  body.catalog-page .support-float a{padding:11px;border-radius:999px}
  body.catalog-page .support-float span{display:none}
  /* 移动端头部已有常驻「Request a quote」，悬浮铅笔按钮重复且遮挡搜索框 → 隐藏 */
  body.catalog-page .support-float a.sf-quote{display:none}
  body.catalog-page .related-list{grid-template-columns:1fr}
  body.catalog-page .facts,body.catalog-page .detail-grid{grid-template-columns:1fr}
}

/* --------------------------------------------------------------- RTL ------ */
html[dir="rtl"] body.catalog-page .eyebrow::before{order:2}
html[dir="rtl"] body.catalog-page .contact-bar a{margin-left:0;margin-right:20px}
html[dir="rtl"] body.catalog-page .hero-panel{left:auto;right:-18px}
html[dir="rtl"] body.catalog-page .part-price{text-align:left}
html[dir="rtl"] body.catalog-page .trust-strip .parts-shell{direction:rtl}
