/* ======================================================================
   m15 · Bold Minimal Grid · 醒目极简网格
   专业、可信、信息密集的 B2B 供应商商品展示店铺
   高对比但克制 — 主色 #111111 · 强调橙 #ff5a1f · 中性底 #f4f4f2
   系统中文字体栈(去外链字体)
   ====================================================================== */

:root {
    --m15-bg: #f4f4f2;
    --m15-bg-2: #ebebe8;
    --m15-card: #ffffff;
    --m15-ink: #111111;
    --m15-ink-2: #3b3b3b;
    --m15-ink-3: #767670;
    --m15-line: #e2e2dd;
    --m15-line-2: #d3d3cd;
    --m15-primary: #111111;
    --m15-accent: #ff5a1f;
    --m15-accent-d: #e64409;
    --m15-accent-l: #fff0e9;
    --m15-ok: #1f9d57;
    --zcfab-accent: #ff5a1f;

    --m15-display: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", Arial, sans-serif;
    --m15-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", Arial, sans-serif;

    --m15-shell: 1240px;
}

/* ───────── reset ───────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
body.m15-body {
    background: var(--m15-bg);
    color: var(--m15-ink);
    font-family: var(--m15-sans);
    font-size: 15px;
    line-height: 1.6;
    font-weight: 400;
    -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; height: auto; border: 0; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { font: inherit; cursor: pointer; }

.seo-h1 { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* ───────── shell ───────── */
.m15-shell { max-width: var(--m15-shell); margin: 0 auto; padding: 0 24px; }
.m15-shell--narrow { max-width: 880px; }

