/* =========================================================
   睿小匠 · 设计系统 V2（品牌蓝）
   依据《项目落地执行计划》二、前端开发原则（2026-08-26 确认）
   主色 #1455e5 · 辅助 #0A1F6B / #E8F0FF · 背景 #FFF / #F5F8FF
   字体 Nunito(西文/数字，本地单字体) + 系统中文字体(PingFang SC / 微软雅黑 / Noto Sans SC)：标题/数字优先 Nunito，正文优先系统中文字体
   仅 Hero 一处极淡蓝色径向光晕；圆角仅 6/12px；禁大阴影
   ========================================================= */

/* ---- Nunito 可变字体（本地自托管，SIL OFL 免费商用，latin subset，单文件覆盖全字重） ---- */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-weight: 200 1000;
  font-display: swap;
  src: url('../fonts/nunito-latin-wght-normal.woff2') format('woff2-variations');
}

:root {
  /* ---- 色彩（品牌蓝规范） ---- */
  --blue: #1455e5;            /* 主色：品牌蓝 */
  --blue-deep: #0A1F6B;       /* 辅助：深蓝（hover/标题深底） */
  --blue-soft: #E8F0FF;       /* 辅助：浅蓝背景 */
  --blue-border: #E0E8FF;     /* 卡片边框 */
  --blue-glow: rgba(27, 77, 255, 0.08); /* 仅 Hero 光晕 */
  --bg-alt: #F5F8FF;          /* 交替背景 */
  --ink: #111827;             /* 标题文字（≈gray-900） */
  --muted: #4B5563;           /* 正文文字（≈gray-600） */
  --shadow-card: 0 1px 3px rgba(27, 77, 255, 0.06);      /* 极弱蓝调阴影 */
  --shadow-hover: 0 4px 14px rgba(27, 77, 255, 0.12);    /* 卡片 hover 轻阴影 */
  --white: #FFFFFF;

  /* ---- 字体 ---- */
  --font-display: 'Nunito', 'PingFang SC', 'Microsoft YaHei', 'Noto Sans SC', sans-serif;
  --font-body: 'PingFang SC', 'Microsoft YaHei', 'Noto Sans SC', 'Nunito', sans-serif;

  /* ---- 字号刻度 ---- */
  --text-xs: 0.75rem;
  --text-sm: 0.875rem;
  --text-md: 1rem;
  --text-lg: 1.125rem;
  --text-xl: 1.375rem;
  --text-2xl: 1.75rem;
  --text-3xl: 2.25rem;
  --text-4xl: 3rem;
  --text-5xl: 3.75rem;
  --text-6xl: 4.5rem;

  /* ---- 间距刻度 ---- */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4.5rem;
  --space-9: 6.5rem;

  /* ---- 圆角 / 布局（sm 6px / 默认 12px / pill 胶囊 / circle 圆形） ---- */
  --radius-sm: 6px;
  --radius: 12px;
  --radius-pill: 999px;
  --radius-circle: 50%;
  --container: 1200px;
  --nav-h: 72px;
}

/* =========================================================
   基础 Reset
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--text-md);
  line-height: 1.7;
  color: var(--muted);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  line-height: 1.15;
  margin: 0 0 var(--space-4);
  font-weight: 700;
  letter-spacing: -0.025em;
  color: var(--ink);
}
p { margin: 0 0 var(--space-4); }
a { color: var(--blue); text-decoration: none; transition: color 0.3s ease; }
a:hover { color: var(--blue-deep); }
img { max-width: 100%; display: block; }
button { font-family: inherit; cursor: pointer; }
ul, ol { margin: 0; padding: 0; list-style: none; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }

/* =========================================================
   排版工具
   ========================================================= */
.display { font-family: var(--font-display); }
.tabular { font-variant-numeric: tabular-nums; font-feature-settings: "tnum"; }
.text-center { text-align: center; }
.text-blue { color: var(--blue); }
.text-muted { color: var(--muted); }
.eyebrow {
  font-family: var(--font-display);
  font-size: 1.05rem;
  font-weight: 400;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--blue);
  display: inline-flex;
  align-items: center;
  margin-bottom: var(--space-3);
}

/* =========================================================
   布局容器
   ========================================================= */
.container { max-width: var(--container); margin: 0 auto; padding: 0 var(--space-5); }
.section { padding: var(--space-8) 0; }
.section--tint { background: var(--bg-alt); }
.section-head { max-width: 720px; margin-bottom: var(--space-7); }
.section-head--center { margin-left: auto; margin-right: auto; text-align: center; }
.section-head--center .eyebrow { justify-content: center; }
.section-title { font-size: var(--text-3xl); }
.section-sub { color: var(--muted); margin: 0; }

/* =========================================================
   按钮（品牌蓝规范）
   ========================================================= */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  font-family: var(--font-display);
  font-size: var(--text-md);
  font-weight: 700;
  line-height: 1;
  padding: 0.85rem 1.5rem;
  border-radius: var(--radius-sm);
  border: 1px solid transparent;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease, transform 0.15s ease;
  white-space: nowrap;
}
.btn:active { transform: translateY(1px); }
.btn--primary { background: var(--blue); color: var(--white); }
.btn--primary:hover { background: linear-gradient(135deg, #2b6bff, #4d8bff); color: var(--white); }
.btn--outline { background: var(--white); border-color: var(--blue-soft); color: var(--blue); }
.btn--outline:hover { border-color: var(--blue); color: var(--blue-deep); background: var(--blue-soft); }
.btn--block { width: 100%; }

/* =========================================================
   卡片（品牌蓝规范：白底/边框/极弱蓝阴影）
   ========================================================= */
.card {
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
}
.badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--text-xs);
  font-weight: 600;
  color: var(--blue);
  background: var(--blue-soft);
  border-radius: var(--radius-pill);
  padding: 4px 10px;
}

/* =========================================================
   滚动 reveal（Intersection Observer 由 main.js 驱动）
   ========================================================= */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

/* =========================================================
   顶部导航
   ========================================================= */
.rj-nav {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 100;
  height: var(--nav-h);
  background: transparent;
  border-bottom: 1px solid transparent;
  transition: background 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}
