/* ============================================================================
   享家 · 装修公司模块设计系统（来源：prototype/design-system.html + front/company-list.html）
   作用范围：仅公司列表页 company-list.html 与公司详情页 /company/:id
   ========================================================================== */
/* 0. TOKENS */
:root{
  /* brand */
  --xj-blue:#3377FF;
  --xj-blue-hover:#2563EB;
  --xj-blue-active:#1D4ED8;
  --xj-blue-ink:#2563EB;
  --xj-blue-50:#EBF2FF;
  --xj-blue-100:#D6E4FF;
  /* semantic */
  --xj-trust:#2563EB;
  --xj-trust-bg:#EFF6FF;
  --xj-danger:#E54848;
  --xj-danger-ink:#C81E1E;
  --xj-danger-bg:#FEF2F2;
  --xj-success:#16A34A;
  --xj-success-ink:#15803D;
  --xj-success-bg:#F0FDF4;
  --xj-amber-ink:#B45309;
  --xj-amber-bg:#FFFBEB;
  /* neutral */
  --xj-text:#1F2937;
  --xj-text-sub:#6B7280;
  --xj-text-weak:#9CA3AF;
  --xj-bg:#FFFFFF;
  --xj-bg-alt:#F7F9FC;
  --xj-border:#E5E7EB;
  --xj-border-strong:#D1D5DB;
  /* type */
  --xj-font:Inter,"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  --xj-font-num:Inter,"SF Mono","PingFang SC","Microsoft YaHei",sans-serif;
  --xj-fs-h1:28px; --xj-fs-h2:24px; --xj-fs-h3:20px; --xj-fs-h4:18px;
  --xj-fs-lg:16px; --xj-fs-md:14px; --xj-fs-sm:13px; --xj-fs-xs:12px;
  --xj-lh-title:1.35; --xj-lh-body:1.6; --xj-lh-tight:1.45;
  /* spacing */
  --xj-s1:4px; --xj-s2:8px; --xj-s3:12px; --xj-s4:16px; --xj-s5:20px;
  --xj-s6:24px; --xj-s7:32px; --xj-s8:40px; --xj-s9:48px; --xj-s10:64px;
  /* radius */
  --xj-r-card:12px; --xj-r-btn:8px; --xj-r-chip:999px; --xj-r-img:8px; --xj-r-sm:6px;
  /* elevation */
  --xj-shadow-card:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.06);
  --xj-shadow-hover:0 8px 24px rgba(51,119,255,.12),0 2px 6px rgba(16,24,40,.06);
  --xj-shadow-pop:0 12px 32px rgba(16,24,40,.12);
  --xj-focus-ring:0 0 0 3px rgba(51,119,255,.28);
  --xj-z-header:100; --xj-z-sticky:50; --xj-z-pop:200;
  /* layout */
  --xj-container:1200px; --xj-container-wide:1440px;
  --xj-side-w:360px;
  --xj-dur:.16s;
}
/* 1. RESET / BASE */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;background:var(--xj-bg-alt);color:var(--xj-text);
  font-family:var(--xj-font);font-size:var(--xj-fs-md);line-height:var(--xj-lh-body);
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;border:0;}
a{color:var(--xj-blue-ink);text-decoration:none;}
a:hover{text-decoration:underline;}
button,input,select,textarea{font:inherit;color:inherit;}
h1,h2,h3,h4,h5{margin:0;line-height:var(--xj-lh-title);font-weight:600;}
p{margin:0;}
ul,ol{margin:0;padding:0;list-style:none;}
table{border-collapse:collapse;width:100%;}
:focus-visible{outline:2px solid var(--xj-blue-ink);outline-offset:2px;}

/* 通用工具（可与组件混用） */
.xj-container{width:100%;max-width:var(--xj-container);margin:0 auto;padding:0 var(--xj-s6);}
.xj-container--wide{max-width:var(--xj-container-wide);}
.xj-row{display:flex;align-items:center;gap:var(--xj-s2);}
.xj-row--between{display:flex;align-items:center;justify-content:space-between;gap:var(--xj-s3);}
.xj-col{display:flex;flex-direction:column;}
.xj-wrap{flex-wrap:wrap;}
.xj-grow{flex:1;min-width:0;}
.xj-mt2{margin-top:var(--xj-s2);} .xj-mt3{margin-top:var(--xj-s3);}
.xj-mt4{margin-top:var(--xj-s4);} .xj-mt6{margin-top:var(--xj-s6);}
.xj-num{font-family:var(--xj-font-num);font-variant-numeric:tabular-nums;}
.xj-sub{color:var(--xj-text-sub);}
.xj-weak{color:var(--xj-text-weak);}
.xj-sm{font-size:var(--xj-fs-sm);}
.xj-xs{font-size:var(--xj-fs-xs);}
.xj-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.xj-clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.xj-clamp3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.xj-divider{height:1px;background:var(--xj-border);border:0;margin:var(--xj-s4) 0;}
.xj-ico{width:1em;height:1em;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;}