/* ───────── buttons ───────── */
.m15-btn {
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 12px 24px;
    font-family: var(--m15-sans); font-size: 14px; font-weight: 700;
    letter-spacing: 0.01em;
    border: 2px solid var(--m15-ink);
    background: transparent; color: var(--m15-ink);
    border-radius: 0;
    transition: background .14s ease, color .14s ease, transform .1s ease, border-color .14s ease;
    cursor: pointer; white-space: nowrap;
}
.m15-btn:hover { transform: translateY(-1px); }
.m15-btn-dark { background: var(--m15-ink); color: #fff; border-color: var(--m15-ink); }
.m15-btn-dark:hover { background: #000; }
.m15-btn-accent { background: var(--m15-accent); color: #fff; border-color: var(--m15-accent); }
.m15-btn-accent:hover { background: var(--m15-accent-d); border-color: var(--m15-accent-d); }
.m15-btn-sm { padding: 9px 16px; font-size: 13px; }
.m15-btn-block { display: flex; width: 100%; }

/* ======================================================================
   HEADER
   ====================================================================== */
.m15-mast { background: var(--m15-card); border-bottom: 1px solid var(--m15-line); }

.m15-topbar { background: var(--m15-ink); color: #cfcfca; font-size: 12.5px; }
.m15-topbar-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 0; flex-wrap: wrap; }
.m15-topbar-trust { letter-spacing: 0.02em; }
.m15-topbar-trust .dot { margin: 0 8px; color: var(--m15-accent); }
.m15-topbar-links { display: flex; gap: 18px; }
.m15-topbar-links a { color: #cfcfca; transition: color .14s ease; }
.m15-topbar-links a:hover { color: var(--m15-accent); }

.m15-mast-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 18px 0; flex-wrap: wrap; }
.m15-brand { display: flex; align-items: center; gap: 16px; min-width: 0; }
.m15-brand-logo { width: 56px; height: 56px; object-fit: contain; background: var(--m15-bg); border: 1px solid var(--m15-line); padding: 4px; flex: none; }
.m15-brand-text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.m15-brand-name { font-family: var(--m15-display); font-size: 22px; line-height: 1.05; letter-spacing: -0.01em; color: var(--m15-ink); }
.m15-brand-scope { font-size: 13px; color: var(--m15-ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.m15-mast-cta { display: flex; align-items: center; gap: 18px; }
.m15-mast-phone { text-align: right; line-height: 1.2; }
.m15-mast-phone-label { display: block; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--m15-ink-3); }
.m15-mast-phone-num { display: block; font-family: var(--m15-display); font-size: 22px; color: var(--m15-accent); }

.m15-nav { background: var(--m15-ink); }
.m15-nav-inner { display: flex; flex-wrap: wrap; }
.m15-nav-inner a {
    position: relative; padding: 15px 22px;
    font-size: 14.5px; font-weight: 600; color: #d8d8d3;
    transition: color .14s ease, background .14s ease;
}
.m15-nav-inner a::after { content: ""; position: absolute; left: 22px; right: 22px; bottom: 9px; height: 2px; background: var(--m15-accent); transform: scaleX(0); transition: transform .16s ease; }
.m15-nav-inner a:hover { color: #fff; }
.m15-nav-inner a:hover::after { transform: scaleX(1); }
.m15-nav-inner a.is-active { color: #fff; background: rgba(255,255,255,.06); }
.m15-nav-inner a.is-active::after { transform: scaleX(1); }

/* ======================================================================
   TRUST STRIP
   ====================================================================== */
.m15-trust { background: var(--m15-card); border-bottom: 1px solid var(--m15-line); }
.m15-trust-row { display: grid; grid-template-columns: repeat(4, 1fr); }
.m15-trust-item { display: flex; align-items: center; gap: 12px; padding: 16px 20px; border-left: 1px solid var(--m15-line); }
.m15-trust-item:first-child { border-left: 0; }
.m15-trust-item .num { font-family: var(--m15-display); font-size: 18px; color: var(--m15-accent); line-height: 1; }
.m15-trust-item .txt { font-size: 13.5px; color: var(--m15-ink-2); font-weight: 500; }

/* ======================================================================
   HERO
   ====================================================================== */
.m15-hero { background: var(--m15-bg); padding: 56px 0; border-bottom: 1px solid var(--m15-line); }
.m15-hero-grid { display: grid; grid-template-columns: 1.15fr 0.85fr; gap: 48px; align-items: center; }
.m15-eyebrow { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--m15-accent); padding: 6px 12px; border: 2px solid var(--m15-accent); margin-bottom: 22px; }
.m15-hero-title { font-family: var(--m15-display); font-size: 52px; line-height: 1.02; letter-spacing: -0.02em; color: var(--m15-ink); margin-bottom: 18px; }
.m15-hero-lead { font-size: 17px; color: var(--m15-ink-2); max-width: 560px; margin-bottom: 28px; }
.m15-cta-row { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 36px; }
.m15-hero-stats { display: grid; grid-template-columns: repeat(4, 1fr); border-top: 2px solid var(--m15-ink); }
.m15-stat { padding: 16px 14px 0; border-left: 1px solid var(--m15-line-2); }
.m15-stat:first-child { border-left: 0; }
.m15-stat strong { display: block; font-family: var(--m15-display); font-size: 26px; line-height: 1; color: var(--m15-ink); margin-bottom: 6px; }
.m15-stat span { font-size: 12px; letter-spacing: 0.06em; color: var(--m15-ink-3); text-transform: uppercase; }

.m15-hero-r { position: relative; border: 2px solid var(--m15-ink); background: var(--m15-card); aspect-ratio: 4/3; overflow: hidden; }
.m15-hero-r img { width: 100%; height: 100%; object-fit: cover; }
.m15-hero-stamp { position: absolute; left: 0; bottom: 18px; background: var(--m15-accent); color: #fff; font-family: var(--m15-display); font-size: 13px; letter-spacing: 0.04em; padding: 8px 16px; }

/* ======================================================================
   SECTION
   ====================================================================== */
.m15-section { padding: 56px 0; }
.m15-section--alt { background: var(--m15-bg-2); }
.m15-section-h { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 28px; padding-bottom: 14px; border-bottom: 2px solid var(--m15-ink); }
.m15-section-h h2 { font-family: var(--m15-display); font-size: 28px; line-height: 1; letter-spacing: -0.01em; color: var(--m15-ink); }
.m15-section-h h2 small { font-family: var(--m15-sans); font-size: 12px; font-weight: 700; letter-spacing: 0.16em; color: var(--m15-accent); margin-left: 12px; text-transform: uppercase; }
.m15-section-h .more { font-size: 13px; font-weight: 700; color: var(--m15-ink-3); transition: color .14s ease; white-space: nowrap; }
.m15-section-h .more:hover { color: var(--m15-accent); }
.m15-section-h--sub { margin-top: 44px; }
.m15-section-h--sub h2 { font-size: 22px; }

/* ───────── category pills ───────── */
.m15-cats { padding: 40px 0 0; }
.m15-cats-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.m15-cat-pill {
    padding: 11px 20px; font-size: 14px; font-weight: 600;
    border: 2px solid var(--m15-line-2); background: var(--m15-card); color: var(--m15-ink);
    transition: all .14s ease;
}
.m15-cat-pill:hover { border-color: var(--m15-ink); }
.m15-cat-pill.is-active { background: var(--m15-ink); color: #fff; border-color: var(--m15-ink); }

/* ======================================================================
   FEATURED PRODUCTS
   ====================================================================== */
.m15-feat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.m15-feat-card { display: flex; flex-direction: column; background: var(--m15-card); border: 1px solid var(--m15-line); transition: border-color .14s ease, transform .12s ease, box-shadow .14s ease; }
.m15-feat-card:hover { border-color: var(--m15-ink); transform: translateY(-2px); box-shadow: 0 10px 26px rgba(17,17,17,.08); }
.m15-feat-img { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--m15-bg); }
.m15-feat-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.m15-feat-card:hover .m15-feat-img img { transform: scale(1.04); }
.m15-feat-badge { position: absolute; top: 0; left: 0; background: var(--m15-accent); color: #fff; font-size: 11px; font-weight: 700; letter-spacing: 0.08em; padding: 5px 12px; }
.m15-feat-body { padding: 18px; display: flex; flex-direction: column; flex: 1; }
.m15-feat-title { font-size: 16px; font-weight: 700; line-height: 1.35; color: var(--m15-ink); margin-bottom: 14px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 44px; }
.m15-feat-attrs { display: flex; flex-direction: column; gap: 6px; margin-bottom: 16px; }
.m15-feat-attrs > div { display: flex; gap: 10px; font-size: 12.5px; }
.m15-feat-attrs dt { color: var(--m15-ink-3); min-width: 48px; text-transform: uppercase; letter-spacing: 0.04em; font-size: 11px; padding-top: 1px; }
.m15-feat-attrs dd { color: var(--m15-ink-2); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.m15-feat-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 14px; border-top: 1px solid var(--m15-line); }
.m15-feat-price { font-family: var(--m15-display); font-size: 20px; color: var(--m15-accent); }
.m15-feat-price small { font-family: var(--m15-sans); font-size: 11px; font-weight: 500; color: var(--m15-ink-3); }
.m15-feat-cta { display: inline-flex; align-items: center; font-size: 12px; font-weight: 700; color: #fff; background: var(--m15-accent); padding: 7px 14px; transition: background .14s ease; }
.m15-feat-card:hover .m15-feat-cta { background: var(--m15-accent-d); }

/* ======================================================================
   PRODUCT GRID (compact cards)
   ====================================================================== */
.m15-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 14px; }
.m15-card { display: flex; flex-direction: column; background: var(--m15-card); border: 1px solid var(--m15-line); transition: border-color .14s ease, transform .12s ease, box-shadow .14s ease; }
.m15-card:hover { border-color: var(--m15-ink); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(17,17,17,.07); }
.m15-card-img { aspect-ratio: 1/1; overflow: hidden; background: var(--m15-bg); }
.m15-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.m15-card:hover .m15-card-img img { transform: scale(1.04); }
.m15-card-body { padding: 14px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.m15-card-title { font-size: 14px; font-weight: 600; line-height: 1.4; color: var(--m15-ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.m15-card-spec { font-size: 12px; color: var(--m15-ink-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.m15-card-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 10px; border-top: 1px solid var(--m15-line); }
.m15-card-price { font-family: var(--m15-display); font-size: 17px; color: var(--m15-accent); }
.m15-card-moq { font-size: 11px; color: var(--m15-ink-3); background: var(--m15-bg-2); padding: 3px 8px; white-space: nowrap; }

/* ======================================================================
   ABOUT (home)
   ====================================================================== */
.m15-about { display: grid; grid-template-columns: 1.6fr 1fr; gap: 32px; }
.m15-about-text { font-size: 15px; color: var(--m15-ink-2); line-height: 1.8; }
.m15-about-text p { margin-bottom: 22px; }
.m15-about-meta { background: var(--m15-ink); color: #e5e5e0; padding: 26px; }
.m15-about-meta h4 { font-family: var(--m15-display); font-size: 15px; color: #fff; margin-bottom: 16px; padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.16); }
.m15-about-meta dl > div { display: flex; gap: 12px; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,.1); font-size: 13.5px; }
.m15-about-meta dl > div:last-child { border-bottom: 0; }
.m15-about-meta dt { color: #9a9a94; min-width: 72px; }
.m15-about-meta dd { color: #fff; font-weight: 500; }

/* ======================================================================
   INQUIRY STRIP
   ====================================================================== */
.m15-inquiry { background: var(--m15-ink); color: #fff; }
.m15-inquiry-row { display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 36px 0; flex-wrap: wrap; }
.m15-inquiry-text h3 { font-family: var(--m15-display); font-size: 26px; color: #fff; margin-bottom: 6px; }
.m15-inquiry-text p { color: #b8b8b2; font-size: 14.5px; }
.m15-inquiry-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.m15-inquiry-phone { line-height: 1.2; text-align: right; }
.m15-inquiry-phone small { display: block; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: #9a9a94; }
.m15-inquiry-phone strong { display: block; font-family: var(--m15-display); font-size: 24px; color: var(--m15-accent); }

/* ======================================================================
   BREADCRUMB
   ====================================================================== */
.m15-crumb { background: var(--m15-card); border-bottom: 1px solid var(--m15-line); }
.m15-crumb-row { display: flex; align-items: center; gap: 10px; padding: 13px 0; font-size: 13px; color: var(--m15-ink-3); }
.m15-crumb-row a { color: var(--m15-ink-2); transition: color .14s ease; }
.m15-crumb-row a:hover { color: var(--m15-accent); }
.m15-crumb-row .sep { color: var(--m15-line-2); }

/* ======================================================================
   LAYOUT (catalog)
   ====================================================================== */
.m15-layout { display: grid; grid-template-columns: 268px 1fr; gap: 28px; align-items: start; }
.m15-side { display: flex; flex-direction: column; gap: 18px; }
.m15-side-card { background: var(--m15-card); border: 1px solid var(--m15-line); padding: 20px; }
.m15-side-card h3 { font-family: var(--m15-display); font-size: 15px; color: var(--m15-ink); margin-bottom: 14px; padding-bottom: 12px; border-bottom: 2px solid var(--m15-ink); }
.m15-side-list { display: flex; flex-direction: column; }
.m15-side-list a { padding: 10px 12px; font-size: 14px; color: var(--m15-ink-2); border-left: 2px solid transparent; transition: all .14s ease; }
.m15-side-list a:hover { color: var(--m15-ink); background: var(--m15-bg); border-left-color: var(--m15-accent); }
.m15-side-list a.is-active { color: var(--m15-ink); font-weight: 700; background: var(--m15-bg); border-left-color: var(--m15-accent); }
.m15-side-contact p { font-size: 13px; color: var(--m15-ink-2); margin-bottom: 14px; }
.m15-side-phone { display: block; font-family: var(--m15-display); font-size: 22px; color: var(--m15-accent); margin-bottom: 12px; }

.m15-side-prods { display: flex; flex-direction: column; gap: 12px; }
.m15-side-prod { display: flex; gap: 12px; align-items: center; }
.m15-side-prod-img { width: 56px; height: 56px; flex: none; overflow: hidden; background: var(--m15-bg); border: 1px solid var(--m15-line); }
.m15-side-prod-img img { width: 100%; height: 100%; object-fit: cover; }
.m15-side-prod-name { font-size: 13px; color: var(--m15-ink-2); line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.m15-side-prod:hover .m15-side-prod-name { color: var(--m15-accent); }
.m15-side-news li { padding: 9px 0; border-bottom: 1px dashed var(--m15-line); font-size: 13.5px; }
.m15-side-news li:last-child { border-bottom: 0; }
.m15-side-news a { color: var(--m15-ink-2); transition: color .14s ease; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.m15-side-news a:hover { color: var(--m15-accent); }

.m15-main { min-width: 0; }
.m15-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px 18px; background: var(--m15-card); border: 1px solid var(--m15-line); margin-bottom: 16px; flex-wrap: wrap; }
.m15-toolbar-label { font-size: 13px; font-weight: 700; color: var(--m15-ink); border-bottom: 2px solid var(--m15-accent); padding-bottom: 2px; }
.m15-toolbar-total { font-size: 13px; color: var(--m15-ink-3); }
.m15-toolbar-total strong { color: var(--m15-accent); font-family: var(--m15-display); }

.m15-empty { padding: 72px 24px; text-align: center; background: var(--m15-card); border: 1px solid var(--m15-line); }
.m15-empty-title { font-family: var(--m15-display); font-size: 20px; color: var(--m15-ink); margin-bottom: 8px; }
.m15-empty-sub { font-size: 13.5px; color: var(--m15-ink-3); margin-bottom: 22px; }

/* ───────── pager (knp) ───────── */
.m15-pager { margin-top: 28px; }
.m15-pager :where(.pagination, ul) { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; padding: 0; margin: 0; list-style: none; }
.m15-pager :where(.pagination, ul) li { list-style: none; }
.m15-pager :where(a, span) { display: inline-flex; align-items: center; justify-content: center; min-width: 38px; height: 38px; padding: 0 12px; border: 1px solid var(--m15-line-2); background: var(--m15-card); color: var(--m15-ink-2); font-size: 13px; font-weight: 600; }
.m15-pager a:hover { border-color: var(--m15-ink); color: var(--m15-ink); }
.m15-pager .active span, .m15-pager li.active span, .m15-pager .current { background: var(--m15-ink); color: #fff; border-color: var(--m15-ink); }

/* ======================================================================
   PRODUCT DETAIL
   ====================================================================== */
.m15-prod-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; margin-bottom: 16px; }
.m15-prod-img { border: 1px solid var(--m15-line); background: var(--m15-card); aspect-ratio: 1/1; overflow: hidden; }
.m15-prod-img img { width: 100%; height: 100%; object-fit: contain; }
.m15-prod-info { display: flex; flex-direction: column; }
.m15-prod-name { font-family: var(--m15-display); font-size: 28px; line-height: 1.2; color: var(--m15-ink); margin-bottom: 18px; }
.m15-prod-price-box { background: var(--m15-accent-l); border-left: 4px solid var(--m15-accent); padding: 16px 20px; margin-bottom: 22px; }
.m15-prod-price-box small { display: block; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--m15-accent-d); margin-bottom: 4px; }
.m15-prod-price { font-family: var(--m15-display); font-size: 34px; color: var(--m15-accent); line-height: 1; }
.m15-prod-price em { font-family: var(--m15-sans); font-style: normal; font-size: 15px; font-weight: 500; color: var(--m15-ink-3); }
.m15-prod-attrs { border-top: 1px solid var(--m15-line); margin-bottom: 24px; }
.m15-prod-attrs > div { display: flex; gap: 16px; padding: 12px 4px; border-bottom: 1px solid var(--m15-line); font-size: 14px; }
.m15-prod-attrs dt { min-width: 92px; color: var(--m15-ink-3); font-size: 13px; }
.m15-prod-attrs dd { color: var(--m15-ink); font-weight: 500; }
.m15-prod-attrs dd a { color: var(--m15-accent); }
.m15-prod-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: auto; }
.m15-prod-cta .m15-btn { flex: 1; min-width: 160px; }

.m15-prod-cols { display: grid; grid-template-columns: 1fr 320px; gap: 28px; align-items: start; margin-top: 40px; }
.m15-prod-detail { min-width: 0; }

.m15-supplier-card { background: var(--m15-card); border: 1px solid var(--m15-line); padding: 22px; }
.m15-supplier-card h3 { font-family: var(--m15-display); font-size: 15px; color: var(--m15-ink); margin-bottom: 14px; padding-bottom: 12px; border-bottom: 2px solid var(--m15-ink); }
.m15-supplier-name { display: block; font-size: 18px; font-weight: 700; color: var(--m15-ink); }
.m15-supplier-name:hover { color: var(--m15-accent); }
.m15-supplier-verified { display: inline-block; font-size: 11px; font-weight: 700; color: var(--m15-ok); border: 1px solid var(--m15-ok); padding: 2px 8px; margin: 8px 0 14px; }
.m15-supplier-meta { margin-bottom: 16px; }
.m15-supplier-meta > div { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px dashed var(--m15-line); font-size: 13px; }
.m15-supplier-meta dt { color: var(--m15-ink-3); min-width: 56px; }
.m15-supplier-meta dd { color: var(--m15-ink-2); font-weight: 500; }
.m15-supplier-phone { display: block; font-family: var(--m15-display); font-size: 22px; color: var(--m15-accent); margin-bottom: 14px; }
.m15-supplier-card .m15-btn { margin-bottom: 8px; }

/* ───────── prose (rich text) ───────── */
.m15-prose { background: var(--m15-card); border: 1px solid var(--m15-line); padding: 32px; font-size: 15px; color: var(--m15-ink-2); line-height: 1.85; }
.m15-prose img { margin: 16px 0; }
.m15-prose p { margin-bottom: 16px; }
.m15-prose h1, .m15-prose h2, .m15-prose h3, .m15-prose h4 { font-family: var(--m15-display); color: var(--m15-ink); margin: 24px 0 12px; line-height: 1.3; }
.m15-prose table { width: 100%; border-collapse: collapse; margin: 16px 0; font-size: 14px; }
.m15-prose th, .m15-prose td { border: 1px solid var(--m15-line); padding: 10px 12px; text-align: left; }
.m15-prose th { background: var(--m15-bg); font-weight: 700; }
.m15-prose a { color: var(--m15-accent); }

/* ======================================================================
   INFORMATION PAGE
   ====================================================================== */
.m15-info-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.m15-stat-card { background: var(--m15-card); border: 1px solid var(--m15-line); border-top: 4px solid var(--m15-ink); padding: 22px; }
.m15-stat-card small { display: block; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--m15-ink-3); margin-bottom: 10px; }
.m15-stat-card strong { display: block; font-family: var(--m15-display); font-size: 30px; line-height: 1; color: var(--m15-ink); margin-bottom: 8px; }
.m15-stat-card span { font-size: 13px; color: var(--m15-ink-3); }

.m15-dossier { background: var(--m15-card); border: 1px solid var(--m15-line); }
.m15-dossier dl > div { display: grid; grid-template-columns: 180px 1fr; }
.m15-dossier dt { padding: 15px 22px; background: var(--m15-bg); border-bottom: 1px solid var(--m15-line); border-right: 1px solid var(--m15-line); font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--m15-ink-3); }
.m15-dossier dd { padding: 15px 22px; border-bottom: 1px solid var(--m15-line); color: var(--m15-ink); font-weight: 500; }
.m15-dossier dl > div:last-child dt, .m15-dossier dl > div:last-child dd { border-bottom: 0; }
.m15-verified { color: var(--m15-ok); font-weight: 700; }

/* ======================================================================
   CONTACT PAGE
   ====================================================================== */
.m15-contact-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 28px; align-items: start; }
.m15-contact-info, .m15-contact-qr { background: var(--m15-card); border: 1px solid var(--m15-line); padding: 28px; }
.m15-contact-info h3, .m15-contact-qr h3 { font-family: var(--m15-display); font-size: 16px; color: var(--m15-ink); margin-bottom: 18px; padding-bottom: 12px; border-bottom: 2px solid var(--m15-ink); }
.m15-contact-list > div { display: grid; grid-template-columns: 100px 1fr; gap: 14px; padding: 11px 0; border-bottom: 1px dashed var(--m15-line); align-items: baseline; }
.m15-contact-list > div:last-child { border-bottom: 0; }
.m15-contact-list dt { font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--m15-ink-3); }
.m15-contact-list dd { color: var(--m15-ink); font-weight: 500; word-break: break-all; }
.m15-contact-list dd a { color: var(--m15-ink); }
.m15-contact-list .is-primary dt { color: var(--m15-accent-d); }
.m15-contact-list .is-primary dd a { font-family: var(--m15-display); font-size: 24px; color: var(--m15-accent); }
.m15-contact-action { margin-top: 22px; padding-top: 22px; border-top: 2px solid var(--m15-line); }

.m15-qr-box { background: #fff; border: 2px solid var(--m15-ink); padding: 12px; max-width: 220px; margin: 0 auto 14px; }
.m15-qr-box img { width: 100%; }
.m15-qr-tip { text-align: center; font-size: 13px; color: var(--m15-ink-3); }
.m15-qr-empty { padding: 48px 24px; border: 2px dashed var(--m15-line-2); text-align: center; }
.m15-qr-empty p { font-size: 13px; color: var(--m15-ink-3); }
.m15-contact-quicklinks { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--m15-line); }
.m15-contact-quicklinks-h { font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--m15-ink-3); margin-bottom: 10px; }
.m15-contact-quicklinks .m15-btn { margin: 0 6px 6px 0; }

/* ───────── form (message) ───────── */
.m15-form { display: flex; flex-direction: column; gap: 16px; }
.m15-field { display: flex; flex-direction: column; gap: 7px; }
.m15-field-label { font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--m15-ink-3); font-weight: 600; }
.m15-input { width: 100%; padding: 11px 14px; font-family: var(--m15-sans); font-size: 14px; color: var(--m15-ink); background: var(--m15-bg); border: 1px solid var(--m15-line-2); border-radius: 0; }
.m15-input:focus { outline: none; border-color: var(--m15-accent); background: #fff; }
.m15-textarea { min-height: 130px; resize: vertical; }
.m15-field-code { display: flex; gap: 10px; align-items: stretch; }
.m15-field-code .m15-input { flex: 1; }
.m15-field-code .m15-btn { white-space: nowrap; }
.m15-form-actions { margin-top: 6px; }
.m15-form-actions .m15-btn { min-width: 180px; }

/* ======================================================================
   NEWS
   ====================================================================== */
.m15-news-list { background: var(--m15-card); border: 1px solid var(--m15-line); }
.m15-news-list li { border-bottom: 1px solid var(--m15-line); }
.m15-news-list li:last-child { border-bottom: 0; }
.m15-news-list li > a { display: grid; grid-template-columns: 104px 1fr auto; gap: 26px; align-items: center; padding: 22px 24px; transition: background .14s ease; }
.m15-news-list li > a:hover { background: var(--m15-bg); }
.m15-news-date { text-align: center; border-right: 1px solid var(--m15-line); padding-right: 20px; }
.m15-news-date strong { display: block; font-family: var(--m15-display); font-size: 34px; line-height: 1; color: var(--m15-ink); }
.m15-news-date span { display: block; font-size: 11px; letter-spacing: 0.1em; color: var(--m15-ink-3); margin-top: 6px; }
.m15-news-body h3 { font-size: 17px; font-weight: 700; color: var(--m15-ink); margin-bottom: 6px; }
.m15-news-list li > a:hover .m15-news-body h3 { color: var(--m15-accent); }
.m15-news-body p { font-size: 13.5px; color: var(--m15-ink-2); line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.m15-news-more { display: inline-block; font-size: 12px; font-weight: 700; color: var(--m15-accent); margin-top: 8px; }
.m15-news-arrow { font-size: 26px; color: var(--m15-line-2); }
.m15-news-list li > a:hover .m15-news-arrow { color: var(--m15-accent); }

.m15-news-head { margin-bottom: 28px; }
.m15-news-tag { display: inline-block; background: var(--m15-accent); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: 0.04em; padding: 5px 12px; margin-bottom: 16px; }
.m15-news-title { font-family: var(--m15-display); font-size: 34px; line-height: 1.25; color: var(--m15-ink); margin-bottom: 16px; }
.m15-news-meta { display: flex; flex-wrap: wrap; gap: 18px; padding: 12px 0; border-top: 1px solid var(--m15-line); border-bottom: 1px solid var(--m15-line); font-size: 13px; color: var(--m15-ink-3); }
.m15-news-foot { display: flex; gap: 12px; flex-wrap: wrap; justify-content: space-between; align-items: center; margin-top: 28px; padding-top: 22px; border-top: 2px solid var(--m15-line); }

/* ======================================================================
   SITEMAP
   ====================================================================== */
.m15-sitemap { display: flex; flex-direction: column; gap: 28px; }
.m15-sitemap-block { background: var(--m15-card); border: 1px solid var(--m15-line); padding: 24px; }
.m15-sitemap-block h3 { font-family: var(--m15-display); font-size: 15px; color: var(--m15-ink); margin-bottom: 16px; padding-bottom: 12px; border-bottom: 2px solid var(--m15-ink); }
.m15-sitemap-pills { display: flex; flex-wrap: wrap; gap: 8px; }
.m15-sitemap-pills a { display: inline-block; padding: 8px 14px; border: 1px solid var(--m15-line-2); font-size: 13px; color: var(--m15-ink-2); transition: all .14s ease; }
.m15-sitemap-pills a:hover { border-color: var(--m15-ink); color: var(--m15-ink); }
.m15-sitemap-prods { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 4px; }
.m15-sitemap-prods a { display: block; padding: 9px 12px; border: 1px solid var(--m15-line); font-size: 13px; color: var(--m15-ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: all .14s ease; }
.m15-sitemap-prods a:hover { border-color: var(--m15-accent); color: var(--m15-accent); }

/* ======================================================================
   FOOTER
   ====================================================================== */
.m15-footer { background: var(--m15-ink); color: #b6b6b0; padding: 48px 0 0; }
.m15-footer-grid { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1.2fr; gap: 32px; padding-bottom: 36px; }
.m15-footer-col h4 { font-family: var(--m15-display); font-size: 18px; color: #fff; margin-bottom: 14px; }
.m15-footer-col h5 { font-size: 13px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: #fff; margin-bottom: 16px; }
.m15-footer-col p { font-size: 13.5px; line-height: 1.7; margin-bottom: 8px; }
.m15-footer-addr { color: #8e8e88; }
.m15-footer-col ul li { font-size: 13.5px; padding: 6px 0; }
.m15-footer-col ul li a { color: #b6b6b0; transition: color .14s ease; }
.m15-footer-col ul li a:hover { color: var(--m15-accent); }
.m15-footer-cta .m15-footer-phone { display: block; font-family: var(--m15-display); font-size: 24px; color: var(--m15-accent); margin-bottom: 14px; }
.m15-footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.12); flex-wrap: wrap; }
.m15-footer-bottom p { font-size: 12.5px; color: #8e8e88; }
.m15-footer-links { display: flex; gap: 18px; }
.m15-footer-links a { font-size: 12.5px; color: #b6b6b0; transition: color .14s ease; }
.m15-footer-links a:hover { color: var(--m15-accent); }

/* ======================================================================
   FLOATING CUSTOMER SERVICE
   ====================================================================== */
.m15-kf { position: fixed; right: 18px; bottom: 60px; z-index: 9000; display: flex; flex-direction: column; gap: 4px; }
.m15-kf-item { display: flex; align-items: center; justify-content: center; width: 54px; height: 54px; background: var(--m15-ink); color: #fff; font-size: 12px; font-weight: 700; border: 1px solid rgba(255,255,255,.12); transition: background .14s ease; }
.m15-kf-item:hover { background: var(--m15-accent); }
.m15-kf-inquiry { background: var(--m15-accent); }
.m15-kf-inquiry:hover { background: var(--m15-accent-d); }

/* ======================================================================
   DISPLAY WEIGHT (system font stand-in for heavy display type)
   ====================================================================== */
.m15-brand-name, .m15-mast-phone-num, .m15-trust-item .num, .m15-hero-title,
.m15-stat strong, .m15-hero-stamp, .m15-section-h h2, .m15-feat-price,
.m15-card-price, .m15-about-meta h4, .m15-inquiry-text h3, .m15-inquiry-phone strong,
.m15-side-card h3, .m15-side-phone, .m15-toolbar-total strong, .m15-empty-title,
.m15-prod-name, .m15-prod-price, .m15-supplier-card h3, .m15-supplier-phone,
.m15-prose h1, .m15-prose h2, .m15-prose h3, .m15-prose h4, .m15-stat-card strong,
.m15-contact-info h3, .m15-contact-qr h3, .m15-contact-list .is-primary dd a,
.m15-news-date strong, .m15-news-title, .m15-sitemap-block h3, .m15-footer-col h4,
.m15-footer-cta .m15-footer-phone { font-weight: 800; }

/* ======================================================================
   RESPONSIVE
   ====================================================================== */
@media (max-width: 1024px) {
    .m15-hero-title { font-size: 42px; }
    .m15-feat-grid { grid-template-columns: repeat(2, 1fr); }
    .m15-grid { grid-template-columns: repeat(4, 1fr); }
    .m15-footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
    .m15-trust-row { grid-template-columns: repeat(2, 1fr); }
    .m15-trust-item:nth-child(3) { border-left: 0; }
    .m15-hero-grid { grid-template-columns: 1fr; gap: 32px; }
    .m15-hero-r { order: -1; }
    .m15-layout { grid-template-columns: 1fr; }
    .m15-prod-grid { grid-template-columns: 1fr; gap: 24px; }
    .m15-prod-cols { grid-template-columns: 1fr; }
    .m15-about { grid-template-columns: 1fr; }
    .m15-contact-grid { grid-template-columns: 1fr; }
    .m15-info-stats { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .m15-shell { padding: 0 16px; }
    .m15-section { padding: 40px 0; }
    .m15-topbar-row { justify-content: center; gap: 8px; }
    .m15-mast-row { justify-content: center; }
    .m15-mast-cta { display: none; }
    .m15-nav-inner { overflow-x: auto; flex-wrap: nowrap; }
    .m15-nav-inner a { padding: 13px 16px; white-space: nowrap; }
    .m15-hero { padding: 36px 0; }
    .m15-hero-title { font-size: 34px; }
    .m15-hero-stats { grid-template-columns: repeat(2, 1fr); }
    .m15-stat { border-left: 0; border-top: 1px solid var(--m15-line-2); padding: 14px 0 0; }
    .m15-feat-grid { grid-template-columns: 1fr; }
    .m15-grid { grid-template-columns: repeat(2, 1fr); }
    .m15-section-h h2 { font-size: 22px; }
    .m15-section-h h2 small { display: block; margin: 6px 0 0; }
    .m15-inquiry-row { flex-direction: column; align-items: flex-start; }
    .m15-news-list li > a { grid-template-columns: 1fr; gap: 12px; }
    .m15-news-date { display: flex; gap: 8px; align-items: baseline; text-align: left; border-right: 0; border-bottom: 1px solid var(--m15-line); padding: 0 0 10px; }
    .m15-news-date strong { font-size: 22px; }
    .m15-news-arrow { display: none; }
    .m15-dossier dl > div { grid-template-columns: 110px 1fr; }
    .m15-footer-grid { grid-template-columns: 1fr; gap: 24px; }
    .m15-footer-bottom { flex-direction: column; align-items: flex-start; }
    .m15-prod-name, .m15-news-title { font-size: 24px; }
    .m15-info-stats { grid-template-columns: 1fr; }
}

/* === nav-fill 铺满 === */
.m15-nav-inner{display:flex;width:100%;flex-wrap:nowrap}
.m15-nav-inner>a{flex:1 1 0;min-width:0;text-align:center;justify-content:center;white-space:nowrap}