.rj-nav.is-scrolled {
  /* 用接近不透明的实色背景替代 backdrop-filter 模糊：滚动时模糊整页是最耗资源的
     CSS 效果，去掉可显著降低滚动卡顿，视觉上仍保持白底导航 */
  background: rgba(255, 255, 255, 0.97);
  border-bottom-color: var(--blue-border);
  box-shadow: var(--shadow-card);
}
.rj-nav__inner {
  height: var(--nav-h);
  display: flex;
  align-items: center;
  gap: var(--space-5);
}
.rj-nav__logo {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  color: var(--ink);
}
.rj-nav__logo-img { height: 44px; width: auto; display: block; transition: opacity 0.3s ease; }
.rj-nav__logo-img--white {
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  opacity: 0;
}
.rj-nav__logo-mark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  border-radius: var(--radius-sm);
  background: linear-gradient(135deg, var(--blue), var(--blue-deep));
  color: var(--white);
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 800;
}
.rj-nav__logo-text {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  line-height: 1.1;
  color: var(--ink);
  display: flex;
  flex-direction: column;
}
.rj-nav__logo-text small {
  font-size: 0.55rem;
  font-weight: 600;
  letter-spacing: 0.28em;
  color: var(--blue);
}
.rj-nav__menu {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  margin-left: auto;
}
.rj-nav__menu a {
  font-family: var(--font-display);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ink);
  padding: 0.5rem 0.75rem;
  border-radius: var(--radius-sm);
  transition: color 0.3s ease, background 0.3s ease;
}
.rj-nav__menu a:hover { color: var(--blue); background: var(--blue-soft); }
.rj-nav__menu a.is-active { color: var(--blue); }
.rj-nav__actions { display: flex; align-items: center; gap: var(--space-3); }
.rj-nav__city {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--font-display);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--blue);
  background: var(--blue-soft);
  border: 1px solid transparent;
  border-radius: var(--radius-pill);
  padding: 0.55rem 1.05rem;
  transition: background 0.3s ease, border-color 0.3s ease;
}
.rj-nav__city:hover { background: #dce8ff; }
.rj-nav__hotline {
  display: flex;
  flex-direction: column;
  line-height: 1.2;
  padding-left: var(--space-3);
  border-left: 1px solid var(--blue-border);
}
.rj-nav__hotline-label { font-size: 0.7rem; color: var(--muted); }
.rj-nav__hotline-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.05rem;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.rj-nav__burger {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  width: 42px; height: 42px;
  background: transparent;
  border: 0;
  border-radius: var(--radius-sm);
}
.rj-nav__burger span {
  display: block;
  height: 2px; width: 22px;
  margin: 0 auto;
  background: var(--ink);
  border-radius: 2px;
  transition: transform 0.25s ease, opacity 0.2s ease;
}
.rj-nav__burger[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.rj-nav__burger[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.rj-nav__burger[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* 首屏透明导航：未滚动时整体透明 + 白色文字/图标，适配深蓝 Hero */
.rj-nav:not(.is-scrolled) .rj-nav__logo-img { opacity: 0; } /* 深色背景隐藏蓝色 LOGO */
.rj-nav:not(.is-scrolled) .rj-nav__logo-img--white { opacity: 1; }
.rj-nav:not(.is-scrolled) .rj-nav__menu a { color: rgba(255, 255, 255, 0.92); }
.rj-nav:not(.is-scrolled) .rj-nav__menu a:hover { color: #fff; background: rgba(255, 255, 255, 0.14); }
.rj-nav:not(.is-scrolled) .rj-nav__menu a.is-active { color: #fff; }
.rj-nav:not(.is-scrolled) .rj-nav__hotline { border-left-color: rgba(255, 255, 255, 0.25); }
.rj-nav:not(.is-scrolled) .rj-nav__hotline-label { color: rgba(255, 255, 255, 0.7); }
.rj-nav:not(.is-scrolled) .rj-nav__hotline-num { color: #fff; }
.rj-nav:not(.is-scrolled) .rj-nav__city {
  color: #fff;
  background: rgba(255, 255, 255, 0.14);
  border-color: rgba(255, 255, 255, 0.28);
}
.rj-nav:not(.is-scrolled) .rj-nav__city:hover { background: rgba(255, 255, 255, 0.24); }
.rj-nav:not(.is-scrolled) .rj-nav__burger span { background: #fff; }

/* =========================================================
   首屏 Hero（整体深蓝背景式：静态中国地图铺满全屏背景）
   ========================================================= */
.rj-hero {
  position: relative;
  background: linear-gradient(160deg, #0A1F6B 0%, #12318c 45%, #081646 100%);
  color: var(--white);
  padding-top: var(--nav-h);
  overflow: hidden;
}
/* 极光波浪背景挂载区（WebGL2 canvas，react-bits GradientWaves 移植，蓝色系） */
.rj-hero__waves { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.rj-hero__waves canvas { display: block; width: 100%; height: 100%; }
/* 静态地图挂载区（SVG，渲染一次） */
.rj-hero__map { position: absolute; inset: 0; }
.rj-hero__map svg {
  position: absolute;
  right: 0;
  top: 54%;
  transform: translateY(-50%);
  width: 84%;
  height: 94%;
  opacity: 0.92;
  filter: drop-shadow(0 0 26px rgba(70, 140, 255, 0.30));
  animation: rjHeroMapIn 0.8s ease-out 0.15s backwards;
}
.rj-hero__map-dot {
  filter: drop-shadow(0 0 4px rgba(170, 210, 255, 0.9));
}
/* 左侧压暗遮罩（由浊到透）：保证文字可读，且呼应「洗净渐变」 */
.rj-hero__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(6, 15, 54, 0.84) 0%, rgba(6, 15, 54, 0.38) 42%, transparent 74%);
  pointer-events: none;
}
/* 首屏文字错峰入场（一次性，仅 transform/opacity，GPU 合成；reduced-motion 下由全局规则瞬间完成） */
@keyframes rjHeroItemIn {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: none; }
}
.rj-hero__content .eyebrow,
.rj-hero__title,
.rj-hero__lead,
.rj-hero__actions,
.rj-hero__note {
  animation: rjHeroItemIn 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.rj-hero__content .eyebrow { animation-delay: 0.05s; }
.rj-hero__title { animation-delay: 0.15s; }
.rj-hero__lead { animation-delay: 0.3s; }
.rj-hero__actions { animation-delay: 0.45s; }
.rj-hero__note { animation-delay: 0.6s; }
/* 首屏地图淡入（一次性） */
@keyframes rjHeroMapIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.rj-hero__inner {
  position: relative;
  z-index: 2;
  min-height: calc(100vh - var(--nav-h) - 150px);
  display: flex;
  align-items: center;
  padding: var(--space-8) 0;
}
.rj-hero__content { max-width: 640px; color: var(--white); }
.rj-hero__title {
  font-size: clamp(2.4rem, 5vw, var(--text-6xl));
  font-weight: 600;
  letter-spacing: -0.02em;
  margin-bottom: var(--space-5);
  color: var(--white);
}
.rj-hero__title-sub {
  display: block;
  font-size: clamp(1.1rem, 2.4vw, 1.6rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #9ec0ff;
  margin-top: var(--space-2);
}
.rj-hero__lead {
  font-size: var(--text-lg);
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.8;
  margin-bottom: var(--space-6);
  max-width: 560px;
}
.rj-hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-bottom: var(--space-4); }
.rj-hero__note { font-size: var(--text-sm); color: rgba(255, 255, 255, 0.55); margin: 0; }

.btn--ghost-light {
  background: transparent;
  border-color: rgba(255, 255, 255, 0.45);
  color: var(--white);
}
.btn--ghost-light:hover { border-color: var(--white); color: var(--white); background: rgba(255, 255, 255, 0.08); }

/* Hero 深蓝背景上：小标题改用亮浅蓝，避免与背景混色看不清 */
.rj-hero__content .eyebrow {
  color: #9ec0ff;
}

/* =========================================================
   信任数据条（深蓝延续）
   ========================================================= */
.rj-stats {
  position: relative;
  z-index: 2;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(6, 15, 54, 0.35);
}
.rj-stats__inner {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--space-4);
  padding: var(--space-5) 0;
}
.rj-stats__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  text-align: center;
}
.rj-stats__num {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
  color: transparent;
  background: linear-gradient(180deg, #f2f7ff 0%, #a8ccff 45%, #4f8cff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  filter: drop-shadow(0 0 10px rgba(70, 150, 255, 0.4));
}
.rj-stats__label { font-size: var(--text-sm); color: rgba(255, 255, 255, 0.7); }

/* =========================================================
   右侧浮动按钮（点击弹出对应弹窗）
   ========================================================= */
.rj-contactbar {
  position: fixed;
  right: 16px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 90;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.rj-contactbar__btn {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: var(--radius-circle);
  background: linear-gradient(135deg, var(--blue), var(--blue-deep));
  color: var(--white);
  box-shadow: 0 8px 22px rgba(10, 31, 107, 0.3);
  cursor: pointer;
  transition: transform 0.2s ease, box-shadow 0.25s ease;
}
.rj-contactbar__btn svg { width: 20px; height: 20px; }
.rj-contactbar__btn:hover {
  transform: translateY(-2px) scale(1.05);
  box-shadow: 0 12px 26px rgba(20, 85, 229, 0.4);
}

/* 悬停气泡提示（左侧） */
.rj-contactbar__btn::after {
  content: attr(data-tip);
  position: absolute;
  right: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%) translateX(4px);
  white-space: nowrap;
  padding: 0.42rem 0.8rem;
  background: var(--ink);
  color: var(--white);
  font-size: 0.78rem;
  font-weight: 600;
  font-family: var(--font-body);
  border-radius: var(--radius-sm);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
  pointer-events: none;
}
.rj-contactbar__btn:hover::after {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(0);
}

/* 热线项：静态描边（不做脉冲动画） */
.rj-contactbar__btn--hotline::before {
  content: "";
  position: absolute;
  inset: -4px;
  border-radius: var(--radius-circle);
  border: 2px solid rgba(28, 86, 240, 0.4);
}

/* 窄屏（≤520px）：联系入口改为底部悬浮条，顶部隐藏选择城市 */
@media (max-width: 520px) {
  body { padding-bottom: 64px; }

  .rj-contactbar {
    right: 0;
    left: 0;
    top: auto;
    bottom: 0;
    transform: none;
    flex-direction: row;
    justify-content: space-around;
    width: 100%;
    gap: 0;
    padding: 8px 12px calc(8px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.96);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    border-top: 1px solid var(--blue-border);
    border-radius: 0;
    box-shadow: 0 -4px 18px rgba(10, 31, 107, 0.14);
  }
  .rj-contactbar__btn {
    width: auto;
    height: auto;
    min-width: 0;
    padding: 4px 18px;
    background: transparent;
    color: var(--blue);
    border-radius: 10px;
    box-shadow: none;
    flex-direction: column;
    gap: 3px;
  }
  .rj-contactbar__btn--hotline {
    background: transparent;
    color: var(--blue-deep);
    margin-bottom: 0;
  }
  .rj-contactbar__btn--hotline::before { display: none; }
  .rj-contactbar__btn svg { width: 22px; height: 22px; }
  /* 图标下方用 data-tip 显示文字标签（移动端无悬停） */
  .rj-contactbar__btn::after {
    content: attr(data-tip);
    position: static;
    transform: none;
    opacity: 1;
    visibility: visible;
    padding: 0;
    background: transparent;
    color: var(--muted);
    font-size: 0.66rem;
    font-weight: 500;
    border-radius: 0;
  }
}

/* =========================================================
   通用弹层（城市选择器 / 微信）
   ========================================================= */
.rj-city, .rj-modal { position: fixed; inset: 0; z-index: 200; display: none; }
.rj-city.is-open, .rj-modal.is-open { display: block; }
.rj-city__backdrop, .rj-modal__backdrop {
  position: absolute; inset: 0;
  background: rgba(10, 31, 107, 0.5);
  backdrop-filter: blur(2px);
}
.rj-city__panel, .rj-modal__panel {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: min(760px, calc(100vw - 32px));
  max-height: 82vh;
  overflow-y: auto;
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  padding: var(--space-6);
  box-shadow: var(--shadow-card);
}
.rj-city__close, .rj-modal__close {
  position: absolute;
  top: var(--space-4); right: var(--space-4);
  width: 34px; height: 34px;
  border: 0; border-radius: var(--radius-circle);
  background: var(--bg-alt);
  font-size: 1.3rem; line-height: 1;
  color: var(--muted);
  display: flex; align-items: center; justify-content: center;
}
.rj-city__close:hover, .rj-modal__close:hover { background: var(--blue-soft); color: var(--blue); }
.rj-city__head { margin-bottom: var(--space-5); padding-right: var(--space-6); }
.rj-city__title { font-size: var(--text-xl); margin-bottom: var(--space-1); }
.rj-city__sub { color: var(--muted); margin: 0; font-size: 0.92rem; }
.rj-city__group { margin-bottom: var(--space-5); }
.rj-city__group-title {
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--blue);
  margin-bottom: var(--space-3);
}
.rj-city__chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.rj-city__chip {
  font-size: 0.95rem;
  color: var(--ink);
  background: var(--bg-alt);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius-pill);
  padding: 0.45rem 1rem;
  transition: background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.rj-city__chip:hover { background: var(--blue-soft); border-color: var(--blue); color: var(--blue); }
.rj-city__foot { color: var(--muted); font-size: 0.9rem; margin: 0; }
.rj-city__foot a { font-weight: 700; }

.rj-modal__panel { width: min(360px, calc(100vw - 32px)); text-align: center; }
/* 拨打 400 弹窗：号码较长，面板加宽避免折行 */
#callModal .rj-modal__panel { width: min(400px, calc(100vw - 32px)); }
.rj-modal__title { font-size: var(--text-xl); margin-bottom: var(--space-1); }
.rj-modal__sub { color: var(--muted); font-size: 0.9rem; margin: 0 0 var(--space-5); }
.rj-modal__qr {
  width: 200px; height: 200px;
  margin: 0 auto var(--space-4);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--white);
}
.rj-modal__qr--wechat {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  background: var(--blue-soft);
}
.rj-modal__qr-wechat {
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  color: var(--blue);
  text-align: center;
  line-height: 1.3;
}
/* 微信二维码图片（后台「网站设置」上传，未设置时回退为微信号文字） */
.rj-modal__qr-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  padding: 12px;
  background: var(--white);
}
.rj-modal__hint { font-size: 0.85rem; color: var(--muted); margin: 0; }
/* 拨打 400 弹窗：大号热线号码 */
.rj-modal__call { margin: 0 0 var(--space-5); }
.rj-modal__call-num {
  display: inline-block;
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 7vw, 2.2rem);   /* 窄屏自动缩号，保证单行不折行 */
  font-weight: 800;
  letter-spacing: 0.02em;
  color: var(--blue);
  text-decoration: none;
  white-space: nowrap;   /* 强制号码单行 */
  padding-bottom: 4px;
  border-bottom: 2px dashed var(--blue-soft);
}
.rj-modal__call-num:hover { color: var(--blue-deep); }

/* 弹层显示时锁定 body 滚动 */
body.modal-open { overflow: hidden; }

/* 城市悬停提示 */
.rj-city-tip {
  position: fixed;
  z-index: 9999;
  pointer-events: none;
  transform: translate(-50%, -100%);
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  background: rgba(10, 31, 107, 0.94);
  border: 1px solid rgba(255, 255, 255, 0.28);
  color: #fff;
  font-size: 13px;
  white-space: normal;
  width: max-content;
  max-width: 300px;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.rj-city-tip .tip-title {
  font-weight: 700;
  font-size: 13px;
  margin-bottom: 4px;
  color: #cfe0ff;
  white-space: nowrap;
}
.rj-city-tip .tip-list {
  font-weight: 500;
  font-size: 12px;
  line-height: 1.6;
  color: #fff;
}
.rj-city-tip.is-show { opacity: 1; }

/* =========================================================
   无障碍 / 减少动效
   ========================================================= */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  /* 时长压到 0.001s + 循环次数 1 + 延迟清零：动画瞬间完成并停在终态，避免 infinite 动画高速频闪 */
  *, *::before, *::after {
    animation-duration: 0.001s !important;
    animation-iteration-count: 1 !important;
    animation-delay: 0s !important;
    transition-duration: 0.001s !important;
  }
  .reveal { opacity: 1; transform: none; }
}

/* =========================================================
   响应式
   ========================================================= */
@media (max-width: 1024px) {
  .rj-nav__menu { gap: 0; }
  .rj-nav__menu a { padding: 0.5rem 0.55rem; font-size: 0.88rem; }
}

@media (max-width: 860px) {
  .rj-nav__burger { display: flex; margin-left: auto; }
  /* 移动端/折叠态顶部不显示「选择城市」按钮（右侧浮动城市入口保留） */
  .rj-nav__city { display: none; }
  .rj-nav__menu {
    position: fixed;
    inset: var(--nav-h) 0 auto 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: var(--white);
    border-bottom: 1px solid var(--blue-border);
    box-shadow: var(--shadow-card);
    padding: var(--space-3) var(--space-5) var(--space-5);
    transform: translateY(-110%);
    transition: transform 0.3s ease;
    max-height: calc(100vh - var(--nav-h));
    overflow-y: auto;
  }
  .rj-nav__menu.is-open { transform: none; }
  .rj-nav__menu a { padding: 0.85rem 0.5rem; font-size: 1rem; border-bottom: 1px solid var(--blue-border); }
  .rj-nav:not(.is-scrolled) .rj-nav__menu a { color: var(--ink); }
  .rj-nav:not(.is-scrolled) .rj-nav__menu a:hover { color: var(--blue); background: var(--blue-soft); }
  .rj-nav:not(.is-scrolled) .rj-nav__menu a.is-active { color: var(--blue); }
  .rj-nav__actions { margin-left: auto; }
  .rj-nav__hotline { display: none; }
}

@media (max-width: 960px) {
  .rj-hero__inner { min-height: auto; padding: var(--space-8) 0; }
  .rj-hero__content { max-width: 100%; }
  .rj-stats__inner { grid-template-columns: repeat(3, 1fr); row-gap: var(--space-5); }
  /* 5 项数据在 3 列时第 5 项横跨 2 格，避免第二行出现空位 */
  .rj-stats__inner .rj-stats__item:nth-child(5) { grid-column: span 2; }
  .section-title { font-size: var(--text-3xl); }
}

@media (max-width: 520px) {
  .rj-stats__inner { grid-template-columns: repeat(2, 1fr); }
  .rj-stats__item:nth-child(5) { grid-column: span 2; }
  .rj-city__panel { padding: var(--space-5); }
}

/* =========================================================
   第二屏 · 10 大商业清洗服务
   顶部两块大卡（核心业务）+ 底部紧凑卡片墙（创意排布）
   ========================================================= */
/* 大卡片区：两块核心业务并排 */
.rj-services__feature {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-3);
  margin-bottom: var(--space-3);
}
/* 紧凑卡片墙：流动网格，卡片尺寸不一形成错落感 */
.rj-services__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-3);
}
.rj-services__card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-end;   /* 文字沉底 */
  gap: var(--space-3);
  min-height: 180px;
  padding: var(--space-7) var(--space-5) var(--space-5);  /* 上部留白大，内容偏下 */
  background-color: #0A1F6B;
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  color: var(--white);
  text-decoration: none;   /* 作为链接时去除下划线 */
  isolation: isolate;
  cursor: pointer;
}
/* 背景图层 */
.rj-services__card::after {
  content: "";
  position: absolute;
  inset: -1px;   /* 略微外扩，铺满圆角边缘，避免露出底色细缝 */
  z-index: 0;
  background-image: inherit;
  background-size: cover;
  background-position: center;
  pointer-events: none;
}
/* 渐变遮罩：默认较浅托底；hover 时浮起加深，进一步凸显文字 */
.rj-services__card::before {
  content: "";
  position: absolute;
  inset: -1px;
  z-index: 1;
  background: linear-gradient(180deg, rgba(5, 13, 32, 0.1) 0%, rgba(5, 13, 32, 0.2) 42%, rgba(4, 12, 32, 0.82) 78%, rgba(2, 8, 24, 0.95) 100%);
  opacity: 0.55;
  transition: opacity 0.35s ease;
  pointer-events: none;
}
.rj-services__card > * {
  position: relative;
  z-index: 2;
  transition: transform 0.35s ease;
}
.rj-services__card:hover {
  box-shadow: 0 6px 20px rgba(3, 16, 48, 0.28);
  transition: box-shadow 0.3s ease;
}
.rj-services__card:hover::before {
  opacity: 1;
}
.rj-services__card:hover > * {
  transform: translateY(-3px);   /* 内容轻微上浮，配合遮罩凸显 */
}
.rj-services__card:hover .rj-services__bar { transform: none; }  /* 顶部光条保持贴边 */
.rj-services__card:hover .rj-services__name,
.rj-services__card:hover .rj-services__desc {
  color: var(--white);
}
/* ---- 各服务背景图（智谱 cogview-3-flash 生成） ---- */
.rj-services__card--kitchen { background-image: url("../img/services/kitchen-exhaust.jpg"); }
.rj-services__card--hvac { background-image: url("../img/services/central-ac.jpg"); }
.rj-services__card--pipe { background-image: url("../img/services/industrial-pipe.jpg"); }
.rj-services__card--water { background-image: url("../img/services/water-supply.jpg"); }
.rj-services__card--sanitize { background-image: url("../img/services/disinfection.jpg"); }
.rj-services__card--chandelier { background-image: url("../img/services/chandelier.jpg"); }
.rj-services__card--solar { background-image: url("../img/services/solar-panel.jpg"); }
.rj-services__card--facade { background-image: url("../img/services/facade.jpg"); }
.rj-services__card--clean { background-image: url("../img/services/move-in-cleaning.jpg"); }
.rj-services__card--municipal { background-image: url("../img/services/municipal-pipe.jpg"); }
/* ---- 核心业务大卡片 ---- */
.rj-services__card--lg {
  min-height: 240px;
}
/* 核心业务大卡片：顶部品牌蓝光条，强化视觉层级 */
.rj-services__bar {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 3px;
  z-index: 3;
  background: linear-gradient(90deg, #4d8bff, #1455e5);
}
.rj-services__card--lg .badge {
  background: var(--blue);
  color: var(--white);
}
/* 大卡片无文字阴影，用稍实的底部渐变托底保证可读 */
.rj-services__card--lg::before {
  background: linear-gradient(180deg, rgba(5, 13, 32, 0.1) 0%, rgba(5, 13, 32, 0.2) 45%, rgba(4, 12, 32, 0.74) 80%, rgba(2, 8, 24, 0.94) 100%);
}
.rj-services__card--lg .rj-services__name {
  font-size: 1.2rem;
}
.rj-services__card--lg .rj-services__desc {
  font-size: 0.92rem;
  max-width: 36ch;
}
.rj-services__card--lg .rj-services__name,
.rj-services__card--lg .rj-services__desc,
.rj-services__card--lg .rj-services__points li {
  text-shadow: none;
}
/* 大卡片能力清单点 */
.rj-services__points {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-1) var(--space-3);
  margin: var(--space-1) 0 0;
  padding: 0;
  list-style: none;
}
.rj-services__points li {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.92);
  font-weight: 500;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
}
.rj-services__points li::before {
  content: "";
  width: 7px;
  height: 7px;
  border-radius: var(--radius-circle);
  background: rgba(255, 255, 255, 0.92);
  flex-shrink: 0;
}
/* ---- 紧凑服务小卡片（等高等距，对齐不混乱） ---- */
.rj-services__card--sm {
  padding: var(--space-6) var(--space-4) var(--space-4);
}
.rj-services__card--sm .rj-services__name {
  font-size: 1rem;
}
.rj-services__name {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--space-2);
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0;
  color: var(--white);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
  transition: color 0.3s ease;
}
.rj-services__desc {
  margin: 0;
  font-size: 0.85rem;
  color: rgba(255, 255, 255, 0.88);
  line-height: 1.5;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
  transition: color 0.3s ease;
}
/* 第二屏紧凑化：压缩板块留白，让 9 大服务尽量一屏呈现 */
#services.section { padding: var(--space-6) 0; }
#services .section-head { margin-bottom: var(--space-4); }
#services .section-head .section-title { font-size: var(--text-4xl); }
#services .section-head .section-sub { max-width: 680px; }

