/* 前台自定义样式（品牌色全部由 :root CSS 变量驱动，主题覆盖变量即可换肤） */
:root {
  --brand: #0d6efd;
  --brand-dark: #0d3b66;
  --brand-deep: #1565c0;
  --brand-mid: #1e88e5;
  --brand-light: #42a5f5;
  --brand-soft: #eaf2ff;
  --brand-line-hover: #bcd7ff;
  --nav-bg: #0d6efd;
  --nav-hover: #ffd54d;
  --ink: #1c2b45;
  --muted: #7a8699;
  --line: #e9edf3;
  --row-hover: #f4f8ff;
  --quote-bg: #ffc107;
  --quote-fg: #212529;
  --font-head: inherit;
}

body { font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; }

/* 内容宽度统一放大到 1500px（覆盖 Bootstrap 默认 1320px） */
.container { max-width: 1500px; }

/* 区块标题统一 */
.min-width-0 { min-width: 0; }
.section-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.5rem; }
.section-title h2 { position: relative; padding-left: .9rem; margin: 0; }
.section-title h2::before { content: ""; position: absolute; left: 0; top: .2em; bottom: .2em; width: 4px; border-radius: 2px; background: var(--brand); }

/* 热门分类卡片 */
.cat-card { display: block; background: #fff; border: 1px solid var(--line); border-radius: .6rem; padding: 1.1rem 1.2rem; text-decoration: none; transition: box-shadow .2s, transform .2s; height: 100%; }
.cat-card:hover { box-shadow: 0 .5rem 1rem rgba(0,0,0,.10); transform: translateY(-2px); border-color: var(--brand-line-hover); }
.cat-card .cat-icon { width: 46px; height: 46px; border-radius: 10px; background: var(--brand-soft); color: var(--brand); display: flex; align-items: center; justify-content: center; font-size: 1.4rem; margin-bottom: .6rem; }
.cat-card h6 { margin: 0 0 .25rem; color: var(--ink); }
.cat-card .sub { color: var(--muted); font-size: .78rem; line-height: 1.6; max-height: 2.6em; overflow: hidden; }
.cat-card .cnt { color: var(--brand); font-size: .78rem; font-weight: 600; }

/* 统计条 */
.stats-strip { background: linear-gradient(120deg, var(--brand-dark) 0%, var(--brand-mid) 100%); color: #fff; }
.stats-strip .num { font-size: 2rem; font-weight: 700; line-height: 1.1; }
.stats-strip .lbl { opacity: .85; font-size: .85rem; letter-spacing: .04em; text-transform: uppercase; }

/* 推荐供应商卡片 */
.sup-card { background: #fff; border: 1px solid var(--line); border-radius: .6rem; padding: 1.2rem; height: 100%; transition: box-shadow .2s, transform .2s; text-decoration: none; color: inherit; }
.sup-card:hover { box-shadow: 0 .5rem 1rem rgba(0,0,0,.10); transform: translateY(-2px); }
.sup-card .logo { width: 56px; height: 56px; border-radius: 12px; background: var(--brand-soft); color: var(--brand); display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 1.3rem; overflow: hidden; flex: none; }
.sup-card .logo img { width: 100%; height: 100%; object-fit: cover; }
.sup-card h6 { margin: 0; }
.sup-card .meta { color: var(--muted); font-size: .8rem; }

/* Why choose us 卡片 */
.why-card { background: #fff; border: 1px solid var(--line); border-radius: .6rem; padding: 1.5rem 1.2rem; height: 100%; text-align: center; }
.why-card .ic { width: 58px; height: 58px; margin: 0 auto .8rem; border-radius: 50%; background: var(--brand-soft); color: var(--brand); display: flex; align-items: center; justify-content: center; font-size: 1.6rem; }
.why-card .t { font-weight: 600; margin-bottom: .35rem; }
.why-card .d { color: var(--muted); font-size: .85rem; }

/* CTA 询盘横幅 */
.cta-banner { background: linear-gradient(120deg, var(--brand-dark) 0%, var(--brand-deep) 55%, var(--brand-mid) 100%); }

/* 内页与页脚之间保留留白；首页 CTA 区块直接衔接页脚（不留白条） */
main { padding-bottom: 2.5rem; }
body.page-home main { padding-bottom: 0; }

/* CTA 区块：标题两栏对齐 + 两张卡片顶部对齐（同一 grid 的第一行由较高标题撑开） */
/* CTA 区块：标题两栏对齐 + 两张卡片顶部/高度对齐
   用同一个 grid：第一行放两栏标题（自动取较高者），第二行放两张卡片，
   因此两张白卡的顶边天然对齐；align-items:stretch + h-100 让它们等高。 */
.cta-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  grid-template-areas: "hl hr" "cl cr";
  gap: 1.5rem;
  align-items: stretch;
}
.cta-grid .cta-head-l { grid-area: hl; }
.cta-grid .cta-head-r { grid-area: hr; }
.cta-grid .cta-card-l { grid-area: cl; }
.cta-grid .cta-card-r { grid-area: cr; }
.cta-grid .cta-head h2 { font-size: 1.75rem; }
@media (max-width: 991.98px) {
  .cta-grid { grid-template-columns: 1fr; grid-template-areas: "hl" "cl" "hr" "cr"; }
}

/* 产品卡片 */
.product-card { transition: box-shadow .2s, transform .2s; height: 100%; }
.product-card:hover { box-shadow: 0 .5rem 1rem rgba(0,0,0,.12); transform: translateY(-2px); }
.product-card .img-wrap { height: 190px; display: flex; align-items: center; justify-content: center; background: #f4f6f9; overflow: hidden; }
.product-card .img-wrap img { max-height: 100%; object-fit: cover; }
.img-placeholder { font-size: 3rem; color: #b8c2cf; }

/* Hero 轮播 */
.hero-slide { min-height: 360px; display: flex; align-items: center;
  background: linear-gradient(120deg, var(--brand-dark) 0%, var(--brand-mid) 60%, var(--brand-light) 100%); color: #fff; }
.hero-slide h1 { font-weight: 700; }
@media (max-width: 768px) { .hero-slide { min-height: 260px; } }

/* 分类悬停展开 */
.nav-item.dropdown:hover > .dropdown-menu { display: block; margin-top: 0; }

/* 产品详情画廊 */
.gallery-main { height: 380px; display: flex; align-items: center; justify-content: center; background: #f4f6f9; border: 1px solid #e5e9f0; }
.gallery-main img { max-height: 100%; object-fit: contain; }
.gallery-thumb { width: 72px; height: 72px; object-fit: cover; border: 2px solid transparent; cursor: pointer; }
.gallery-thumb.active, .gallery-thumb:hover { border-color: var(--brand); }

/* 详情页参数表 */
.spec-table td { padding: .5rem .75rem; }

/* 富文本图片自适应 */
.rich-text img { max-width: 100%; height: auto; }

/* 询盘车 */
.basket-item img { width: 64px; height: 64px; object-fit: cover; }

/* 简易趋势条（后台仪表盘备用） */
.trend-bar { background: var(--brand); border-radius: 3px 3px 0 0; min-height: 2px; }

/* ===== 头部：搜索靠右 + Get a Quote 最右 ===== */
.header-search .input-group { width: 480px; }
.header-search .form-select { flex: 0 0 128px; max-width: 128px; font-size: .9rem; }
/* logo/搜索行与下方导航栏的间距 */
.header-main { padding-bottom: 1rem; }
@media (max-width: 575.98px) {
  .header-main { padding-bottom: .65rem; }
}
.flex-none { flex: none; }
.link-light-soft { color: #c9d2e0; }
.link-light-soft:hover { color: #fff; }

/* 主导航底色可由主题覆盖（--nav-bg），默认与品牌色一致 */
.navbar.bg-primary { background-color: var(--nav-bg) !important; }
/* 标题字体可由主题覆盖 */
h1, h2, h3, h4, h5, h6 { font-family: var(--font-head); }

/* ===== 主导航：字号加大、纯白清晰 ===== */
.navbar-nav .nav-link { font-size: 1.08rem; font-weight: 500; color: #ffffff !important; padding: .85rem 1.05rem; }
@media (min-width: 992px) {
  .navbar-nav .nav-link { padding-left: 1.5rem; padding-right: 1.5rem; }
}
@media (min-width: 1200px) {
  .navbar-nav .nav-link { padding-left: 2rem; padding-right: 2rem; }
}
.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus,
.navbar-nav .nav-link.active { color: var(--nav-hover) !important; }

/* ===== 单页左侧导航 ===== */
.page-nav { border-radius: .5rem; }
.page-nav .list-group-item { border-left: 0; border-right: 0; font-size: .95rem; padding: .7rem 1rem; }
.page-nav .list-group-item:first-child { border-top: 0; }
.page-nav .list-group-item.active { background: var(--brand); border-color: var(--brand); font-weight: 600; }
@media (min-width: 992px) {
  .page-nav { position: sticky; top: 175px; }
}

/* ===== 顶栏：层级高于 sticky 头部，语言下拉不被遮挡 ===== */
.topbar { position: relative; z-index: 1035; }

/* ===== CTA 区 Popular Searches 卡片 ===== */
.popular-card { border-radius: .6rem; }
.popular-card .chip {
  display: inline-block; padding: .28rem .7rem; border-radius: 2rem;
  background: #eef3fb; color: #1c4d8f; font-size: .82rem; text-decoration: none;
  border: 1px solid #dbe6f5; transition: background .15s, color .15s;
}
.popular-card .chip:hover { background: var(--brand); color: #fff; border-color: var(--brand); }

/* 「Get a Quote」按钮配色（主题可覆盖 --quote-bg/--quote-fg） */
.btn-warning { background-color: var(--quote-bg) !important; border-color: var(--quote-bg) !important; color: var(--quote-fg) !important; }

/* 手机端头部按钮统一大小 */
@media (max-width: 991.98px) {
  header .btn { padding-left: .8rem; padding-right: .8rem; }
  header .btn-warning { font-size: .9rem; }
}
/* 手机端：头部允许换行，LOGO 缩小，汉堡/搜索/Get a Quote 保持一行 */
@media (max-width: 575.98px) {
  header .container { flex-wrap: wrap; row-gap: .5rem; }
  header .navbar-brand { font-size: 1.05rem !important; gap: .25rem; }
  header .navbar-brand img { height: 26px; }
  header .navbar-brand .bi-globe-americas { display: none; }
  header .btn { padding-left: .5rem; padding-right: .5rem; }
  header .btn-warning { font-size: .78rem; }
  header .d-flex.gap-2 { gap: .35rem !important; }
}

/* 手机端：Banner 文案改为文档流内展示，避免按钮/标题重叠 */
@media (max-width: 767.98px) {
  .carousel-caption { position: static; padding: 1.25rem .75rem 2.25rem; text-align: center; }
  .carousel-caption h2 { font-size: 1.35rem; }
  .carousel-caption p { font-size: .95rem; margin-bottom: .5rem; }
}

/* ===== 首页 Banner：左 Categories 面板 + 右轮播（同主内容 1500px） ===== */
.home-cat-panel {
  background: #fff; border: 1px solid var(--line); border-radius: .6rem;
  padding: .9rem 1rem; height: 100%; max-height: 400px; overflow-y: auto;
}
.home-cat-panel .panel-title {
  font-weight: 700; color: var(--ink); font-size: .95rem;
  padding-bottom: .5rem; margin-bottom: .4rem; border-bottom: 2px solid var(--brand);
}
.home-cat-panel .cat-item { padding: .35rem 0; border-bottom: 1px dashed #eef1f6; }
.home-cat-panel .cat-item:last-child { border-bottom: none; }
.home-cat-panel .cat-item > a {
  display: flex; justify-content: space-between; align-items: center;
  color: var(--ink); font-weight: 600; font-size: .9rem; text-decoration: none;
}
.home-cat-panel .cat-item > a:hover { color: var(--brand); }
.home-cat-panel .cat-subs { margin: .2rem 0 0; padding: 0 0 0 .9rem; list-style: none; }
.home-cat-panel .cat-subs a {
  color: var(--muted); font-size: .8rem; text-decoration: none; line-height: 1.7;
}
.home-cat-panel .cat-subs a:hover { color: var(--brand); }
.home-banner-wrap .carousel-inner { border-radius: .6rem; overflow: hidden; }
.home-banner-wrap .banner-img { height: 400px; width: 100%; object-fit: cover; }
@media (max-width: 991.98px) { .home-banner-wrap .banner-img { height: 240px; } }

/* ===== 会员中心侧栏导航：选中项反白（蓝底白字）、hover 浅蓝高亮 ===== */
.account-sidebar .card-body { border-bottom: 1px solid #eef1f6; }
.account-nav .list-group-item { padding: 0; border-left: 0; border-right: 0; border-color: #eef1f6; }
.account-nav .list-group-item > a {
  display: flex; align-items: center; gap: .55rem;
  padding: .72rem 1.05rem; font-size: .93rem;
  color: #33415c; background: transparent; text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
.account-nav .list-group-item > a:hover,
.account-nav .list-group-item > a:focus { background: #eef4ff; color: var(--brand); }
/* 选中项：反白（白字 + 蓝底） */
.account-nav .list-group-item.active { background: var(--brand); border-color: var(--brand); }
.account-nav .list-group-item.active > a,
.account-nav .list-group-item.active > a:hover,
.account-nav .list-group-item.active > a:focus {
  color: #ffffff !important; background: transparent; font-weight: 600;
}
.account-nav .list-group-item > a.text-danger { color: #dc3545; }
.account-nav .list-group-item > a.text-danger:hover { background: #fff1f2; color: #dc3545; }

/* 单页（About Us 等）左侧导航：选中项同样反白，防止链接色覆盖 */
.page-nav .list-group-item.active a,
.page-nav .list-group-item.active a:hover { color: #ffffff !important; }

/* ===== 首页「最新动态」三栏（最新产品 / 最新文章 / 最新供应商） =====
   一行三列（lg 及以上），手机端自动堆叠为单列；三张卡片等高。 */
.hub-card { background: #fff; border: 1px solid var(--line); border-radius: .6rem; display: flex; flex-direction: column; overflow: hidden; }
.hub-card .hub-head {
  display: flex; align-items: center; justify-content: space-between; gap: .5rem;
  padding: .8rem 1rem; border-bottom: 1px solid #eef1f6; background: #fafbfd;
}
.hub-card .hub-head h3 { margin: 0; font-size: 1rem; font-weight: 700; color: var(--ink); display: flex; align-items: center; gap: .45rem; }
.hub-card .hub-head h3 i { color: var(--brand); }
.hub-card .hub-head a { font-size: .8rem; color: var(--brand); text-decoration: none; white-space: nowrap; }
.hub-card .hub-head a:hover { text-decoration: underline; }
.hub-list { list-style: none; margin: 0; padding: .3rem 0; flex: 1 1 auto; }
.hub-list li { border-bottom: 1px dashed #eef1f6; }
.hub-list li:last-child { border-bottom: none; }
.hub-list li > a { display: flex; align-items: center; gap: .7rem; padding: .5rem 1rem; text-decoration: none; color: inherit; }
.hub-list li > a:hover { background: var(--row-hover); }
.hub-list .thumb {
  flex: none; width: 44px; height: 44px; border-radius: .4rem; background: #f1f4f9; color: #93a1b5;
  display: flex; align-items: center; justify-content: center; font-size: 1rem; font-weight: 700; overflow: hidden;
}
.hub-list .thumb.round { border-radius: 50%; background: var(--brand-soft); color: var(--brand); }
.hub-list .thumb img { width: 100%; height: 100%; object-fit: cover; }
.hub-list .txt { min-width: 0; display: flex; flex-direction: column; gap: .12rem; }
.hub-list .t {
  font-size: .9rem; font-weight: 600; color: #22324a; line-height: 1.3;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.hub-list li > a:hover .t { color: var(--brand); }
.hub-list .m { font-size: .76rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hub-list .m .price { color: var(--brand); font-weight: 600; }
.hub-list .m .sep { color: #c8d0db; margin: 0 .15rem; }
.hub-empty { padding: 1.5rem 1rem; color: #93a1b5; font-size: .85rem; text-align: center; }
@media (max-width: 991.98px) {
  .hub-list .t { -webkit-line-clamp: 1; }
}

/* ===== Get a Quote 询盘页（Banner + 左侧信息栏 + 分步表单） ===== */
.quote-hero { background: linear-gradient(120deg, var(--brand-dark) 0%, var(--brand) 70%, var(--brand-mid) 100%); color:#fff; padding: 2.75rem 0; }
.quote-hero-title { font-size: 2.1rem; font-weight: 700; margin-bottom: .6rem; }
.quote-hero-sub { max-width: 640px; color: rgba(255,255,255,.88); }
.quote-chips { display:flex; flex-wrap:wrap; gap:.5rem; }
.quote-chip { display:inline-flex; align-items:center; gap:.4rem; background: rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.28); border-radius:999px; padding:.32rem .85rem; font-size:.82rem; }
.quote-hero-card { display:inline-block; background: rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.25); border-radius:14px; padding:1rem 1.4rem; text-align:center; }
.quote-hero-card-num { font-size:2.1rem; font-weight:800; line-height:1; }
.quote-hero-card-label { font-size:.76rem; letter-spacing:.06em; text-transform:uppercase; color: rgba(255,255,255,.8); margin-top:.35rem; }
.quote-benefits { list-style:none; padding:0; }
.quote-benefits li { display:flex; gap:.65rem; align-items:flex-start; padding:.55rem 0; font-size:.86rem; color: var(--muted); border-bottom:1px dashed var(--line); }
.quote-benefits li:last-child { border-bottom:none; }
.quote-benefits i { color:#198754; font-size:1rem; line-height:1.35; }
.quote-benefits strong { color: var(--ink); }
.quote-step { display:flex; align-items:center; gap:.6rem; font-weight:700; color: var(--ink); padding-bottom:.6rem; margin-bottom:1rem; border-bottom:1px solid var(--line); }
.quote-step-num { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px; border-radius:50%; background: var(--brand); color:#fff; font-size:.85rem; }
.quote-next { background:#fff; border:1px solid var(--line); border-radius:10px; padding:1rem 1.1rem; height:100%; }
.quote-next-icon { color: var(--brand); font-size:1.5rem; margin-bottom:.4rem; }
.quote-next h6 { font-weight:700; margin-bottom:.3rem; }
.quote-next p { font-size:.82rem; color: var(--muted); }
@media (max-width: 575.98px) {
  .quote-hero { padding: 1.75rem 0; }
  .quote-hero-title { font-size: 1.6rem; }
}

/* ===== All Categories 全类目总览页 ===== */
.allcat-hero { background: linear-gradient(120deg, var(--brand-dark) 0%, var(--brand-deep) 55%, var(--brand-mid) 100%); color:#fff; padding: 2.4rem 0 2.6rem; }
.allcat-hero .breadcrumb { margin-bottom:.4rem; }
.allcat-hero .breadcrumb-item, .allcat-hero .breadcrumb-item a { color: rgba(255,255,255,.78); text-decoration:none; }
.allcat-hero .breadcrumb-item a:hover { color:#fff; }
.allcat-hero .breadcrumb-item.active { color:#fff; }
.allcat-hero .breadcrumb-item + .breadcrumb-item::before { color: rgba(255,255,255,.45); }
.allcat-title { font-size: 2.15rem; font-weight: 700; margin: 0 0 .5rem; }
.allcat-sub { max-width: 660px; color: rgba(255,255,255,.88); }
.allcat-search .form-control { border:0; height:46px; }
.allcat-search .btn { height:46px; }
.allcat-stats { display:flex; flex-wrap:wrap; gap:.6rem; margin-top:1.6rem; }
.allcat-stat { background: rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); border-radius:.6rem; padding:.55rem 1.1rem; min-width:132px; }
.allcat-stat .num { display:block; font-size:1.35rem; font-weight:700; line-height:1.15; }
.allcat-stat .lbl { display:block; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; opacity:.85; }

/* 一级分类索引网格 */
.allcat-index { margin-bottom: 2.4rem; }
.allcat-tile { display:block; height:100%; background:#fff; border:1px solid var(--line); border-radius:.7rem; overflow:hidden; text-decoration:none; transition: box-shadow .2s, transform .2s, border-color .2s; }
.allcat-tile:hover { box-shadow: 0 .6rem 1.4rem rgba(0,0,0,.10); transform: translateY(-2px); border-color: var(--brand-line-hover); }
.allcat-tile-media { display:block; height:102px; background: var(--brand-soft); }
.allcat-tile-media img { width:100%; height:100%; object-fit:cover; display:block; }
.allcat-tile-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:2.1rem; color: var(--brand); }
.allcat-tile-name { display:block; padding:.65rem .9rem .2rem; font-weight:600; font-size:.95rem; color: var(--ink); }
.allcat-tile:hover .allcat-tile-name { color: var(--brand); }
.allcat-tile-meta { display:block; padding:0 .9rem .75rem; font-size:.75rem; color: var(--muted); }

/* 分类分区区块 */
.allcat-block { background:#fff; border:1px solid var(--line); border-radius:.8rem; padding:1.4rem 1.5rem 1.6rem; margin-bottom:2rem; }
.allcat-head { display:flex; gap:1.5rem; align-items:flex-start; }
.allcat-media { flex:0 0 244px; max-width:244px; height:172px; border-radius:.6rem; overflow:hidden; background: var(--brand-soft); }
.allcat-media img { width:100%; height:100%; object-fit:cover; display:block; }
.allcat-media-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:3rem; color: var(--brand); }
.allcat-info { min-width:0; flex:1 1 auto; }
.allcat-cat-name { font-size:1.3rem; font-weight:700; margin:0 0 .5rem; display:flex; flex-wrap:wrap; align-items:baseline; gap:.65rem; }
.allcat-cat-name a { color: var(--ink); text-decoration:none; }
.allcat-cat-name a:hover { color: var(--brand); }
.allcat-count { font-size:.75rem; font-weight:600; color: var(--brand); background: var(--brand-soft); border-radius:999px; padding:.2rem .6rem; }
.allcat-desc { color: var(--muted); font-size:.9rem; line-height:1.7; margin-bottom:.9rem; }

/* 子分类 chip */
.allcat-subcats { display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
.allcat-subcats-lbl { font-size:.78rem; color: var(--muted); margin-right:.15rem; }
.allcat-chip { display:inline-flex; align-items:center; gap:.35rem; font-size:.78rem; padding:.28rem .62rem; border-radius:999px; background: var(--brand-soft); color: var(--brand); text-decoration:none; border:1px solid transparent; transition: background .18s, color .18s; }
.allcat-chip:hover { background: var(--brand); color:#fff; }
.allcat-chip-cnt { font-size:.68rem; background: rgba(0,0,0,.07); border-radius:999px; padding:0 .35rem; }
.allcat-chip:hover .allcat-chip-cnt { background: rgba(255,255,255,.3); }
.allcat-chip-lv3 { font-size:.72rem; background: #f4f6fa; color: var(--muted); }
.allcat-chip-lv3:hover { background: var(--brand); color:#fff; }
.allcat-chip-more { background: #f4f6fa; color: var(--muted); font-weight:600; }

/* 主推产品区 */
.allcat-prod-head { display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin:1.3rem 0 .9rem; padding-top:1.1rem; border-top:1px solid var(--line); }
.allcat-prod-head h3 { font-size:1.05rem; font-weight:700; margin:0; }
.allcat-prod-head h3 i { color: var(--brand); }
/* 每个分类固定展示 10 条 → 大屏 5 列两行，视觉整齐 */
.allcat-products > [class*="col-"] { flex:0 0 auto; width:20%; }
@media (max-width: 1399.98px) { .allcat-products > [class*="col-"] { width:25%; } }
@media (max-width: 991.98px)  { .allcat-products > [class*="col-"] { width:33.3333%; } }
@media (max-width: 767.98px)  { .allcat-products > [class*="col-"] { width:50%; } }
.allcat-empty { background: #f8fafc; border:1px dashed var(--line); border-radius:.6rem; padding:1.2rem; color: var(--muted); font-size:.88rem; text-align:center; }

/* 底部 CTA */
.allcat-cta { display:flex; flex-wrap:wrap; gap:1.2rem; align-items:center; justify-content:space-between; background: linear-gradient(120deg, var(--brand-dark) 0%, var(--brand-mid) 100%); color:#fff; border-radius:.8rem; padding:1.5rem 1.7rem; margin-top:2.2rem; }
.allcat-cta h3 { font-weight:700; font-size:1.2rem; }
.allcat-cta p { color: rgba(255,255,255,.86); max-width:760px; font-size:.9rem; }
.allcat-cta-actions { display:flex; gap:.6rem; flex-wrap:wrap; }

@media (max-width: 991.98px) {
  .allcat-title { font-size:1.75rem; }
  .allcat-head { flex-direction:column; gap:1rem; }
  .allcat-media { flex:none; max-width:100%; width:100%; height:190px; }
}
@media (max-width: 575.98px) {
  .allcat-hero { padding:1.6rem 0 1.8rem; }
  .allcat-title { font-size:1.5rem; }
  .allcat-stat { min-width:104px; padding:.45rem .8rem; }
  .allcat-block { padding:1.1rem 1rem 1.2rem; }
}

/* ============================================================
   标签（Tags）：列表页侧栏标签卡 / 详情页标签 / 标签专题页 / 标签总览页
   颜色统一走主题变量（--brand / --brand-soft / --ink / --muted / --line），
   六套主题自动适配。
   ============================================================ */

/* ---------- 通用 chip ---------- */
.tag-chips { display:flex; flex-wrap:wrap; gap:.4rem; align-items:center; }
.tag-chip {
  display:inline-flex; align-items:center; gap:.35rem;
  font-size:.78rem; line-height:1.4; padding:.28rem .66rem;
  border-radius:999px; background: var(--brand-soft); color: var(--brand);
  border:1px solid transparent; text-decoration:none;
  transition: background .18s, color .18s, border-color .18s;
}
.tag-chip:hover { background: var(--brand); color:#fff; }
.tag-chip-cnt { font-size:.68rem; background: rgba(0,0,0,.07); border-radius:999px; padding:0 .36rem; }
.tag-chip:hover .tag-chip-cnt { background: rgba(255,255,255,.3); }
.tag-chip-lg { font-size:.86rem; padding:.4rem .85rem; }

/* ---------- 列表页侧栏 / 内容区标签卡 ---------- */
.tag-widget { background:#fff; border:1px solid var(--line); border-radius:.6rem; margin-bottom:1.5rem; }
.tag-widget-head {
  display:flex; justify-content:space-between; align-items:center; gap:.5rem;
  padding:.65rem .9rem; border-bottom:1px solid var(--line); font-weight:600; font-size:.92rem;
}
.tag-widget-head i { color: var(--brand); }
.tag-widget-head a { font-size:.78rem; font-weight:500; color: var(--brand); text-decoration:none; }
.tag-widget-body { padding:.85rem .9rem; }
.tag-widget-sub { font-size:.75rem; color: var(--muted); margin:.7rem 0 0; }

/* ---------- 详情页当前文档标签 ---------- */
.doc-tags { display:flex; flex-wrap:wrap; align-items:center; gap:.4rem; margin:0 0 1.1rem; }
.doc-tags-lbl { font-size:.8rem; color: var(--muted); }
.doc-tags-lbl i { color: var(--brand); }

/* ---------- 标签专题页 / 总览页 Hero ---------- */
.tag-hero {
  position:relative; overflow:hidden; color:#fff;
  background: linear-gradient(120deg, var(--brand-dark) 0%, var(--brand-deep) 55%, var(--brand-mid) 100%);
  padding:2.2rem 0 2.4rem;
}
.tag-hero-bg {
  position:absolute; inset:0; background-size:cover; background-position:center;
  opacity:.22; mix-blend-mode:luminosity;
}
.tag-hero .breadcrumb { margin-bottom:.4rem; }
.tag-hero .breadcrumb-item, .tag-hero .breadcrumb-item a { color:rgba(255,255,255,.78); text-decoration:none; }
.tag-hero .breadcrumb-item a:hover { color:#fff; }
.tag-hero .breadcrumb-item.active { color:#fff; }
.tag-hero .breadcrumb-item + .breadcrumb-item::before { color:rgba(255,255,255,.45); }
.tag-hero-kicker {
  display:inline-flex; align-items:center; gap:.35rem;
  font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22);
  border-radius:999px; padding:.2rem .7rem; margin-bottom:.6rem;
}
.tag-hero-title { font-size:2.2rem; font-weight:700; margin:0 0 .5rem; }
.tag-hero-sub { max-width:760px; color:rgba(255,255,255,.9); font-size:.95rem; }
.tag-hero-stats { display:flex; flex-wrap:wrap; gap:.6rem; }
.tag-stat {
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2);
  border-radius:.6rem; padding:.5rem 1rem; min-width:96px;
}
.tag-stat .num { display:block; font-size:1.3rem; font-weight:700; line-height:1.15; }
.tag-stat .lbl { display:block; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; opacity:.85; }

/* ---------- 专题页：产品卡 ---------- */
.tag-products > [class*="col-"] { display:flex; }
.tag-pcard {
  position:relative; display:flex; flex-direction:column; width:100%;
  background:#fff; border:1px solid var(--line); border-radius:.7rem; overflow:hidden;
  transition: box-shadow .2s, transform .2s, border-color .2s;
}
.tag-pcard:hover { box-shadow:0 .6rem 1.4rem rgba(0,0,0,.1); transform:translateY(-2px); border-color: var(--brand-line-hover); }
.tag-pcard-media { display:block; height:168px; background: var(--brand-soft); }
.tag-pcard-media img { width:100%; height:100%; object-fit:cover; display:block; }
.tag-pcard-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:2rem; color: var(--brand); }
.tag-pcard-src {
  position:absolute; top:.5rem; left:.5rem; max-width:calc(100% - 1rem);
  font-size:.68rem; background:rgba(0,0,0,.62); color:#fff; border-radius:999px; padding:.15rem .5rem;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.tag-pcard-body { display:flex; flex-direction:column; gap:.15rem; padding:.75rem .85rem .85rem; flex:1 1 auto; }
.tag-pcard-title { font-size:.92rem; font-weight:600; margin:0 0 .2rem; line-height:1.35; }
.tag-pcard-title a { color: var(--ink); text-decoration:none; }
.tag-pcard-title a:hover { color: var(--brand); }
.tag-pcard-price { color: var(--brand); font-weight:700; font-size:.92rem; margin:.35rem 0 .55rem; }
.tag-pcard .btn { margin-top:auto; }

/* ---------- 专题页：文章卡 ---------- */
.tag-articles { display:flex; flex-direction:column; gap:.9rem; }
.tag-acard {
  display:flex; gap:.9rem; background:#fff; border:1px solid var(--line);
  border-radius:.7rem; overflow:hidden; transition: box-shadow .2s, border-color .2s;
}
.tag-acard:hover { box-shadow:0 .5rem 1.2rem rgba(0,0,0,.09); border-color: var(--brand-line-hover); }
.tag-acard-media { flex:0 0 168px; max-width:168px; background: var(--brand-soft); display:block; }
.tag-acard-media img { width:100%; height:100%; object-fit:cover; display:block; }
.tag-acard-body { padding:.8rem 1rem .8rem 0; min-width:0; }
.tag-acard-title { font-size:1rem; font-weight:600; margin:0 0 .3rem; line-height:1.4; }
.tag-acard-title a { color: var(--ink); text-decoration:none; }
.tag-acard-title a:hover { color: var(--brand); }
.tag-acard-sum { color: var(--muted); font-size:.85rem; margin-bottom:.4rem; }

/* ---------- 专题页：简介 / 空状态 / CTA ---------- */
.tag-intro { border:1px solid var(--line); border-radius:.7rem; background:#fff; }
.tag-empty {
  text-align:center; color: var(--muted); background:#fff;
  border:1px dashed var(--line); border-radius:.8rem; padding:3rem 1.5rem;
}
.tag-cta {
  background: linear-gradient(120deg, var(--brand-dark) 0%, var(--brand-mid) 100%);
  color:#fff; border-radius:.8rem; padding:1.3rem 1.4rem;
}
.tag-cta p { color:rgba(255,255,255,.86); }
.tag-cta-wide {
  display:flex; flex-wrap:wrap; gap:1.2rem; align-items:center; justify-content:space-between; padding:1.5rem 1.7rem;
}

/* ---------- 总览页：分组索引 ---------- */
.tag-group { display:flex; gap:1.2rem; padding:1.1rem 0; border-top:1px solid var(--line); }
.tag-group-letter {
  flex:0 0 46px; height:46px; border-radius:.6rem; background: var(--brand-soft); color: var(--brand);
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1.15rem;
}
.tag-group-items { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:.6rem; flex:1 1 auto; }
.tag-itile {
  display:block; background:#fff; border:1px solid var(--line); border-radius:.6rem;
  padding:.7rem .85rem; text-decoration:none; transition: box-shadow .2s, border-color .2s, transform .2s;
}
.tag-itile:hover { box-shadow:0 .5rem 1.2rem rgba(0,0,0,.09); border-color: var(--brand-line-hover); transform:translateY(-2px); }
.tag-itile-name { display:block; font-weight:600; font-size:.94rem; color: var(--ink); }
.tag-itile:hover .tag-itile-name { color: var(--brand); }
.tag-itile-desc { display:block; font-size:.78rem; color: var(--muted); line-height:1.55; margin:.2rem 0 .35rem; }
.tag-itile-meta { display:block; font-size:.75rem; color: var(--brand); }

@media (max-width: 991.98px) {
  .tag-hero-title { font-size:1.75rem; }
  .tag-acard-media { flex:0 0 120px; max-width:120px; }
}
@media (max-width: 575.98px) {
  .tag-hero { padding:1.5rem 0 1.7rem; }
  .tag-hero-title { font-size:1.45rem; }
  .tag-stat { min-width:84px; padding:.4rem .7rem; }
  .tag-acard { flex-direction:column; }
  .tag-acard-media { flex:none; max-width:100%; height:170px; }
  .tag-acard-body { padding:0 .9rem .9rem; }
  .tag-group { flex-direction:column; gap:.6rem; }
}

/* ============================================================
   服务页（Services）：地区 × 关键词 自动组合专题页
   /services  ·  /services/{地区别名}  ·  /services/{地区别名}/{关键词别名}.html
   颜色统一走主题变量（--brand / --brand-soft / --ink / --muted / --line），
   六套主题自动适配。
   ============================================================ */

/* ---------- Hero ---------- */
.svc-hero {
  position:relative; overflow:hidden; color:#fff;
  background: linear-gradient(120deg, var(--brand-dark) 0%, var(--brand-deep) 55%, var(--brand-mid) 100%);
  padding:2.2rem 0 2.4rem;
}
.svc-hero .breadcrumb { margin-bottom:.4rem; }
.svc-hero .breadcrumb-item, .svc-hero .breadcrumb-item a { color:rgba(255,255,255,.78); text-decoration:none; }
.svc-hero .breadcrumb-item a:hover { color:#fff; }
.svc-hero .breadcrumb-item.active { color:#fff; }
.svc-hero .breadcrumb-item + .breadcrumb-item::before { color:rgba(255,255,255,.45); }
.svc-hero-kicker {
  display:inline-flex; align-items:center; gap:.35rem;
  font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
  background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.22);
  border-radius:999px; padding:.2rem .7rem; margin-bottom:.6rem;
}
.svc-hero-title { font-size:2.05rem; font-weight:700; margin:0 0 .5rem; }
.svc-hero-sub { max-width:820px; color:rgba(255,255,255,.9); font-size:.95rem; }
.svc-hero-sub strong { color:#fff; }
.svc-hero-stats { display:flex; flex-wrap:wrap; gap:.6rem; }
.svc-stat {
  background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2);
  border-radius:.6rem; padding:.5rem 1rem; min-width:96px;
}
.svc-stat .num { display:block; font-size:1.25rem; font-weight:700; line-height:1.15; }
.svc-stat .lbl { display:block; font-size:.7rem; letter-spacing:.06em; text-transform:uppercase; opacity:.85; }

/* ---------- 关键词卡（总览页） ---------- */
.svc-kwgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:.75rem; }
.svc-kwcard {
  display:flex; gap:.7rem; align-items:flex-start; padding:.85rem .9rem;
  background:#fff; border:1px solid var(--line); border-radius:.7rem; text-decoration:none;
  transition: box-shadow .2s, border-color .2s, transform .2s;
}
.svc-kwcard:hover { box-shadow:0 .5rem 1.2rem rgba(0,0,0,.09); border-color: var(--brand-line-hover); transform:translateY(-2px); }
.svc-kwcard-ico {
  flex:0 0 36px; height:36px; border-radius:.55rem; background: var(--brand-soft); color: var(--brand);
  display:flex; align-items:center; justify-content:center; font-size:1rem;
}
.svc-kwcard-body { min-width:0; display:flex; flex-direction:column; gap:.1rem; }
.svc-kwcard-name { font-weight:600; font-size:.95rem; color: var(--ink); line-height:1.35; }
.svc-kwcard:hover .svc-kwcard-name { color: var(--brand); }
.svc-kwcard-desc { font-size:.78rem; color: var(--muted); line-height:1.5; }
.svc-kwcard-hub { font-size:.72rem; color: var(--brand); margin-top:.15rem; }

/* ---------- 地区链接块（地区页） ---------- */
.svc-linkgrid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:.65rem; }
.svc-linktile {
  display:block; padding:.7rem .85rem; background:#fff; border:1px solid var(--line);
  border-radius:.6rem; text-decoration:none; transition: box-shadow .2s, border-color .2s, transform .2s;
}
.svc-linktile:hover { box-shadow:0 .45rem 1.1rem rgba(0,0,0,.08); border-color: var(--brand-line-hover); transform:translateY(-2px); }
.svc-linktile-t { display:block; font-weight:600; font-size:.9rem; color: var(--ink); line-height:1.4; }
.svc-linktile:hover .svc-linktile-t { color: var(--brand); }
.svc-linktile-t i { color: var(--brand); }
.svc-linktile-d { display:block; font-size:.76rem; color: var(--muted); line-height:1.5; margin-top:.2rem; }

/* ---------- chip / 分组 ---------- */
.svc-chips { display:flex; flex-wrap:wrap; gap:.4rem; }
.svc-chip {
  display:inline-flex; align-items:center; gap:.3rem; font-size:.78rem; line-height:1.4;
  padding:.28rem .68rem; border-radius:999px; background: var(--brand-soft); color: var(--brand);
  border:1px solid transparent; text-decoration:none; transition: background .18s, color .18s;
}
.svc-chip:hover { background: var(--brand); color:#fff; }
.svc-chip.active { background: var(--brand); color:#fff; }
.svc-group { display:flex; gap:1.2rem; padding:1rem 0; border-top:1px solid var(--line); }
.svc-group-letter {
  flex:0 0 46px; height:46px; border-radius:.6rem; background: var(--brand-soft); color: var(--brand);
  display:flex; align-items:center; justify-content:center; font-weight:700; font-size:1.15rem;
}
.svc-group-items { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:.5rem; flex:1 1 auto; }
.svc-country {
  display:flex; align-items:center; justify-content:space-between; gap:.4rem;
  background:#fff; border:1px solid var(--line); border-radius:.55rem;
  padding:.5rem .75rem; text-decoration:none; font-size:.88rem; color: var(--ink);
  transition: box-shadow .18s, border-color .18s, color .18s;
}
.svc-country:hover { border-color: var(--brand-line-hover); color: var(--brand); box-shadow:0 .35rem .9rem rgba(0,0,0,.07); }
.svc-country i { font-size:.75rem; color: var(--brand); opacity:.7; }

/* ---------- 服务页：简介 ---------- */
.svc-intro { border:1px solid var(--line); border-radius:.7rem; background:#fff; }
.svc-rich { color: var(--muted); font-size:.9rem; line-height:1.75; }
.svc-rich p:last-child { margin-bottom:0; }
.svc-empty {
  text-align:center; color: var(--muted); background:#fff;
  border:1px dashed var(--line); border-radius:.8rem; padding:2.6rem 1.5rem;
}

/* ---------- 服务页：产品卡 ---------- */
.svc-products > [class*="col-"] { display:flex; }
.svc-pcard {
  position:relative; display:flex; flex-direction:column; width:100%;
  background:#fff; border:1px solid var(--line); border-radius:.7rem; overflow:hidden;
  transition: box-shadow .2s, transform .2s, border-color .2s;
}
.svc-pcard:hover { box-shadow:0 .6rem 1.4rem rgba(0,0,0,.1); transform:translateY(-2px); border-color: var(--brand-line-hover); }
.svc-pcard-media { display:block; height:168px; background: var(--brand-soft); }
.svc-pcard-media img { width:100%; height:100%; object-fit:cover; display:block; }
.svc-pcard-ph { width:100%; height:100%; display:flex; align-items:center; justify-content:center; font-size:2rem; color: var(--brand); }
.svc-pcard-src {
  position:absolute; top:.5rem; left:.5rem; max-width:calc(100% - 1rem);
  font-size:.68rem; background:rgba(0,0,0,.62); color:#fff; border-radius:999px; padding:.15rem .5rem;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.svc-pcard-body { display:flex; flex-direction:column; gap:.15rem; padding:.75rem .85rem .85rem; flex:1 1 auto; }
.svc-pcard-title { font-size:.92rem; font-weight:600; margin:0 0 .2rem; line-height:1.35; }
.svc-pcard-title a { color: var(--ink); text-decoration:none; }
.svc-pcard-title a:hover { color: var(--brand); }
.svc-pcard-price { color: var(--brand); font-weight:700; font-size:.92rem; margin:.35rem 0 .55rem; }
.svc-pcard .btn { margin-top:auto; }

/* ---------- 服务页：文章卡 ---------- */
.svc-articles { display:flex; flex-direction:column; gap:.9rem; }
.svc-acard {
  display:flex; gap:.9rem; background:#fff; border:1px solid var(--line);
  border-radius:.7rem; overflow:hidden; transition: box-shadow .2s, border-color .2s;
}
.svc-acard:hover { box-shadow:0 .5rem 1.2rem rgba(0,0,0,.09); border-color: var(--brand-line-hover); }
.svc-acard-media { flex:0 0 168px; max-width:168px; background: var(--brand-soft); display:block; }
.svc-acard-media img { width:100%; height:100%; object-fit:cover; display:block; }
.svc-acard-body { padding:.8rem 1rem .8rem 0; min-width:0; }
.svc-acard-title { font-size:1rem; font-weight:600; margin:0 0 .3rem; line-height:1.4; }
.svc-acard-title a { color: var(--ink); text-decoration:none; }
.svc-acard-title a:hover { color: var(--brand); }
.svc-acard-sum { color: var(--muted); font-size:.85rem; margin-bottom:.4rem; }

/* ---------- CTA ---------- */
.svc-cta {
  background: linear-gradient(120deg, var(--brand-dark) 0%, var(--brand-mid) 100%);
  color:#fff; border-radius:.8rem; padding:1.3rem 1.4rem;
}
.svc-cta p { color:rgba(255,255,255,.86); }

/* ---------- 详情页服务入口（产品/文章详情页） ---------- */
.svc-entry {
  border:1px solid var(--line); border-radius:.8rem; background:#fff; padding:1.1rem 1.2rem 1.2rem;
  margin:1.6rem 0;
}
.svc-entry-head {
  display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:.5rem; margin-bottom:.85rem;
}
.svc-entry-head h3 { font-size:1.02rem; font-weight:700; margin:0; }
.svc-entry-head h3 i { color: var(--brand); }
.svc-entry-head a { font-size:.78rem; color: var(--brand); text-decoration:none; }
.svc-entry-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:.55rem; }
.svc-entry-tile {
  display:flex; align-items:center; gap:.6rem; padding:.6rem .75rem;
  background: var(--brand-soft); border:1px solid transparent; border-radius:.6rem;
  text-decoration:none; transition: background .18s, border-color .18s, transform .18s;
}
.svc-entry-tile:hover { background:#fff; border-color: var(--brand-line-hover); transform:translateY(-2px); box-shadow:0 .4rem 1rem rgba(0,0,0,.07); }
.svc-entry-tile > i { color: var(--brand); font-size:1rem; flex:0 0 auto; }
.svc-entry-tile-t { display:block; font-size:.86rem; font-weight:600; color: var(--ink); line-height:1.35; }
.svc-entry-tile-d { display:block; font-size:.72rem; color: var(--muted); }

@media (max-width: 991.98px) {
  .svc-hero-title { font-size:1.7rem; }
  .svc-acard-media { flex:0 0 120px; max-width:120px; }
}
@media (max-width: 575.98px) {
  .svc-hero { padding:1.5rem 0 1.7rem; }
  .svc-hero-title { font-size:1.42rem; }
  .svc-stat { min-width:84px; padding:.4rem .7rem; }
  .svc-acard { flex-direction:column; }
  .svc-acard-media { flex:none; max-width:100%; height:170px; }
  .svc-acard-body { padding:0 .9rem .9rem; }
  .svc-group { flex-direction:column; gap:.6rem; }
}

/* ===================== 广告位（v3.16） ===================== */
.ads-slot { margin: 0; }
.ads-wide { width: 100%; }
.ads-wide-img {
  display: block; width: 100%; max-width: 100%;
  height: auto; max-height: 140px; object-fit: cover;
  border-radius: .5rem; border: 1px solid rgba(0,0,0,.08);
}
.ads-wide a { display: block; }
.ads-placeholder {
  display: flex; align-items: center; justify-content: center;
  min-height: 90px; border: 1px dashed rgba(0,0,0,.18);
  border-radius: .5rem; background: repeating-linear-gradient(
    -45deg, rgba(0,0,0,.02) 0 12px, rgba(0,0,0,.045) 12px 24px);
}
.ads-placeholder span {
  font-size: .95rem; letter-spacing: .35em; text-transform: uppercase;
  color: rgba(0,0,0,.35);
}
.ads-grid-item {
  border: 1px solid rgba(0,0,0,.08); border-radius: .5rem;
  overflow: hidden; background: #fff; height: 100%;
  transition: transform .15s ease, box-shadow .15s ease;
}
.ads-grid-item:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0,0,0,.08); }
.ads-grid-img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
@media (max-width: 767.98px) {
  .ads-wide-img { max-height: 90px; }
  .ads-placeholder { min-height: 60px; }
  .ads-placeholder span { font-size: .8rem; letter-spacing: .2em; }
}