/* 图片占位 */
.xj-ph{
  position:relative;background:
    linear-gradient(135deg,#E8EEF7 0%,#F3F6FB 45%,#E4EAF4 100%);
  border-radius:var(--xj-r-img);overflow:hidden;
  display:flex;align-items:center;justify-content:center;
  color:#8A9AB4;font-size:var(--xj-fs-xs);letter-spacing:.02em;
}
.xj-ph--16x9{aspect-ratio:16/9;}
.xj-ph--4x3{aspect-ratio:4/3;}
.xj-ph--1x1{aspect-ratio:1/1;}

/* 2. BUTTON · .xj-btn */
.xj-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:var(--xj-s2);
  height:40px;padding:0 var(--xj-s5);border:1px solid transparent;
  border-radius:var(--xj-r-btn);background:transparent;
  font-size:var(--xj-fs-md);font-weight:600;line-height:1;white-space:nowrap;
  cursor:pointer;transition:background var(--xj-dur),border-color var(--xj-dur),
    color var(--xj-dur),box-shadow var(--xj-dur);
  text-decoration:none;
}
.xj-btn:hover{text-decoration:none;}
.xj-btn .xj-ico{font-size:16px;}
.xj-btn--primary{background:var(--xj-blue);color:#fff;}
.xj-btn--primary:hover{background:var(--xj-blue-hover);}
.xj-btn--primary:active{background:var(--xj-blue-active);}
.xj-btn--primary:focus-visible{box-shadow:var(--xj-focus-ring);outline:none;}
.xj-btn--secondary{background:#fff;color:var(--xj-blue-ink);border-color:var(--xj-blue);}
.xj-btn--secondary:hover{background:var(--xj-blue-50);}
.xj-btn--outline{background:#fff;color:var(--xj-text);border-color:var(--xj-border-strong);}
.xj-btn--outline:hover{border-color:var(--xj-text-sub);background:var(--xj-bg-alt);}
.xj-btn--danger{background:var(--xj-danger);color:#fff;}
.xj-btn--danger:hover{background:var(--xj-danger-ink);}
.xj-btn--ghost{background:transparent;color:var(--xj-text-sub);}
.xj-btn--ghost:hover{background:rgba(16,24,40,.05);color:var(--xj-text);}
.xj-btn--lg{height:48px;padding:0 var(--xj-s6);font-size:var(--xj-fs-lg);}
.xj-btn--sm{height:32px;padding:0 var(--xj-s3);font-size:var(--xj-fs-sm);border-radius:var(--xj-r-sm);}
.xj-btn--block{width:100%;}
.xj-btn[disabled],.xj-btn--disabled{opacity:.45;cursor:not-allowed;pointer-events:none;}
.xj-btnbar{display:flex;gap:var(--xj-s3);flex-wrap:wrap;align-items:center;}

/* 3. CHIP / BADGE */
.xj-chip{
  display:inline-flex;align-items:center;gap:var(--xj-s1);
  height:28px;padding:0 var(--xj-s3);border-radius:var(--xj-r-chip);
  background:var(--xj-bg-alt);border:1px solid var(--xj-border);
  color:var(--xj-text-sub);font-size:var(--xj-fs-sm);white-space:nowrap;
}
.xj-chip--service{background:var(--xj-blue-50);border-color:var(--xj-blue-100);color:var(--xj-blue-ink);}
.xj-chip--filter{cursor:pointer;background:#fff;transition:all var(--xj-dur);}
.xj-chip--filter:hover{border-color:var(--xj-blue);color:var(--xj-blue-ink);}
.xj-chip--active{background:var(--xj-blue);border-color:var(--xj-blue);color:#fff;font-weight:500;}
.xj-chip--sm{height:22px;padding:0 var(--xj-s2);font-size:var(--xj-fs-xs);}
.xj-chip--plain{background:#fff;}

.xj-badge{
  display:inline-flex;align-items:center;gap:var(--xj-s1);
  height:26px;padding:0 var(--xj-s2);border-radius:var(--xj-r-sm);
  font-size:var(--xj-fs-xs);font-weight:600;white-space:nowrap;
}
.xj-badge--verified{background:linear-gradient(90deg,#EFF6FF,#E0ECFF);border:1px solid var(--xj-blue-100);color:#2563EB;}
.xj-badge--zero{
  background:linear-gradient(90deg,#FFF4E8,#FFEFDD);border:1px solid #F7D7AE;
  color:#9A5B12;letter-spacing:.01em;
}
.xj-badge--ai{
  background:#F4F0FF;border:1px solid #DDD2FF;color:#5B3FD1;
}
.xj-badge--neutral{background:var(--xj-bg-alt);border:1px solid var(--xj-border);color:var(--xj-text-sub);font-weight:500;}
.xj-badge--danger{background:var(--xj-danger-bg);border:1px solid #F3C9C9;color:var(--xj-danger-ink);}
.xj-badge--lg{height:30px;padding:0 var(--xj-s3);font-size:var(--xj-fs-sm);}

.xj-source{
  display:inline-flex;align-items:center;gap:var(--xj-s1);
  font-size:var(--xj-fs-xs);color:var(--xj-text-weak);
}
.xj-source a{color:var(--xj-text-sub);text-decoration:underline;text-underline-offset:2px;}

/* 4. 头部/底部统一由全局 style.css 驱动（.site-header/.site-footer），此处不再维护第二套 header/footer */
/* 城市选择器（列表页引导带使用） */
.xj-city{
  display:inline-flex;align-items:center;gap:var(--xj-s1);
  height:34px;padding:0 var(--xj-s3);border:1px solid var(--xj-border);
  border-radius:var(--xj-r-btn);background:#fff;color:var(--xj-text);
  font-size:var(--xj-fs-md);cursor:pointer;
}
.xj-city:hover{border-color:var(--xj-blue);color:var(--xj-blue-ink);}

/* 5. LAYOUT · 面包屑 · 区块标题 */
.xj-page{padding:var(--xj-s6) 0 var(--xj-s8);}
.xj-main{display:grid;grid-template-columns:minmax(0,1fr) var(--xj-side-w);gap:var(--xj-s6);align-items:start;}
.xj-main--full{grid-template-columns:minmax(0,1fr);}
.xj-side{position:sticky;top:var(--xj-s5);display:flex;flex-direction:column;gap:var(--xj-s4);}

.xj-breadcrumb{display:flex;align-items:center;gap:var(--xj-s2);flex-wrap:wrap;
  padding:var(--xj-s3) 0;font-size:var(--xj-fs-sm);color:var(--xj-text-sub);}
.xj-breadcrumb a{color:var(--xj-text-sub);}
.xj-breadcrumb a:hover{color:var(--xj-blue-ink);}
.xj-breadcrumb__sep{color:var(--xj-text-weak);}
.xj-breadcrumb__current{color:var(--xj-text);}

.xj-section{background:#fff;border:1px solid var(--xj-border);border-radius:var(--xj-r-card);
  padding:var(--xj-s6);box-shadow:var(--xj-shadow-card);}
.xj-section+.xj-section{margin-top:var(--xj-s4);}
.xj-section-title{display:flex;align-items:flex-end;gap:var(--xj-s3);
  margin-bottom:var(--xj-s5);padding-bottom:0;}
.xj-section-title__bar{width:5px;height:22px;border-radius:3px;flex:none;
  align-self:center;background:linear-gradient(180deg,#3377FF,#7C5CFC);
  box-shadow:0 2px 6px rgba(51,119,255,.35);}
.xj-section-title h2{font-size:var(--xj-fs-h3);}
.xj-section-title__note{color:var(--xj-text-sub);font-size:var(--xj-fs-sm);}
.xj-section-title__toggle{margin-left:auto;align-self:center;flex:none;}
.xj-section-title--lg h2{font-size:var(--xj-fs-h2);}

/* 6. TABS */
.xj-tabs{display:flex;align-items:center;gap:var(--xj-s6);
  border-bottom:1px solid var(--xj-border);background:#fff;}
.xj-tabs__item{
  position:relative;padding:var(--xj-s4) 0;background:none;border:0;cursor:pointer;
  color:var(--xj-text-sub);font-size:var(--xj-fs-lg);white-space:nowrap;
  transition:color var(--xj-dur);
}
.xj-tabs__item:hover{color:var(--xj-text);}
.xj-tabs__item--active{color:var(--xj-text);font-weight:600;}
.xj-tabs__item--active::after{content:"";position:absolute;left:0;right:0;bottom:-1px;
  height:3px;background:var(--xj-blue);border-radius:3px 3px 0 0;}
.xj-tabs__count{margin-left:var(--xj-s1);font-size:var(--xj-fs-sm);color:var(--xj-text-weak);
  font-family:var(--xj-font-num);}
.xj-tabs--card{padding:0 var(--xj-s6);border-radius:var(--xj-r-card) var(--xj-r-card) 0 0;
  border:1px solid var(--xj-border);border-bottom-color:var(--xj-border);}
.xj-tabs--sticky{position:sticky;top:0;z-index:var(--xj-z-sticky);}

/* 7. 筛选栏 */
.xj-filter{background:linear-gradient(180deg,#FFFFFF 0%,#F8FAFD 100%);border:1px solid var(--xj-blue-100);
  border-radius:var(--xj-r-card);padding:var(--xj-s4) var(--xj-s5);
  box-shadow:0 4px 16px rgba(51,119,255,.08);}
.xj-filter__row{display:flex;align-items:flex-start;gap:var(--xj-s4);padding:var(--xj-s2) 0;}
.xj-filter__row+.xj-filter__row{border-top:1px dashed var(--xj-border);}
.xj-filter__label{flex:none;width:64px;color:var(--xj-text-sub);font-size:var(--xj-fs-md);
  line-height:28px;}
.xj-filter__opts{display:flex;flex-wrap:wrap;gap:var(--xj-s2);}

/* 8. 公司列表卡片 · .xj-card-company */
.xj-card{background:#fff;border:1px solid var(--xj-border);border-radius:var(--xj-r-card);
  box-shadow:var(--xj-shadow-card);}
.xj-card-company{
  background:linear-gradient(180deg,#FFFFFF 0%,#FAFBFF 100%);border:1px solid var(--xj-blue-100);border-radius:var(--xj-r-card);
  padding:var(--xj-s5);box-shadow:0 2px 8px rgba(51,119,255,.08);
  transition:box-shadow var(--xj-dur),border-color var(--xj-dur),transform var(--xj-dur),background var(--xj-dur);
}
.xj-card-company:hover{box-shadow:0 12px 32px rgba(51,119,255,.18);border-color:var(--xj-blue);transform:translateY(-2px);background:linear-gradient(180deg,#FFFFFF 0%,#F0F7FF 100%);}
.xj-card-company+.xj-card-company{margin-top:var(--xj-s4);}
.xj-card-company__head{display:flex;gap:var(--xj-s4);align-items:flex-start;}
.xj-logo-box{
  width:72px;height:72px;flex:none;border-radius:var(--xj-r-img);
  border:1px solid var(--xj-blue-100);background:#fff;
  display:flex;align-items:center;justify-content:center;
  color:var(--xj-blue-ink);font-size:var(--xj-fs-h4);font-weight:700;letter-spacing:.02em;
  background:linear-gradient(160deg,#F4F8FF,#EAF1FF);
  box-shadow:inset 0 1px 3px rgba(51,119,255,.08);
}
.xj-logo-box--sm{width:48px;height:48px;font-size:var(--xj-fs-md);}
.xj-logo-box img{width:100%;height:100%;object-fit:cover;border-radius:var(--xj-r-img);}
.xj-card-company__name{display:flex;align-items:center;gap:var(--xj-s2);flex-wrap:wrap;}
.xj-card-company__name h3{font-size:var(--xj-fs-h4);color:var(--xj-text);}
.xj-card-company__name h3 a{color:inherit;}
.xj-card-company__slogan{margin-top:var(--xj-s1);color:var(--xj-text-sub);font-size:var(--xj-fs-md);}
.xj-card-company__meta{display:flex;flex-wrap:wrap;gap:var(--xj-s2) var(--xj-s3);margin-top:var(--xj-s3);}
.xj-card-company__facts{display:flex;flex-wrap:wrap;gap:var(--xj-s5);margin-top:var(--xj-s3);
  font-size:var(--xj-fs-sm);color:var(--xj-text-sub);}
.xj-card-company__facts b{font-family:var(--xj-font-num);font-size:var(--xj-fs-lg);
  font-weight:700;color:var(--xj-blue);margin-right:2px;}
.xj-card-company__facts span:nth-child(2) b{color:var(--xj-success);}
.xj-card-company__facts span:nth-child(3) b{color:var(--xj-amber-ink);}
.xj-card-company__side{flex:none;width:180px;display:flex;flex-direction:column;
  gap:var(--xj-s2);align-items:stretch;}
.xj-card-company__cases{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--xj-s2);
  margin-top:var(--xj-s4);}
.xj-card-company__cases .xj-ph{aspect-ratio:4/3;}
/* 案例缩略（无图时由 .xj-ph 占位），对齐原型 .xj-case-thumb */
.xj-case-thumb{position:relative;display:block;border-radius:var(--xj-r-img);overflow:hidden;}
.xj-case-thumb img{width:100%;height:100%;object-fit:cover;}
.xj-case-thumb__cap{position:absolute;left:0;right:0;bottom:0;padding:14px var(--xj-s2) var(--xj-s1);
  background:linear-gradient(to top,rgba(17,24,39,.72),rgba(17,24,39,0));
  color:#fff;font-size:var(--xj-fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.xj-card-company__foot{display:flex;align-items:center;gap:var(--xj-s3);
  margin-top:var(--xj-s4);padding-top:var(--xj-s3);border-top:1px dashed var(--xj-border);}

/* 榜单序号 / 引导带 / 榜单小标题 */
.xj-rank{width:30px;height:30px;flex:none;border-radius:8px;display:inline-flex;
  align-items:center;justify-content:center;font-family:var(--xj-font-num);font-weight:700;
  font-size:var(--xj-fs-md);color:#fff;background:var(--xj-text-sub);box-shadow:0 2px 6px rgba(16,24,40,.18);}
.xj-rank--1{background:linear-gradient(135deg,#FFB020,#E8760B);box-shadow:0 3px 8px rgba(232,118,11,.35);}
.xj-rank--2{background:linear-gradient(135deg,#5B92FF,#3377FF);box-shadow:0 3px 8px rgba(51,119,255,.32);}
.xj-rank--3{background:linear-gradient(135deg,#9CA3AF,#6B7280);box-shadow:0 3px 8px rgba(107,114,128,.28);}
.xj-rank--sm{width:24px;height:24px;font-size:var(--xj-fs-sm);border-radius:6px;}

.xj-cityband{position:relative;overflow:hidden;background:linear-gradient(135deg,#0F1E3D,#1E3A8A 55%,#3377FF);
  border-radius:var(--xj-r-card);padding:var(--xj-s7) var(--xj-s8);color:#fff;
  display:flex;align-items:flex-end;justify-content:space-between;gap:var(--xj-s6);flex-wrap:wrap;z-index:0;}
.xj-cityband::before{content:'';position:absolute;top:-60%;right:-10%;width:420px;height:420px;border-radius:50%;
  background:radial-gradient(circle at center,rgba(74,144,255,.35),rgba(74,144,255,0) 70%);z-index:-1;}
.xj-cityband::after{content:'';position:absolute;bottom:-70%;left:8%;width:360px;height:360px;border-radius:50%;
  background:radial-gradient(circle at center,rgba(22,163,74,.28),rgba(22,163,74,0) 70%);z-index:-1;}
.xj-cityband h1{color:#fff;font-size:var(--xj-fs-h1);}
.xj-cityband p{color:rgba(255,255,255,.82);margin-top:var(--xj-s2);max-width:620px;}
.xj-cityband__switch{display:flex;align-items:center;gap:var(--xj-s2);flex-wrap:wrap;}
.xj-cityband__switch .xj-city{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:#fff;}
.xj-cityband__switch .xj-city:hover{background:rgba(255,255,255,.2);color:#fff;}

.xj-ranktitle{display:flex;align-items:center;gap:var(--xj-s2);margin-bottom:var(--xj-s4);}
.xj-ranktitle h3{font-size:var(--xj-fs-h3);}
.xj-ranktitle .xj-ico{color:var(--xj-blue);}
.xj-ranknote{margin-left:auto;font-size:var(--xj-fs-sm);color:var(--xj-text-sub);}

/* 9. 信任信号卡（详情页） */
.xj-trust{
  border:1px solid var(--xj-blue-100);border-radius:var(--xj-r-card);
  background:linear-gradient(180deg,#F7FAFF 0%,#FFFFFF 60%);
  padding:var(--xj-s5);
}
.xj-trust__head{display:flex;align-items:center;gap:var(--xj-s2);margin-bottom:var(--xj-s4);}
.xj-trust__head h3{font-size:var(--xj-fs-h4);}
.xj-trust__head .xj-ico{font-size:20px;color:var(--xj-trust);}
.xj-trust__hint{margin-left:auto;font-size:var(--xj-fs-xs);color:var(--xj-text-weak);}
.xj-trust__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--xj-s3);}
.xj-trust__item{background:#fff;border:1px solid var(--xj-border);border-radius:10px;
  padding:var(--xj-s4);display:flex;flex-direction:column;gap:var(--xj-s1);}
.xj-trust__num{font-family:var(--xj-font-num);font-variant-numeric:tabular-nums;
  font-size:var(--xj-fs-h2);font-weight:700;line-height:1.2;color:var(--xj-text);}
.xj-trust__label{font-size:var(--xj-fs-sm);color:var(--xj-text-sub);}

/* 10. 空状态 / 分页 */
.xj-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:var(--xj-s3);padding:var(--xj-s10) var(--xj-s6);text-align:center;
  background:#fff;border:1px dashed var(--xj-border-strong);border-radius:var(--xj-r-card);}
.xj-empty__ico{width:56px;height:56px;border-radius:50%;background:var(--xj-bg-alt);
  display:flex;align-items:center;justify-content:center;color:var(--xj-text-weak);}
.xj-empty__ico .xj-ico{font-size:26px;}
.xj-empty__title{font-size:var(--xj-fs-lg);font-weight:600;}
.xj-empty__desc{font-size:var(--xj-fs-sm);color:var(--xj-text-sub);max-width:420px;}

.xj-pagination{display:flex;align-items:center;justify-content:center;gap:var(--xj-s2);
  padding:var(--xj-s6) 0;}
.xj-pagination__item{min-width:36px;height:36px;padding:0 var(--xj-s2);
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--xj-border);border-radius:var(--xj-r-sm);background:#fff;
  color:var(--xj-text-sub);font-size:var(--xj-fs-md);cursor:pointer;
  font-family:var(--xj-font-num);}
.xj-pagination__item:hover{border-color:var(--xj-blue);color:var(--xj-blue-ink);}
.xj-pagination__item--active{background:var(--xj-blue);border-color:var(--xj-blue);color:#fff;font-weight:600;}
.xj-pagination__item--disabled{opacity:.45;pointer-events:none;}

/* 11. 响应式（PC 原型为主，窄屏降级保护） */
@media (max-width:1279px){
  .xj-main{grid-template-columns:minmax(0,1fr) 300px;}
  .xj-trust__grid{grid-template-columns:repeat(2,1fr);}
  .xj-footer__grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:1023px){
  .xj-main{grid-template-columns:minmax(0,1fr);}
  .xj-side{position:static;}
  .xj-card-company__head{flex-wrap:wrap;}
  .xj-card-company__side{width:100%;flex-direction:row;}
}

/* ============================================================================
   12. 列表页筛选/分页旧类兼容（对齐 xj-chip / xj-pagination 视觉）
   ========================================================================== */
.filter-row{display:flex;align-items:flex-start;gap:var(--xj-s4);padding:var(--xj-s2) 0;}
.filter-row + .filter-row{border-top:1px dashed var(--xj-border);}
.filter-row__label{flex:none;width:64px;color:var(--xj-text-sub);font-size:var(--xj-fs-md);line-height:28px;}
.filter-row__options{display:flex;flex-wrap:wrap;gap:var(--xj-s2);}
.filter-option{cursor:pointer;height:28px;padding:0 var(--xj-s3);border-radius:var(--xj-r-chip);
  background:#fff;border:1px solid var(--xj-border);color:var(--xj-text-sub);
  font-size:var(--xj-fs-sm);display:inline-flex;align-items:center;transition:all var(--xj-dur);}
.filter-option:hover{border-color:var(--xj-blue);color:var(--xj-blue-ink);}
.filter-option.active{background:var(--xj-blue);border-color:var(--xj-blue);color:#fff;font-weight:500;}
.company-city-more{margin-left:auto;height:28px;padding:0 var(--xj-s3);border-radius:var(--xj-r-sm);
  border:1px solid var(--xj-border);background:#fff;color:var(--xj-text-sub);
  font-size:var(--xj-fs-sm);cursor:pointer;}
.company-city-more:hover{border-color:var(--xj-blue);color:var(--xj-blue-ink);}
.company-city-more-panel{margin-top:var(--xj-s2);display:flex;flex-wrap:wrap;gap:var(--xj-s2);background:var(--xj-bg-alt);
  border:1px dashed var(--xj-border-strong);border-radius:var(--xj-r-card);padding:var(--xj-s3);}
.xj-cardlist{display:block;}
.xj-cityband__switch{margin-left:auto;}

/* ============================================================================
   13. 公司详情页组件（对齐原型 company-detail.html）
   ========================================================================== */
/* Tab 面板切换 */
.xj-tab-panel[hidden]{display:none;}
.xj-tab-panel{padding-top:var(--xj-s5);}

/* 侧边转化卡 */
.xj-cta{border:1px solid var(--xj-blue-100);border-radius:var(--xj-r-card);background:#fff;box-shadow:var(--xj-shadow-pop);overflow:hidden;}
.xj-cta__head{background:linear-gradient(135deg,var(--xj-blue),#5B92FF);color:#fff;padding:var(--xj-s4) var(--xj-s5);}
.xj-cta__head h3{font-size:var(--xj-fs-h4);color:#fff;}
.xj-cta__head p{margin-top:var(--xj-s1);font-size:var(--xj-fs-sm);color:rgba(255,255,255,.9);}
.xj-cta__body{padding:var(--xj-s5);display:flex;flex-direction:column;gap:var(--xj-s3);}
.xj-cta__phone{display:flex;align-items:center;gap:var(--xj-s2);padding:var(--xj-s3);border:1px dashed var(--xj-border-strong);border-radius:var(--xj-r-btn);background:var(--xj-bg-alt);}
.xj-cta__phone b{font-family:var(--xj-font-num);font-size:var(--xj-fs-h4);letter-spacing:.01em;}
.xj-cta__promise{display:flex;flex-direction:column;gap:var(--xj-s2);padding-top:var(--xj-s1);font-size:var(--xj-fs-xs);color:var(--xj-text-sub);}
.xj-cta__promise li{display:flex;align-items:center;gap:var(--xj-s1);}
.xj-cta__promise .xj-ico{font-size:14px;color:var(--xj-success-ink);}
.xj-cta__foot{padding:var(--xj-s3) var(--xj-s5);background:var(--xj-bg-alt);border-top:1px solid var(--xj-border);font-size:var(--xj-fs-xs);color:var(--xj-text-weak);}

/* 表格（资质等） */
.xj-table-wrap{border:1px solid var(--xj-border);border-radius:var(--xj-r-card);overflow:hidden;background:#fff;}
.xj-table{font-size:var(--xj-fs-md);}
.xj-table th,.xj-table td{padding:var(--xj-s3) var(--xj-s4);text-align:left;vertical-align:middle;}
.xj-table thead th{background:var(--xj-bg-alt);color:var(--xj-text-sub);font-weight:500;font-size:var(--xj-fs-sm);border-bottom:1px solid var(--xj-border);white-space:nowrap;}
.xj-table tbody tr+tr td{border-top:1px solid var(--xj-border);}
.xj-table tbody tr:hover td{background:#FAFCFF;}
.xj-table td.xj-td-code{font-family:var(--xj-font-num);font-variant-numeric:tabular-nums;letter-spacing:.01em;color:var(--xj-text);}
.xj-table td.xj-td-actions{text-align:right;white-space:nowrap;}
.xj-table__cap{padding:var(--xj-s3) var(--xj-s4);background:#fff;border-top:1px solid var(--xj-border);}
.xj-pill{display:inline-flex;align-items:center;gap:4px;height:24px;padding:0 var(--xj-s2);border-radius:var(--xj-r-chip);font-size:var(--xj-fs-xs);font-weight:500;}
.xj-pill--ok{background:var(--xj-success-bg);color:var(--xj-success-ink);}
.xj-pill--warn{background:var(--xj-amber-bg);color:var(--xj-amber-ink);}
.xj-pill--off{background:var(--xj-bg-alt);color:var(--xj-text-sub);}
.xj-kv{display:grid;grid-template-columns:max-content 1fr;gap:var(--xj-s3) var(--xj-s5);font-size:var(--xj-fs-md);}
.xj-kv dt{color:var(--xj-text-sub);}
.xj-kv dd{margin:0;color:var(--xj-text);}

/* 案例卡（结构化字段） */
.xj-case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--xj-s4);}
.xj-case-grid--4{grid-template-columns:repeat(4,1fr);}
.xj-case-card{background:#fff;border:1px solid var(--xj-border);border-radius:var(--xj-r-card);overflow:hidden;box-shadow:var(--xj-shadow-card);transition:box-shadow var(--xj-dur),border-color var(--xj-dur);}
.xj-case-card:hover{box-shadow:var(--xj-shadow-hover);border-color:var(--xj-blue-100);}
.xj-case-card__media{position:relative;}
.xj-case-card__media .xj-ph{border-radius:0;aspect-ratio:4/3;}
.xj-case-card__badge{position:absolute;left:var(--xj-s3);top:var(--xj-s3);}
.xj-case-card__count{position:absolute;right:var(--xj-s3);bottom:var(--xj-s3);height:24px;padding:0 var(--xj-s2);border-radius:var(--xj-r-chip);background:rgba(17,24,39,.62);color:#fff;font-size:var(--xj-fs-xs);display:inline-flex;align-items:center;gap:4px;}
.xj-case-card__body{padding:var(--xj-s4);}
.xj-case-card__title{font-size:var(--xj-fs-lg);font-weight:600;}
.xj-case-card__title a{color:inherit;}
.xj-case-card__specs{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--xj-s2) var(--xj-s3);margin-top:var(--xj-s3);font-size:var(--xj-fs-sm);color:var(--xj-text-sub);}
.xj-case-card__specs span{display:flex;gap:var(--xj-s1);}
.xj-case-card__specs em{font-style:normal;color:var(--xj-text);font-weight:500;}
.xj-case-card__cost{display:flex;align-items:baseline;justify-content:space-between;gap:var(--xj-s2);margin-top:var(--xj-s3);padding-top:var(--xj-s3);border-top:1px dashed var(--xj-border);}
.xj-case-card__cost b{font-family:var(--xj-font-num);font-size:var(--xj-fs-h4);color:var(--xj-text);font-weight:700;}
.xj-case-card__foot{display:flex;align-items:center;gap:var(--xj-s2);margin-top:var(--xj-s3);font-size:var(--xj-fs-xs);color:var(--xj-text-weak);}

/* 评价（无评分图文流） */
.xj-review{padding:var(--xj-s5) 0;border-bottom:1px solid var(--xj-border);}
.xj-review:last-child{border-bottom:0;}
.xj-review__head{display:flex;align-items:center;gap:var(--xj-s3);}
.xj-avatar{width:40px;height:40px;flex:none;border-radius:50%;background:linear-gradient(140deg,#E4ECFA,#F2F5FB);border:1px solid var(--xj-border);display:flex;align-items:center;justify-content:center;color:var(--xj-text-sub);font-size:var(--xj-fs-sm);font-weight:600;}
.xj-review__user{font-weight:600;}
.xj-review__meta{display:flex;flex-wrap:wrap;gap:var(--xj-s2) var(--xj-s3);margin-top:2px;font-size:var(--xj-fs-xs);color:var(--xj-text-weak);}
.xj-review__stage{margin-left:auto;flex:none;}
.xj-review__body{margin-top:var(--xj-s3);font-size:var(--xj-fs-md);line-height:var(--xj-lh-body);}
.xj-review__facts{display:flex;flex-wrap:wrap;gap:var(--xj-s2);margin-top:var(--xj-s3);}
.xj-review__flag{display:flex;align-items:flex-start;gap:var(--xj-s2);margin-top:var(--xj-s3);padding:var(--xj-s3);border-radius:var(--xj-r-btn);background:var(--xj-danger-bg);border:1px solid #F3C9C9;color:var(--xj-danger-ink);font-size:var(--xj-fs-sm);}
.xj-review__reply{margin-top:var(--xj-s3);padding:var(--xj-s3) var(--xj-s4);background:var(--xj-bg-alt);border-left:3px solid var(--xj-blue);border-radius:0 var(--xj-r-sm) var(--xj-r-sm) 0;font-size:var(--xj-fs-sm);color:var(--xj-text-sub);}
.xj-review__reply b{color:var(--xj-text);}
.xj-review__ops{display:flex;align-items:center;gap:var(--xj-s4);margin-top:var(--xj-s3);font-size:var(--xj-fs-xs);color:var(--xj-text-weak);}

/* 媒体报道 / 奖项 */
.xj-press{display:flex;flex-direction:column;gap:var(--xj-s3);}
.xj-press__item{display:flex;gap:var(--xj-s3);align-items:flex-start;padding:var(--xj-s3);border:1px solid var(--xj-border);border-radius:var(--xj-r-btn);background:#fff;}
.xj-press__logo{width:56px;height:32px;flex:none;border-radius:var(--xj-r-sm);background:var(--xj-bg-alt);border:1px solid var(--xj-border);display:flex;align-items:center;justify-content:center;font-size:var(--xj-fs-xs);color:var(--xj-text-sub);}

/* 团队（设计师/工长） */
.xj-person-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--xj-s4);}
.xj-person{background:#fff;border:1px solid var(--xj-border);border-radius:var(--xj-r-card);padding:var(--xj-s4);text-align:center;box-shadow:var(--xj-shadow-card);}
.xj-person .xj-avatar{width:64px;height:64px;margin:0 auto var(--xj-s3);font-size:var(--xj-fs-lg);}
.xj-person__name{font-size:var(--xj-fs-lg);font-weight:600;}
.xj-person__role{font-size:var(--xj-fs-sm);color:var(--xj-text-sub);margin-top:2px;}
.xj-person__facts{display:flex;justify-content:center;gap:var(--xj-s4);margin-top:var(--xj-s3);font-size:var(--xj-fs-xs);color:var(--xj-text-sub);}
.xj-person__facts b{display:block;font-family:var(--xj-font-num);font-size:var(--xj-fs-lg);color:var(--xj-text);}

/* 步骤流程 / 保障机制 / 分期 / 两栏 / FAQ */
.xj-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--xj-s4);}
.xj-step{position:relative;background:#fff;border:1px solid var(--xj-border);border-radius:var(--xj-r-card);padding:var(--xj-s5);box-shadow:var(--xj-shadow-card);}
.xj-step__no{width:34px;height:34px;border-radius:50%;background:var(--xj-blue-50);color:var(--xj-blue-ink);display:inline-flex;align-items:center;justify-content:center;font-family:var(--xj-font-num);font-weight:700;border:1px solid var(--xj-blue-100);}
.xj-step h4{font-size:var(--xj-fs-h4);margin-top:var(--xj-s3);}
.xj-step p{font-size:var(--xj-fs-sm);color:var(--xj-text-sub);margin-top:var(--xj-s2);}
.xj-guar{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--xj-s4);}
.xj-guar__item{background:#fff;border:1px solid var(--xj-border);border-radius:var(--xj-r-card);padding:var(--xj-s5);text-align:center;}
.xj-guar__ico{width:44px;height:44px;border-radius:12px;margin:0 auto var(--xj-s3);display:flex;align-items:center;justify-content:center;background:var(--xj-blue-50);color:var(--xj-blue-ink);}
.xj-guar__ico .xj-ico{font-size:22px;}
.xj-guar__item h4{font-size:var(--xj-fs-lg);}
.xj-guar__item p{font-size:var(--xj-fs-sm);color:var(--xj-text-sub);margin-top:var(--xj-s2);}
.xj-stage{display:grid;grid-template-columns:3fr 4fr 3fr;gap:var(--xj-s3);align-items:stretch;}
.xj-stage__node{background:#fff;border:1px solid var(--xj-border);border-radius:var(--xj-r-card);padding:var(--xj-s4);text-align:center;}
.xj-stage__node b{display:block;font-family:var(--xj-font-num);font-size:var(--xj-fs-h2);color:var(--xj-blue-ink);}
.xj-stage__node span{font-size:var(--xj-fs-sm);color:var(--xj-text-sub);}
.xj-stage__arrow{display:flex;align-items:center;justify-content:center;color:var(--xj-blue);}
.xj-two{display:grid;grid-template-columns:1fr 1fr;gap:var(--xj-s6);}
.xj-faq{display:flex;flex-direction:column;gap:var(--xj-s3);}
.xj-faq__item{background:#fff;border:1px solid var(--xj-border);border-radius:var(--xj-r-card);padding:var(--xj-s4) var(--xj-s5);}
.xj-faq__item h4{font-size:var(--xj-fs-lg);}
.xj-faq__item p{font-size:var(--xj-fs-md);color:var(--xj-text-sub);margin-top:var(--xj-s2);}

/* 团队轮播 */
.xj-team-section{position:relative;}
.xj-team-header{display:flex;align-items:center;gap:var(--xj-s3);margin-bottom:var(--xj-s4);}
.xj-team-header h2{font-size:var(--xj-fs-h3);display:flex;align-items:center;gap:var(--xj-s3);}
.xj-team-header .xj-count{font-size:var(--xj-fs-md);color:var(--xj-text-sub);font-weight:500;}
.xj-team-header__more{margin-left:auto;font-size:var(--xj-fs-sm);color:var(--xj-blue-ink);cursor:pointer;}
.xj-team-carousel{position:relative;}
.xj-team-carousel__track{display:flex;gap:var(--xj-s4);overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;padding-bottom:var(--xj-s2);}
.xj-team-carousel__track .xj-person{flex:0 0 calc(25% - var(--xj-s3));min-width:220px;scroll-snap-align:start;}
.xj-team-carousel__arrow{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:50%;background:#fff;border:1px solid var(--xj-border);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;box-shadow:var(--xj-shadow-card);color:var(--xj-text-sub);}
.xj-team-carousel__arrow:hover{border-color:var(--xj-blue);color:var(--xj-blue-ink);}
.xj-team-carousel__arrow--prev{left:-18px;}
.xj-team-carousel__arrow--next{right:-18px;}
.xj-team-viewall{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--xj-s2);min-width:180px;border:1px dashed var(--xj-border-strong);border-radius:var(--xj-r-card);background:var(--xj-bg-alt);color:var(--xj-text-sub);font-size:var(--xj-fs-sm);cursor:pointer;scroll-snap-align:start;}
.xj-team-viewall .xj-ico{font-size:24px;color:var(--xj-blue-ink);}

/* 页面内容排版 */
.xj-article p{margin-bottom:var(--xj-s4);line-height:var(--xj-lh-body);color:var(--xj-text);}
.xj-article h3{font-size:var(--xj-fs-h3);margin:var(--xj-s6) 0 var(--xj-s3);}

/* 统计小卡（评价 / 投诉指标） */
.xj-qs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--xj-s3);}
@media (max-width:767px){.xj-qs-grid{grid-template-columns:1fr;}}
.xj-qs-item{background:var(--xj-bg-alt);border:1px solid var(--xj-border);border-radius:var(--xj-r-btn);padding:var(--xj-s4);}
.xj-qs-item b{display:block;font-size:var(--xj-fs-md);margin-bottom:var(--xj-s1);color:var(--xj-text);}
.xj-qs-item p{font-size:var(--xj-fs-sm);color:var(--xj-text-sub);}

@media (max-width:1279px){
  .xj-case-grid{grid-template-columns:repeat(2,1fr);}
  .xj-person-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:1023px){
  .xj-steps,.xj-guar{grid-template-columns:repeat(2,1fr);}
  .xj-two{grid-template-columns:1fr;}
  .xj-stage{grid-template-columns:1fr;}
  .xj-stage__arrow{transform:rotate(90deg);}
  .xj-team-carousel__track .xj-person{flex:0 0 calc(50% - var(--xj-s2));}
}
@media (max-width:767px){
  .xj-team-carousel__track .xj-person{flex:0 0 80%;}
  .xj-case-grid{grid-template-columns:1fr;}
  .xj-case-grid--4{grid-template-columns:repeat(2,1fr);}
}

/* ============================================================================
   14. 详情页补充组件（对齐原型 · 诚信标签 / 数据卡图标 / 表单）
   ========================================================================== */
/* 诚信标签 */
.xj-tag-integrity{
  display:inline-flex;align-items:center;gap:var(--xj-s1);
  height:26px;padding:0 var(--xj-s2);border-radius:var(--xj-r-sm);
  background:var(--xj-success-bg);border:1px solid #CBEBD6;
  color:var(--xj-success-ink);font-size:var(--xj-fs-xs);font-weight:500;white-space:nowrap;
}
.xj-tag-integrity .xj-ico{font-size:13px;}

/* 数据概览图标 / 脚注 */
.xj-trust__ico{
  width:32px;height:32px;border-radius:9px;display:flex;align-items:center;justify-content:center;
  background:var(--xj-blue-50);color:var(--xj-blue-ink);margin-bottom:var(--xj-s2);
}
.xj-trust__ico .xj-ico{font-size:18px;}
.xj-trust__ico--green{background:var(--xj-success-bg);color:var(--xj-success-ink);}
.xj-trust__ico--trust{background:var(--xj-trust-bg);color:var(--xj-trust);}
.xj-trust__num--code{font-size:var(--xj-fs-lg);letter-spacing:.01em;word-break:break-all;}
.xj-trust__link{margin-top:auto;padding-top:var(--xj-s2);font-size:var(--xj-fs-xs);}
.xj-trust__foot{margin-top:var(--xj-s3);display:flex;justify-content:space-between;gap:var(--xj-s3);flex-wrap:wrap;}
.xj-trust--compact .xj-trust__grid{grid-template-columns:repeat(2,1fr);}
.xj-trust--compact .xj-trust__num{font-size:var(--xj-fs-h3);}

/* 表单（CTA 预约 / 资质） */
.xj-form{display:flex;flex-direction:column;gap:var(--xj-s4);}
.xj-field{display:flex;flex-direction:column;gap:var(--xj-s2);}
.xj-label{font-size:var(--xj-fs-md);font-weight:500;color:var(--xj-text);}
.xj-input,.xj-select,.xj-textarea{
  width:100%;min-height:40px;padding:0 var(--xj-s3);
  border:1px solid var(--xj-border-strong);border-radius:var(--xj-r-btn);background:#fff;
  font-size:var(--xj-fs-md);color:var(--xj-text);
  transition:border-color var(--xj-dur),box-shadow var(--xj-dur);
}
.xj-select{appearance:none;padding-right:var(--xj-s8);cursor:pointer;
  background-image:url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right var(--xj-s3) center;}
.xj-input::placeholder,.xj-select::placeholder,.xj-textarea::placeholder{color:var(--xj-text-weak);}
.xj-input:focus,.xj-select:focus,.xj-textarea:focus{outline:none;border-color:var(--xj-blue);box-shadow:var(--xj-focus-ring);}

/* 提示条 + 分期箭头图标 */
.xj-alert{display:flex;gap:var(--xj-s3);padding:var(--xj-s3) var(--xj-s4);border-radius:var(--xj-r-btn);font-size:var(--xj-fs-sm);border:1px solid transparent;}
.xj-alert .xj-ico{font-size:18px;flex:none;margin-top:1px;}
.xj-alert--info{background:var(--xj-trust-bg);border-color:var(--xj-blue-100);color:#1E40AF;}
.xj-alert--ok{background:var(--xj-success-bg);border-color:#CBEBD6;color:var(--xj-success-ink);}
.xj-alert--danger{background:var(--xj-danger-bg);border-color:#F3C9C9;color:var(--xj-danger-ink);}
.xj-stage__arrow .xj-ico{font-size:24px;}