@media (max-width: 960px) {
  .rj-services__feature { grid-template-columns: 1fr; }
  .rj-services__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .rj-services__grid { grid-template-columns: 1fr; }
}

/* =========================================================
   工具类 · 窄容器（FAQ 使用）
   ========================================================= */
.container--narrow { max-width: 820px; }

/* =========================================================
   品牌实力（信任证据链）
   ========================================================= */
/* =========================================================
   品牌实力（深蓝科技风：网格底 + 玻璃瓷片 + 数字滚动动画）
   ========================================================= */
#about {
  position: relative;
  background:
    linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px),
    radial-gradient(1100px 460px at 88% 12%, rgba(61, 120, 255, 0.22), transparent 60%),
    radial-gradient(760px 420px at 8% 88%, rgba(77, 139, 255, 0.14), transparent 60%),
    linear-gradient(160deg, #0a1f6b 0%, #12318c 52%, #081646 100%);
  background-size: 46px 46px, 46px 46px, auto, auto, auto;
  color: var(--white);
  overflow: hidden;
}
#about .eyebrow { color: #9ec0ff; }
#about .section-title { color: var(--white); }
#about .section-sub { color: rgba(255, 255, 255, 0.78); }

.rj-about {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: var(--space-7);
  align-items: center;
}
.rj-about__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: var(--space-3);
}
.rj-about__list li {
  position: relative;
  padding-left: 2rem;
  color: rgba(255, 255, 255, 0.92);
  font-size: 0.95rem;
  line-height: 1.65;
}
/* 青色发光对勾标记 */
.rj-about__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.42em;
  width: 12px;
  height: 7px;
  border-left: 2px solid #9ec0ff;
  border-bottom: 2px solid #9ec0ff;
  transform: rotate(-45deg);
  filter: drop-shadow(0 0 6px rgba(77, 139, 255, 0.8));
}
/* bento 玻璃瓷片 */
.rj-about__bento {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--space-4);
}
.rj-about__tile {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-5);
  background: linear-gradient(150deg, rgba(23, 50, 122, 0.6), rgba(9, 24, 74, 0.55));
  border: 1px solid rgba(120, 180, 255, 0.25);
  border-radius: var(--radius);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 6px 18px rgba(3, 16, 48, 0.35);
  overflow: hidden;
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
/* 顶部青色光条 */
.rj-about__tile::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 1px;
  width: 100%;
  background: linear-gradient(90deg, transparent, rgba(77, 139, 255, 0.65), transparent);
  opacity: 0.7;
  transition: opacity 0.3s ease;
  pointer-events: none;
}
.rj-about__tile:hover {
  border-color: rgba(77, 139, 255, 0.55);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    0 0 22px rgba(77, 139, 255, 0.3),
    0 10px 26px rgba(3, 16, 48, 0.45);
}
.rj-about__tile:hover::before { opacity: 1; }
/* 集团背书：横跨全部列，玻璃高亮渐变 */
.rj-about__tile--wide {
  grid-column: 1 / -1;
  background: linear-gradient(135deg, rgba(30, 74, 168, 0.75) 0%, rgba(61, 120, 255, 0.55) 100%);
  border-color: rgba(140, 200, 255, 0.35);
  padding: var(--space-6);
  color: var(--white);
}
.rj-about__tile--wide .rj-about__tile-label { color: rgba(255, 255, 255, 0.85); }
.rj-about__tile--wide .rj-about__tile-title { color: var(--white); font-size: 1.2rem; }
.rj-about__tile--wide .rj-about__tile-text { color: rgba(255, 255, 255, 0.85); }
.rj-about__tile-label {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #9ec0ff;
}
.rj-about__tile-title {
  font-size: var(--text-lg);
  font-weight: 700;
  color: var(--white);
  line-height: 1.4;
  margin: 0;
}
.rj-about__tile-text {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.7;
  margin: 0;
}
.rj-about__tile-num {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: 800;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
  color: var(--white);
}

/* =========================================================
   服务城市网络
   ========================================================= */
#cities {
  position: relative;
  background: linear-gradient(180deg, #dce5f5 0%, #eef1f6 34%);   /* 顶部淡蓝衔接深蓝板块，渐入灰底衬托地图 */
}
#cities .container { position: relative; z-index: 1; }
/* 灰色中国地图背景层 */
.rj-cities__map {
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: 0.75;
  pointer-events: none;
  overflow: hidden;
  display: flex;
  align-items: flex-end;      /* 地图贴底偏下 */
  justify-content: center;
  padding-bottom: 2%;
}
.rj-cities__map svg {
  width: 100%;
  height: 100%;
  transform-origin: 50% 100%; /* 以底边为基准放大 */
  transform: scale(1.38) translateY(33%); /* 整体下移约 1/3：露出东北、南沙裁于下方 */
}
.rj-cities__tier { margin-bottom: var(--space-6); }
.rj-cities__tier:last-of-type { margin-bottom: 0; }
.rj-cities__tier-title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-3);
  font-size: var(--text-md);
  font-weight: 700;
  color: var(--ink);
  margin-bottom: var(--space-4);
}
.rj-cities__tier-title::before,
.rj-cities__tier-title::after {
  content: "";
  height: 1px;
  width: 48px;
  background: var(--blue-border);
}
.rj-cities__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-4);
}
.rj-cities__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-1);
  padding: var(--space-5) var(--space-4);
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.rj-cities__card:hover {
  transform: translateY(-4px);
  border-color: var(--blue);
  box-shadow: var(--shadow-hover);
}
.rj-cities__city { font-size: 1.15rem; font-weight: 700; color: var(--ink); }
.rj-cities__tag {
  font-size: var(--text-xs);
  font-weight: 400;
  color: var(--blue);
  background: var(--blue-soft);
  padding: 2px 10px;
  border-radius: var(--radius-pill);
}
.rj-cities__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-2);
}
.rj-cities__chip {
  padding: 0.4rem 1.05rem;
  font-size: 0.92rem;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius-pill);
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease;
}
.rj-cities__chip:hover {
  background: var(--blue-soft);
  border-color: var(--blue);
  color: var(--blue);
}
/* ---- 未上线城市（服务网络区块） ---- */
.rj-cities__card--offline,
.rj-cities__chip--offline {
  cursor: not-allowed;
  opacity: 0.72;
}
.rj-cities__card--offline:hover {
  transform: none;
  border-color: var(--blue-border);
  box-shadow: var(--shadow-card);
}
.rj-cities__tag--offline {
  color: var(--muted);
  background: #eef1f6;
}
.rj-cities__chip--offline:hover {
  background: var(--white);
  border-color: var(--blue-border);
  color: var(--ink);
}
.rj-cities__chip--offline em,
.rj-city__chip--offline em {
  font-style: normal;
  font-size: 0.72rem;
  font-weight: 400;
  color: var(--muted);
  margin-left: 6px;
}
/* 城市弹窗未上线 */
.rj-city__chip--offline {
  cursor: not-allowed;
  opacity: 0.72;
}
.rj-city__chip--offline:hover {
  background: var(--bg-alt);
  border-color: var(--blue-border);
  color: var(--ink);
}
/* 页脚未上线城市 */
.rj-footer__city--offline {
  color: rgba(255, 255, 255, 0.35);
}
.rj-cities__foot {
  text-align: center;
  color: var(--muted);
  font-size: 0.92rem;
  margin: var(--space-6) 0 0;
}
.rj-cities__foot a { font-weight: 700; }

/* =========================================================
   服务客户 · LOGO 墙（含 alt 文字）
   ========================================================= */
.rj-logo__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: var(--space-4);
}
.rj-logo__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-2);
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.rj-logo__item:hover {
  transform: translateY(-4px);
  border-color: var(--blue);
  box-shadow: var(--shadow-hover);
}
.rj-logo__mark {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 48px;
  flex-shrink: 0;
}
.rj-logo__mark img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
/* 无 Logo 时纯文字展示（后台未上传图片的客户） */
.rj-logo__mark--text {
  font-family: var(--font-display);
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--ink);
  text-align: center;
  letter-spacing: 0.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* Logo 可点击链接：包裹卡片内标记，不破坏布局 */
.rj-logo__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

/* =========================================================
   服务商合作
   ========================================================= */
.rj-franchise__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}
.rj-franchise__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-6) var(--space-5);
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.rj-franchise__card:hover {
  transform: translateY(-4px);
  border-color: var(--blue);
  box-shadow: var(--shadow-hover);
}
.rj-franchise__badge {
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--blue);
  background: var(--blue-soft);
  padding: 3px 12px;
  border-radius: var(--radius-pill);
}
.rj-franchise__name {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0;
}
.rj-franchise__desc {
  font-size: 0.92rem;
  color: var(--muted);
  line-height: 1.7;
  margin: 0;
}
.rj-franchise__link {
  margin-top: auto;
  padding-top: var(--space-2);
  font-weight: 700;
  font-size: 0.95rem;
  color: var(--blue);
  transition: color 0.25s ease;
}
.rj-franchise__card:hover .rj-franchise__link { color: var(--blue-deep); }

/* ---- 新闻分类 TAB ---- */
.rj-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
  margin-bottom: var(--space-7);
}
.rj-tab {
  padding: 0.6rem 1.4rem;
  font-family: var(--font-body);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--muted);
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius-pill);
  cursor: pointer;
  transition: color 0.25s ease, background 0.25s ease, border-color 0.25s ease;
}
.rj-tab:hover { color: var(--blue); border-color: var(--blue); }
.rj-tab.is-active {
  color: var(--white);
  background: linear-gradient(135deg, var(--blue), var(--blue-deep));
  border-color: transparent;
}

/* =========================================================
   公司动态（品牌新闻）
   ========================================================= */
.rj-news__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-4);
}
.rj-news__card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-6) var(--space-5);
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.rj-news__card:hover {
  transform: translateY(-4px);
  border-color: var(--blue-soft);
  box-shadow: var(--shadow-hover);
}
.rj-news__media {
  display: block;
  width: 100%;
  height: 190px;
  object-fit: cover;
  background: var(--blue-soft);
}
.rj-news__date {
  align-self: flex-start;
  font-size: var(--text-xs);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  color: var(--blue);
  background: var(--blue-soft);
  padding: 3px 12px;
  border-radius: var(--radius-pill);
}
.rj-news__title {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--ink);
  margin: 0;
}
.rj-news__desc {
  margin: 0;
  font-size: 0.92rem;
  color: var(--muted);
  line-height: 1.7;
}

/* =========================================================
   联系我们（NAP）
   ========================================================= */
.rj-contact {
  text-align: center;
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  padding: var(--space-8) var(--space-6);
}
.rj-contact .eyebrow { justify-content: center; }
.rj-contact__title {
  font-size: var(--text-3xl);
  font-weight: 700;
  color: var(--ink);
  margin-bottom: var(--space-3);
}
.rj-contact__sub {
  color: var(--muted);
  font-size: 1.05rem;
  margin-bottom: var(--space-5);
}
.rj-contact__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-3);
  margin-bottom: var(--space-7);
}
.rj-contact__meta {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-5);
  padding-top: var(--space-6);
  border-top: 1px solid var(--blue-border);
}
.rj-contact__meta-item { display: flex; flex-direction: column; gap: 4px; }
.rj-contact__meta-label {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.rj-contact__meta-value { font-size: 1rem; font-weight: 600; color: var(--ink); }

/* =========================================================
   页脚（深色）
   ========================================================= */
.rj-footer {
  background: var(--blue-deep);
  color: rgba(255, 255, 255, 0.82);
  padding: var(--space-8) 0 0;
}
.rj-footer__brand {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  margin-bottom: var(--space-7);
}
.rj-footer__logo { width: 150px; height: auto; display: block; }
.rj-footer__note {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.62);
  margin: 0;
}
.rj-footer__hotline {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.62);
  margin: 0;
}
.rj-footer__hotline a { color: var(--white); font-weight: 700; }
.rj-footer__cities {
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding: var(--space-6) 0;
}
.rj-footer__cities-title {
  display: block;
  font-size: var(--text-sm);
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--white);
  margin-bottom: var(--space-4);
}
.rj-footer__cities ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-4);
}
.rj-footer__cities a {
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.7);
  transition: color 0.25s ease;
}
.rj-footer__cities a:hover { color: var(--white); }
.rj-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2) var(--space-6);
  justify-content: space-between;
  padding: var(--space-5) 0;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  font-size: 0.82rem;
  color: rgba(255, 255, 255, 0.5);
}
.rj-footer__bottom p { margin: 0; }

/* =========================================================
   剩余板块 · 响应式
   ========================================================= */
@media (max-width: 960px) {
  .rj-about { grid-template-columns: 1fr; gap: var(--space-6); }
  .rj-logo__grid { grid-template-columns: repeat(3, 1fr); }
  .rj-franchise__grid { grid-template-columns: 1fr; }
  .rj-news__grid { grid-template-columns: 1fr; }
  .rj-contact__title { font-size: var(--text-2xl); }
  .rj-contact__meta { grid-template-columns: 1fr; gap: var(--space-4); }
}
@media (max-width: 640px) {
  .rj-cities__grid { grid-template-columns: repeat(2, 1fr); }
  /* 品牌实力数据：2 个一行（wide 价值观卡片仍横跨整行） */
  .rj-about__bento { grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
  .rj-about__tile { padding: var(--space-4); }
  /* LOGO 墙：3 个一行 */
  .rj-logo__grid { grid-template-columns: repeat(3, 1fr); gap: var(--space-3); }
  .rj-contact { padding: var(--space-6) var(--space-5); }
}

/* =========================================================
   关于页
   ========================================================= */
/* ---- 页首深蓝 Banner（定义块 + 数据条） ---- */
.rj-about-hero {
  position: relative;
  background: linear-gradient(160deg, #0A1F6B 0%, #12318c 45%, #081646 100%);
  color: var(--white);
  padding-top: calc(var(--nav-h) + var(--space-7));
  padding-bottom: var(--space-8);
  overflow: hidden;
}
.rj-about-hero::after {
  content: "";
  position: absolute;
  right: -140px;
  top: -140px;
  width: 520px;
  height: 520px;
  border-radius: var(--radius-circle);
  background: radial-gradient(circle, rgba(77, 139, 255, 0.28), transparent 70%);
  pointer-events: none;
}
.rj-about-hero .eyebrow { color: #9ec0ff; }
.rj-about-hero__title {
  font-size: clamp(2rem, 4.5vw, var(--text-5xl));
  font-weight: 700;
  color: var(--white);
  letter-spacing: -0.02em;
  margin-bottom: var(--space-5);
}
/* 新闻详情等长标题：缩小字号避免过大 */
.rj-about-hero--detail .rj-about-hero__title {
  font-size: clamp(1.75rem, 3.4vw, 2.5rem);
}
.rj-about-hero__sub {
  display: block;
  font-size: clamp(1rem, 2vw, 1.3rem);
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #9ec0ff;
  margin-top: var(--space-3);
}
.rj-about-hero__def {
  position: relative;
  z-index: 1;
  max-width: 820px;
  font-size: var(--text-lg);
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: var(--space-7);
}
.rj-about-hero__stats {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: var(--space-4);
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  padding-top: var(--space-6);
}
.rj-about-hero__stat { display: flex; flex-direction: column; gap: 2px; }
.rj-about-hero__num {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
  color: transparent;
  background: linear-gradient(180deg, #f2f7ff 0%, #a8ccff 45%, #4f8cff 100%);
  -webkit-background-clip: text;
  background-clip: text;
  filter: drop-shadow(0 0 10px rgba(70, 150, 255, 0.4));
}
.rj-about-hero__label { font-size: var(--text-sm); color: rgba(255, 255, 255, 0.7); }

/* ---- 品牌介绍：文案 + 9 大业务 + 业态标签 ---- */
.rj-about__intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: var(--space-7);
  align-items: start;
}
.rj-about__text p { font-size: 1.05rem; line-height: 1.8; }
.rj-about__text strong { color: var(--blue); font-weight: 700; }
.rj-about__tags { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-5); }
.rj-about__tag {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--blue);
  background: var(--blue-soft);
  padding: 0.4rem 0.9rem;
  border-radius: var(--radius-pill);
}
.rj-about__svc { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-3); }
.rj-about__svc-title {
  grid-column: 1 / -1;
  margin: 0 0 var(--space-1);
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--ink);
}
.rj-about__svc-title::after {
  content: "";
  display: block;
  width: 44px;
  height: 3px;
  margin-top: var(--space-2);
  border-radius: 2px;
  background: linear-gradient(90deg, var(--blue), var(--blue-deep));
}
.rj-about__svc-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0.72rem 0.9rem;
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-card);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--ink);
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.rj-about__svc-item:hover { border-color: var(--blue); box-shadow: var(--shadow-hover); transform: translateY(-2px); }
.rj-about__svc-item::before {
  content: "";
  width: 8px; height: 8px;
  border-radius: var(--radius-circle);
  background: var(--blue);
  flex: none;
}

/* ---- 发展历程（时间轴） ---- */
.rj-timeline { max-width: 760px; margin: 0 auto; }
.rj-timeline__item {
  position: relative;
  padding: 0 0 var(--space-7) var(--space-7);
}
.rj-timeline__item:last-child { padding-bottom: 0; }
.rj-timeline__item::before {
  content: "";
  position: absolute;
  left: 7px;
  top: 10px;
  bottom: 0;
  width: 2px;
  background: linear-gradient(180deg, var(--blue-border), var(--blue-soft));
}
.rj-timeline__item:last-child::before { display: none; }
.rj-timeline__dot {
  position: absolute;
  left: 0;
  top: 5px;
  width: 16px; height: 16px;
  border-radius: var(--radius-circle);
  background: var(--blue);
  border: 3px solid var(--blue-soft);
  box-shadow: 0 0 0 1px var(--blue-border), 0 0 0 4px rgba(20, 85, 229, 0.12);
}
.rj-timeline__stage {
  display: inline-flex;
  font-family: var(--font-display);
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--blue);
  background: var(--blue-soft);
  padding: 0.3rem 0.8rem;
  border-radius: var(--radius-pill);
}
.rj-timeline__title { font-size: var(--text-lg); color: var(--ink); margin: var(--space-1) 0 var(--space-2); }
.rj-timeline__desc { color: var(--muted); margin: 0; }

/* ---- 通用卡片网格（资质 / 团队） ---- */
.rj-about__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--space-4); }
.rj-about__card {
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  padding: var(--space-6);
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.rj-about__card:hover { border-color: var(--blue); box-shadow: var(--shadow-hover); transform: translateY(-3px); }
.rj-about__card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px; height: 46px;
  border-radius: var(--radius-sm);
  background: var(--blue-soft);
  color: var(--blue);
  margin-bottom: var(--space-4);
}
.rj-about__card-title { font-size: var(--text-lg); color: var(--ink); margin: 0 0 var(--space-2); }
.rj-about__card-desc { font-size: 0.9rem; color: var(--muted); margin: 0; }
.rj-about__note {
  margin: var(--space-5) 0 0;
  font-size: var(--text-sm);
  color: var(--muted);
  background: var(--blue-soft);
  border-radius: var(--radius-sm);
  padding: 0.75rem 1rem;
  text-align: center;
}

/* ---- 集团背景（深蓝实体确权面板） ---- */
.rj-group {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: var(--space-7);
  align-items: center;
  background: linear-gradient(135deg, var(--blue-deep), var(--blue));
  color: var(--white);
  border-radius: var(--radius);
  padding: var(--space-7) var(--space-6);
  box-shadow: var(--shadow-hover);
}
.rj-group__label {
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #9ec0ff;
  margin-bottom: var(--space-3);
}
.rj-group__name { font-size: var(--text-2xl); color: var(--white); line-height: 1.3; margin: 0 0 var(--space-3); }
.rj-group__desc { color: rgba(255, 255, 255, 0.85); margin: 0; }
.rj-group__points { display: grid; gap: var(--space-4); }
.rj-group__point { display: flex; gap: var(--space-3); align-items: flex-start; }
.rj-group__point-icon {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px; height: 36px;
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.14);
  color: var(--white);
}
.rj-group__point-title { color: var(--white); font-weight: 700; margin: 0 0 2px; }
.rj-group__point-text { color: rgba(255, 255, 255, 0.8); font-size: 0.9rem; margin: 0; }

/* ---- FAQ（details 折叠） ---- */
.rj-faq { max-width: 820px; margin: 0 auto; display: grid; gap: var(--space-3); }
.rj-faq details {
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition: border-color 0.3s ease;
}
.rj-faq details[open] { border-color: var(--blue); }
.rj-faq summary {
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-4);
  padding: 1rem 1.25rem;
  font-weight: 600;
  color: var(--ink);
}
.rj-faq summary::-webkit-details-marker { display: none; }
.rj-faq summary::after {
  content: "+";
  font-family: var(--font-display);
  font-size: 1.4rem;
  line-height: 1;
  color: var(--blue);
  transition: transform 0.25s ease;
  flex: none;
}
.rj-faq details[open] summary::after { transform: rotate(45deg); }
.rj-faq__body { padding: 0 1.25rem 1.1rem; color: var(--muted); font-size: 0.95rem; line-height: 1.75; }

/* ---- 关于页响应式 ---- */
@media (max-width: 960px) {
  .rj-about-hero__stats { grid-template-columns: repeat(3, 1fr); }
  /* 5 项数据在 3 列时第 5 项横跨 2 格，避免第二行出现空位 */
  .rj-about-hero__stats .rj-about-hero__stat:nth-child(5) { grid-column: span 2; }
  .rj-about__intro { grid-template-columns: 1fr; gap: var(--space-5); }
  .rj-about__grid { grid-template-columns: repeat(2, 1fr); }
  .rj-group { grid-template-columns: 1fr; gap: var(--space-5); }
}
@media (max-width: 640px) {
  .rj-about-hero__stats { grid-template-columns: repeat(2, 1fr); }
  /* 5 项统计数据在 2 列时第 5 项独占一行，横跨 2 列避免孤零 */
  .rj-about-hero__stats .rj-about-hero__stat:nth-child(5) { grid-column: span 2; }
  .rj-about__svc { grid-template-columns: repeat(2, 1fr); }
   /* 9 个服务项在 2 列时最后一项横跨 2 列，避免孤零 */
   .rj-about__svc .rj-about__svc-item:last-child { grid-column: span 2; }
  .rj-about__grid { grid-template-columns: 1fr; }
}

/* =========================================================
   导航二级下拉
   ========================================================= */
.rj-nav__item { position: relative; }
.rj-nav__link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.rj-nav__chev { transition: transform 0.25s ease; }
.rj-nav__item:hover .rj-nav__chev,
.rj-nav__item:focus-within .rj-nav__chev { transform: rotate(180deg); }

/* 下拉面板：白色卡片 + 顶部小箭头 */
.rj-nav__sub {
  position: absolute;
  top: calc(100% + 10px);
  left: 50%;
  transform: translateX(-50%) translateY(8px);
  min-width: 216px;
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  box-shadow: 0 10px 26px rgba(10, 31, 107, 0.14);
  padding: 0.4rem;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s;
  z-index: 60;
}
.rj-nav__item:hover .rj-nav__sub,
.rj-nav__item:focus-within .rj-nav__sub {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.rj-nav__sub::before {
  content: "";
  position: absolute;
  top: -6px;
  left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 12px; height: 12px;
  background: var(--white);
  border-left: 1px solid var(--blue-border);
  border-top: 1px solid var(--blue-border);
  border-radius: 2px 0 0 0;
}
.rj-nav__sub li + li { margin-top: 2px; }
/* 悬停桥接：填补一级菜单与下拉面板之间的空隙，避免移出时下拉消失 */
.rj-nav__item::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  width: 240px;
  height: 12px;
}
/* 明确覆盖「透明导航」的白字规则：下拉项恒为深色 */
.rj-nav__sub a,
.rj-nav:not(.is-scrolled) .rj-nav__sub a {
  display: block;
  padding: 0.55rem 0.85rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--ink);
  border-radius: var(--radius-sm);
  white-space: nowrap;
  transition: color 0.25s ease, background 0.25s ease;
}
.rj-nav__sub a:hover,
.rj-nav:not(.is-scrolled) .rj-nav__sub a:hover {
  color: var(--blue);
  background: var(--blue-soft);
}

/* 移动端（≤860px 折叠菜单）：二级菜单展开为静态缩进列表 */
@media (max-width: 860px) {
  .rj-nav__chev { display: none; }
  .rj-nav__item { position: static; }
  .rj-nav__item::after { display: none; }
  .rj-nav__sub,
  .rj-nav:not(.is-scrolled) .rj-nav__sub {
    position: static;
    transform: none;
    opacity: 1;
    visibility: visible;
    box-shadow: none;
    border: 0;
    min-width: 0;
    padding: 0 0 0.4rem 1.1rem;
  }
  .rj-nav__sub::before { display: none; }
  .rj-nav__sub li + li { margin-top: 0; }
  .rj-nav__sub a,
  .rj-nav:not(.is-scrolled) .rj-nav__sub a {
    font-size: 0.92rem;
    padding: 0.6rem 0.5rem;
    color: var(--muted);
    background: transparent;
  }
  .rj-nav__sub a:hover,
  .rj-nav:not(.is-scrolled) .rj-nav__sub a:hover { color: var(--blue); background: transparent; }
}

/* =========================================================
   新闻动态（列表 + 详情）
   ========================================================= */
.rj-news__media-link {
  display: block;
  line-height: 0;
  align-self: stretch;
  margin: calc(var(--space-6) * -1) calc(var(--space-5) * -1) 0;
  border-radius: var(--radius) var(--radius) 0 0;
  overflow: hidden;
}
.rj-news__meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rj-news__cat {
  font-size: var(--text-xs);
  font-weight: 700;
  color: var(--white);
  background: var(--blue);
  padding: 3px 10px;
  border-radius: var(--radius-pill);
}
.rj-news__title a { color: inherit; }
.rj-news__title a:hover { color: var(--blue); }
.rj-news__more {
  margin-top: auto;
  font-weight: 700;
  font-size: 0.9rem;
  color: var(--blue);
  transition: color 0.25s ease;
}
.rj-news__more:hover { color: var(--blue-deep); }
.rj-news__empty {
  text-align: center;
  color: var(--muted);
  padding: var(--space-7) var(--space-4);
  background: var(--white);
  border: 1px dashed var(--blue-border);
  border-radius: var(--radius);
}
.rj-news__related { margin-top: var(--space-8); padding-top: var(--space-6); border-top: 1px solid var(--blue-border); }
.rj-news__related-title { font-size: 1.25rem; margin-bottom: var(--space-4); }

/* ---- 新闻详情页：左右布局（正文 + 相关阅读） ---- */
.rj-news-detail {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: var(--space-7);
  align-items: start;
}
.rj-news-side {
  position: sticky;
  top: 96px;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
.rj-news-side__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 0.25rem;
}
.rj-news-side__title { font-size: 1.25rem; margin: 0; }
.rj-news-side__more { font-size: 0.9rem; color: var(--blue); white-space: nowrap; }
.rj-news-side__item {
  display: flex;
  gap: 0.85rem;
  padding: 0.85rem;
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius-sm);
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.rj-news-side__item:hover { border-color: var(--blue); box-shadow: var(--shadow-hover); }
.rj-news-side__thumb {
  flex: none;
  width: 84px; height: 64px;
  border-radius: var(--radius-sm);
  overflow: hidden;
  line-height: 0;
}
.rj-news-side__thumb img { width: 100%; height: 100%; object-fit: cover; }
.rj-news-side__body { min-width: 0; display: flex; flex-direction: column; gap: 0.2rem; }
.rj-news-side__cat { font-size: 0.75rem; font-weight: 600; color: var(--blue); }
.rj-news-side__item-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.rj-news-side__date { font-size: 0.8rem; color: var(--muted); }
.rj-news-side__back { margin-top: 0.5rem; justify-content: center; }
@media (max-width: 960px) {
  .rj-news-detail { grid-template-columns: 1fr; }
  .rj-news-side { position: static; }
}

/* 文章正文（富文本） */
.rj-article { font-size: 1.05rem; line-height: 1.9; color: var(--muted); }
.rj-article > *:first-child { margin-top: 0; }
.rj-article h2, .rj-article h3, .rj-article h4 { color: var(--ink); margin-top: var(--space-6); margin-bottom: var(--space-3); }
.rj-article h2 { font-size: 1.5rem; }
.rj-article h3 { font-size: 1.25rem; }
.rj-article p { margin-bottom: var(--space-4); }
.rj-article img { border-radius: var(--radius); margin: var(--space-5) 0; }
.rj-article ul, .rj-article ol { margin: 0 0 var(--space-4); padding-left: 1.4rem; }
.rj-article ul { list-style: disc; }
.rj-article ol { list-style: decimal; }
.rj-article li { margin-bottom: var(--space-2); }
.rj-article blockquote {
  margin: var(--space-5) 0;
  padding: var(--space-4) var(--space-5);
  border-left: 3px solid var(--blue);
  background: var(--blue-soft);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  color: var(--ink);
}
.rj-article a { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.rj-article table { width: 100%; border-collapse: collapse; margin: var(--space-5) 0; font-size: 0.95rem; }
.rj-article th, .rj-article td { border: 1px solid var(--blue-border); padding: 0.6rem 0.8rem; text-align: left; }
.rj-article th { background: var(--blue-soft); color: var(--ink); font-weight: 700; }
.rj-article pre, .rj-article code { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; background: var(--bg-alt); border-radius: var(--radius-sm); }
.rj-article pre { padding: var(--space-4); overflow-x: auto; }
.rj-article__back { margin-top: var(--space-7); }

/* =========================================================
   服务项目页（列表 + 详情）
   ========================================================= */
/* 全国统一五步服务流程 */
.rj-steps {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: var(--space-4);
}
.rj-steps--5 { grid-template-columns: repeat(5, 1fr); }
.rj-step {
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  padding: var(--space-6) var(--space-5) var(--space-5);
  text-align: center;
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.rj-step:hover { border-color: var(--blue); box-shadow: var(--shadow-hover); transform: translateY(-3px); }
.rj-step__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  border-radius: var(--radius-circle);
  background: linear-gradient(135deg, var(--blue), var(--blue-deep));
  color: var(--white);
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 1.1rem;
  margin-bottom: var(--space-3);
}
.rj-step__title { font-size: 1.02rem; color: var(--ink); margin: 0 0 var(--space-2); }
.rj-step__desc { font-size: 0.88rem; color: var(--muted); margin: 0; line-height: 1.6; }

/* 服务内容：卖点对勾清单 */
.rj-check-list { display: grid; gap: var(--space-3); }
.rj-check-list li {
  position: relative;
  padding-left: 2rem;
  color: var(--muted);
  font-size: 1rem;
  line-height: 1.7;
}
.rj-check-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.5em;
  width: 12px; height: 7px;
  border-left: 2px solid var(--blue);
  border-bottom: 2px solid var(--blue);
  transform: rotate(-45deg);
}
/* ---- 清单卡片（grid 模式） ---- */
.rj-list-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-4);
}
.rj-list-card {
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  padding: var(--space-6) var(--space-5);
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.rj-list-card:hover { border-color: var(--blue); box-shadow: var(--shadow-hover); transform: translateY(-3px); }
.rj-list-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px; height: 40px;
  border-radius: var(--radius-circle);
  background: var(--blue-soft);
  color: var(--blue);
  margin-bottom: var(--space-3);
}
.rj-list-card__desc { margin: 0; font-size: 0.95rem; line-height: 1.7; color: var(--muted); }
@media (max-width: 960px) {
  .rj-list-cards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .rj-list-cards { grid-template-columns: 1fr; }
}

@media (max-width: 960px) {
  .rj-steps { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 640px) {
  .rj-steps { grid-template-columns: 1fr 1fr; }
  .rj-steps .rj-step:last-child { grid-column: span 2; }
}
/* 移动端细节：超窄屏 6/5 步流程改单列；富文本表格横向滚动不挤压 */
@media (max-width: 640px) {
  .rj-article table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .rj-article th, .rj-article td { white-space: nowrap; }
}
@media (max-width: 480px) {
  .rj-steps { grid-template-columns: 1fr; }
  .rj-steps .rj-step:last-child { grid-column: auto; }
  .rj-tab { padding: 0.5rem 1.05rem; font-size: 0.88rem; }
}

/* =========================================================
   联系我们 / 需求表单
   ========================================================= */
.rj-contact-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: var(--space-7);
  align-items: start;
}
.rj-form {
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  padding: var(--space-6);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-4);
}
.rj-form__field { display: flex; flex-direction: column; gap: 6px; }
.rj-form__field--full { grid-column: 1 / -1; }
.rj-form__label { font-size: var(--text-sm); font-weight: 600; color: var(--ink); }
.rj-form__label em { color: var(--blue); font-style: normal; }
.rj-form__input,
.rj-form__select,
.rj-form__textarea {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: var(--ink);
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius-sm);
  padding: 0.7rem 0.85rem;
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.rj-form__input:focus,
.rj-form__select:focus,
.rj-form__textarea:focus {
  outline: none;
  border-color: var(--blue);
  box-shadow: 0 0 0 3px rgba(20, 85, 229, 0.12);
}
.rj-form__textarea { resize: vertical; min-height: 110px; }
.rj-form__hint { font-size: var(--text-xs); color: var(--muted); margin: 0; }
.rj-form__submit { justify-self: start; }

/* 联系信息卡（NAP） */
.rj-contact-info { display: grid; gap: var(--space-4); }
.rj-contact-info__item {
  display: flex;
  gap: var(--space-4);
  align-items: flex-start;
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  padding: var(--space-5);
}
.rj-contact-info__icon {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px; height: 44px;
  border-radius: var(--radius-sm);
  background: var(--blue-soft);
  color: var(--blue);
}
.rj-contact-info__label { font-size: var(--text-xs); font-weight: 700; letter-spacing: 0.06em; color: var(--muted); margin-bottom: 2px; }
.rj-contact-info__value { font-size: 1rem; font-weight: 600; color: var(--ink); }
.rj-contact-info__phone { font-family: var(--font-display); font-size: 1.4rem; font-weight: 800; color: var(--blue); letter-spacing: 0.02em; }

@media (max-width: 960px) {
  .rj-contact-split { grid-template-columns: 1fr; }
  .rj-form { grid-template-columns: 1fr; }
  .rj-form__field--full { grid-column: auto; }
  /* 移动端表单输入字号 ≥16px，避免 iOS Safari 聚焦时页面自动放大 */
  .rj-form__input,
  .rj-form__select,
  .rj-form__textarea { font-size: 16px; }
}

/* =========================================================
   服务详情页 · 骨架模块（V4 文案）
   ========================================================= */
/* ---- Banner 主视觉背景 ---- */
.rj-about-hero .container { position: relative; z-index: 2; }
.rj-about-hero__media {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0.32;
  z-index: 0;
}
.rj-about-hero--media::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(100deg, rgba(6, 15, 54, 0.92) 0%, rgba(6, 15, 54, 0.55) 55%, rgba(6, 15, 54, 0.35) 100%);
  pointer-events: none;
}

/* ---- 表格 ---- */
.rj-table-wrap {
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius);
  box-shadow: var(--shadow-card);
  overflow-x: auto;
}
.rj-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.95rem;
  min-width: 560px;
}
.rj-table th {
  background: var(--blue-soft);
  color: var(--ink);
  font-weight: 700;
  text-align: left;
  padding: 0.8rem 1rem;
  white-space: nowrap;
}
.rj-table td {
  padding: 0.8rem 1rem;
  color: var(--muted);
  border-top: 1px solid var(--blue-border);
  vertical-align: top;
}
.rj-table tbody tr:nth-child(even) td { background: #fbfcff; }
.rj-table tbody tr:hover td { background: var(--blue-soft); }
.rj-table__note {
  margin: var(--space-3) 0 0;
  font-size: var(--text-sm);
  color: var(--muted);
}

/* ---- 左图右文 ---- */
.rj-imagetext {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: var(--space-7);
  align-items: center;
}
.rj-imagetext__media {
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: var(--shadow-hover);
  line-height: 0;
}
.rj-imagetext__media img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4/3; }
.rj-imagetext__body { font-size: 1.05rem; line-height: 1.9; color: var(--muted); }
.rj-imagetext__body p { margin: 0; }
.rj-imagetext__body .rj-imagetext__subtitle {
  display: flex;
  align-items: center;
  gap: 0.6rem;
  font-size: 1.18rem;
  font-weight: 700;
  color: var(--blue);
  margin: 0 0 var(--space-3);
}
.rj-imagetext__body .rj-imagetext__subtitle::before {
  content: "";
  flex: none;
  width: 4px;
  height: 1.05em;
  border-radius: 2px;
  background: linear-gradient(180deg, var(--blue), var(--blue-deep));
}
.rj-imagetext__list { margin: var(--space-5) 0 0; }
.rj-imagetext__list li { font-size: 0.98rem; }

/* ---- 加盟页：你们的现状（左图右文） ---- */
.rj-pain__content { align-self: center; }
.rj-pain__content .section-head { margin-bottom: var(--space-5); }

/* ---- 加盟页：GEO 2×2 卡片 ---- */
.rj-geo-grid { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 640px) {
  .rj-geo-grid { grid-template-columns: 1fr; }
}

/* ---- 通用 2×2 卡片网格 ---- */
.rj-about__grid--2 { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 640px) {
  .rj-about__grid--2 { grid-template-columns: 1fr; }
}

/* ---- 加盟页：产品定位（大白话说明） ---- */
.rj-position .rj-list-cards { margin-top: var(--space-6); }
.rj-position .rj-list-card__desc strong { color: var(--blue); }

/* ---- 加盟页：我们在招募什么（醒目定义块） ---- */
.rj-define__lead {
  font-size: 1.35rem;
  line-height: 1.85;
  color: var(--ink);
  font-weight: 500;
  max-width: 880px;
}
.rj-define__lead strong {
  font-weight: 800;
  color: var(--blue);
}
.rj-define__note {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  margin: var(--space-6) 0 0;
  padding: 1rem 1.2rem;
  max-width: 880px;
  background: linear-gradient(135deg, rgba(28, 86, 240, 0.09), rgba(28, 86, 240, 0.03));
  border: 1px solid var(--blue-border);
  border-left: 4px solid var(--blue);
  border-radius: var(--radius-sm);
}
.rj-define__note svg {
  flex: none;
  color: var(--blue);
  margin-top: 3px;
}
.rj-define__note p {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.7;
}

/* ---- 定义结构化信息（facts） ---- */
.rj-def-facts {
  display: grid;
  gap: var(--space-3);
  margin: var(--space-5) 0 0;
}
.rj-def-fact {
  background: var(--white);
  border: 1px solid var(--blue-border);
  border-radius: var(--radius-sm);
  box-shadow: var(--shadow-card);
  padding: 0.95rem 1.1rem;
}
.rj-def-fact__label {
  display: inline-block;
  margin: 0 0 0.55rem;
  padding: 0.28rem 0.8rem;
  border-radius: var(--radius-pill);
  background: var(--blue-soft);
  color: var(--blue);
  font-weight: 700;
  font-size: 0.9rem;
  line-height: 1.4;
}
.rj-def-fact__text {
  margin: 0;
  color: var(--muted);
  font-size: 0.96rem;
  line-height: 1.75;
}

/* ---- 警示卡片（风险/影响） ---- */
.rj-warn-grid { grid-template-columns: repeat(2, 1fr); }
.rj-warn-card {
  position: relative;
  overflow: hidden;
  border-color: #ffd9d9;
  background: #fff7f7;
}
.rj-warn-card::before {
  content: "";
  position: absolute;
  top: 0; bottom: 0; left: 0;
  width: 3px;
  background: linear-gradient(180deg, #ff8a7a, #e53935);
}
.rj-warn-card__body {
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
}
.rj-warn-card__icon {
  flex: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border-radius: var(--radius-circle);
  background: #ffe3e0;
  color: #e53935;
}
.rj-warn-card__content { min-width: 0; }
.rj-warn-card__title {
  font-size: 1.02rem;
  font-weight: 600;
  color: #8f2d2d;
  margin: 0 0 0.2rem;
}
.rj-warn-card__desc {
  font-size: 0.92rem;
  line-height: 1.6;
  color: #b06060;
  margin: 0;
}
.rj-warn-card:hover {
  border-color: #ff8f8f;
  box-shadow: 0 4px 14px rgba(220, 53, 69, 0.12);
}
@media (max-width: 640px) {
  .rj-warn-grid { grid-template-columns: 1fr; }
}

@media (max-width: 960px) {
  .rj-imagetext { grid-template-columns: 1fr; gap: var(--space-5); }
  .rj-imagetext__media img { aspect-ratio: 16/10; }
}

/* =========================================================
   移动端专项优化
   1) 首屏文字居中（不再贴左） 2) 首屏信任数据条隐藏
   3) 区块 H2 标题缩号保持单行 6) 底部 CTA 收口卡排版优化
   ========================================================= */
@media (max-width: 640px) {
  /* 1) 首屏文字居中，适配移动端阅读习惯 */
  .rj-hero__inner { padding: var(--space-6) 0; }
  /* 移动端：地图与波浪压暗，让位给居中文字 */
  .rj-hero__map svg { opacity: 0.5; }
  .rj-hero__waves { opacity: 0.85; }
  .rj-hero__content {
    max-width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .rj-hero__title { font-size: clamp(1.7rem, 7.6vw, 2.2rem); }
  .rj-hero__title-sub { font-size: clamp(1rem, 4.4vw, 1.25rem); }
  .rj-hero__lead { font-size: var(--text-md); }
  .rj-hero__actions { justify-content: center; }
  /* 文字居中后不再依赖左侧渐变遮罩，改为上下整体压暗保证可读 */
  .rj-hero__veil {
    background: linear-gradient(180deg, rgba(6, 15, 54, 0.42) 0%, rgba(6, 15, 54, 0.16) 100%);
  }

  /* 2) 首屏底部信任数据条：移动端隐藏 */
  .rj-stats { display: none; }

  /* 3) 区块 H2 标题缩号，保持单行不换行 */
  .section-title { font-size: clamp(1.3rem, 6.2vw, 1.6rem); }
  #services .section-head .section-title { font-size: clamp(1.35rem, 6.5vw, 1.7rem); }
  .rj-contact__title { font-size: clamp(1.15rem, 5.4vw, 1.4rem); }

  /* 6) 全站底部 CTA 收口卡：按钮整宽纵向排布，排版更稳 */
  .rj-contact__actions { flex-direction: column; width: 100%; }
  .rj-contact__actions .btn { width: 100%; }
  .rj-contact__sub { font-size: 0.95rem; }
  .rj-contact__meta { gap: var(--space-4); }
}

/* =========================================================
   404 页面（品牌化错误页）
   ========================================================= */
.rj-404__inner {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
  padding-top: var(--space-4);
  padding-bottom: var(--space-4);
}
.rj-404__code {
  font-family: var(--font-display);
  font-size: clamp(4.5rem, 16vw, 7rem);
  font-weight: 800;
  line-height: 1;
  letter-spacing: 0.02em;
  color: var(--blue);
  background: linear-gradient(135deg, var(--blue), #4d8bff);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: var(--space-3);
}
.rj-404__title {
  font-size: clamp(1.4rem, 4.6vw, 1.9rem);
  color: var(--ink);
  margin: var(--space-2) 0 var(--space-3);
  line-height: 1.35;
}
.rj-404__desc {
  color: var(--muted);
  font-size: var(--text-md);
  line-height: 1.7;
  max-width: 520px;
  margin: 0 auto var(--space-5);
}
.rj-404__actions {
  display: flex;
  gap: var(--space-3);
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: var(--space-5);
}
.rj-404__hotline {
  color: var(--muted);
  font-size: var(--text-sm);
}
.rj-404__hotline a { color: var(--blue); font-weight: 600; }

@media (max-width: 640px) {
  .rj-404__actions { flex-direction: column; width: 100%; }
  .rj-404__actions .btn { width: 100%; }
}