/* ============================================================
   各页面专用样式
   ============================================================ */

/* ---------- 侧边滚动导航点 ---------- */
.scroll-dots {
  position: fixed;
  left: 1.75rem;
  top: 50%;
  transform: translateY(-50%);
  z-index: 200;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}
.scroll-dot {
  width: 8px;
  height: 16px;
  border-radius: 999px;
  background: #fff;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: height 0.3s ease, background 0.3s ease, opacity 0.3s ease;
  flex-shrink: 0;
  opacity: 0.55;
  box-shadow: 0 1px 4px rgba(0,0,0,0.18);
}
.scroll-dot:hover {
  opacity: 0.85;
}
.scroll-dot.is-active {
  height: 36px;
  background: var(--slate-700, #334155);
  opacity: 1;
  box-shadow: 0 2px 6px rgba(0,0,0,0.22);
}
@media (max-width: 767px) {
  .scroll-dots { display: none; }
}

/* ---------- Home: Hero ---------- */
.hero-swiper,
.hero-swiper .swiper-wrapper,
.hero-swiper .hero-slide {
  width: 100%;
  height: 100%;
}
.hero-swiper .hero-slide { position: relative; }
.hero-swiper-pagination {
  bottom: 1rem !important;
  z-index: 10;
}
.hero-swiper-pagination .swiper-pagination-bullet {
  background: rgba(255,255,255,0.6);
  opacity: 1;
  width: 8px; height: 8px;
}
.hero-swiper-pagination .swiper-pagination-bullet-active {
  background: #fff;
  width: 24px;
  border-radius: 4px;
}
.hero {
  position: relative;
  width: 100%;
  overflow: hidden;
  aspect-ratio: 16 / 5;
  min-height: 240px;
}
.hero-bg {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  z-index: 0;
}
.hero-overlay {
  position: absolute; inset: 0;
  z-index: 1;
}
.hero-inner { z-index: 3; }
.hero-overlay.gradient-1 {
  background: linear-gradient(to right, rgba(15,23,42,0.85), rgba(30,41,59,0.7), rgba(26,74,138,0.6));
}
.hero-overlay.gradient-2 {
  background: linear-gradient(to top, rgba(15,23,42,0.4), transparent 50%);
}
.hero-inner {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  display: flex;
  align-items: center;
  padding: 2rem 0;
}
.hero-content { max-width: 1300px; margin: 0 auto; width: 100%; text-align: left; }
.hero-content .hero-actions { justify-content: flex-start; }
.hero-pill {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border: 1px solid rgba(255,255,255,0.2);
  background: rgba(255,255,255,0.1);
  backdrop-filter: blur(8px);
  color: #dbeafe;
  padding: 0.375rem 1rem;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 500;
  margin-bottom: 2rem;
}
.hero-title {
  font-size: clamp(2rem, 5vw, 56px);
  font-weight: 700;
  color: #fff;
  line-height: 1.15;
  letter-spacing: -0.02em;
  margin-bottom: 1.5rem;
}
.hero-title .accent { color: var(--brand-light); }
.hero-desc {
  font-size: 1.125rem;
  color: #fff;
  margin: 0 0 2.5rem;
  line-height: 1.65;
}
.hero-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 2.5rem;
}
.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  background: rgba(255,255,255,0.1);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,0.2);
  color: rgba(255,255,255,0.9);
  padding: 0.375rem 0.875rem;
  border-radius: 999px;
  font-size: 0.875rem;
}
.hero-badge .icon { color: #93c5fd; width: 14px; height: 14px; }
.hero-actions {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: flex-start;
  gap: 1rem;
}
.hero-actions .btn { width: auto; }

/* Announcement strip */
.announce {
  width: 100%;
  background: #fff;
  border-bottom: 1px solid var(--slate-100);
  box-shadow: var(--shadow-sm);
}
.announce-inner {
  padding: 0.875rem 0;
  display: flex;
  align-items: center;
}
.announce-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  color: var(--brand);
  font-weight: 500;
  background: var(--blue-50);
  padding: 0.25rem 0.75rem;
  border-radius: 999px;
  font-size: 0.75rem;
  margin-right: 1rem;
  flex-shrink: 0;
}
.announce-content {
  flex: 1;
  overflow: hidden;
  font-size: 0.875rem;
  color: var(--slate-600);
}
.announce-content a {
  display: inline-flex;
  align-items: center;
  transition: color var(--transition);
}
.announce-content a:hover { color: var(--brand); }
.announce-content .divider { margin: 0 1rem; color: var(--slate-200); }
.announce-content .date { color: var(--slate-400); font-size: 0.75rem; }

/* Quick services cards */
.svc-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 768px) { .svc-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .svc-grid { grid-template-columns: repeat(4, 1fr); } }

.svc-card {
  position: relative;
  background: #fff;
  border-radius: 18px;
  padding: 2.5rem 1.5rem 2rem;
  border: none;
  box-shadow: 0 4px 18px rgba(47, 111, 196, 0.07);
  transition: transform 0.35s ease, box-shadow 0.35s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  height: 100%;
  min-height: 280px;
  overflow: hidden;
  color: var(--slate-800);
}
.svc-card::before {
  content: '';
  position: absolute;
  top: -80px; right: -80px;
  width: 260px; height: 260px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(78, 146, 229, 0.06), transparent 65%);
  pointer-events: none;
  z-index: 0;
}
.svc-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 18px 38px rgba(47, 111, 196, 0.16);
}
.svc-card:hover::before {
  background: radial-gradient(circle, rgba(78, 146, 229, 0.12), transparent 65%);
}
.svc-card-icon {
  position: relative;
  width: 48px; height: 48px;
  border-radius: 0;
  background: none;
  border: none;
  box-shadow: none;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 0 1.25rem;
  color: var(--brand);
  z-index: 1;
  transition: transform 0.3s ease;
}
.svc-card-icon .icon { width: 40px; height: 40px; stroke-width: 1.6; }
.svc-card h4 {
  position: relative;
  z-index: 1;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--slate-800);
  margin-bottom: 0.75rem;
  letter-spacing: 0.04em;
}
.svc-card p {
  position: relative;
  z-index: 1;
  color: var(--slate-500);
  font-size: 0.8125rem;
  line-height: 1.75;
  margin: 0 0 1.5rem;
  max-width: 92%;
}
.svc-card-more {
  position: relative;
  z-index: 1;
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--brand);
  transition: gap 0.25s ease;
}
.svc-card:hover .svc-card-more { gap: 0.625rem; }
.svc-card-more .icon { width: 14px; height: 14px; }
.svc-card-foot { display: none; }

/* Qualification bar */
.qual-bar {
  width: 100%;
  background: #fff;
  padding: 4.5rem 0;
  position: relative;
}
.qual-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 480px) {
  .qual-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 768px) {
  .qual-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
  .qual-grid { grid-template-columns: repeat(4, 1fr); gap: 1.25rem; }

}
.qual-item {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: none;
  border-radius: 1rem;
  overflow: hidden;
  text-align: center;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
  box-shadow: 0 4px 16px rgba(15, 35, 80, 0.06);
}
.qual-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(78, 146, 229, 0.14);
}
.qual-thumb {
  background: #fff;
  padding: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
}
.qual-thumb-inner {
  width: 100%;
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.qual-thumb-inner img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
  transition: transform 0.4s ease;
}
.qual-item:hover .qual-thumb-inner img { transform: scale(1.04); }
.qual-caption {
  padding: 0.625rem 0.875rem 0.875rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: #374151;
  line-height: 1.55;
}

/* ============================================================
   荣誉证书一行 6 图布局
   ============================================================ */
.honor-row {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 1rem;
}
.honor-row-cell {
  display: block;
  border-radius: 0.625rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 3px 12px rgba(15, 35, 80, 0.07);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.honor-row-cell img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: contain;
  display: block;
  padding: 0.5rem;
}
.honor-row-cell:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(78, 146, 229, 0.15);
}
@media (max-width: 900px) {
  .honor-row { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 480px) {
  .honor-row { grid-template-columns: repeat(2, 1fr); }
}

/* 荣誉资质：发明专利 + 荣誉证书 双列 */
.honor-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2rem;
  align-items: start;
}
.honor-col-title {
  font-size: 1rem;
  font-weight: 700;
  color: var(--slate-700, #334155);
  margin: 0 0 0.875rem;
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding-bottom: 0.5rem;
  border-bottom: 2px solid var(--brand, #2563eb);
}
.honor-col-title i { color: var(--brand, #2563eb); font-size: 0.95rem; }
.honor-row--patent { grid-template-columns: repeat(6, 1fr); gap: 0.75rem; }
.honor-row--cert   { grid-template-columns: repeat(6, 1fr); gap: 0.75rem; }
@media (max-width: 900px) {
  .honor-two-col { grid-template-columns: 1fr; gap: 1.5rem; }
  .honor-row--patent { grid-template-columns: repeat(4, 1fr); }
  .honor-row--cert   { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 480px) {
  .honor-row--patent,
  .honor-row--cert { grid-template-columns: repeat(2, 1fr); }
}

/* ============================================================
   荣誉证书砌体布局：左大图 + 右侧 2 列小图（已弃用）
   ============================================================ */
.honor-mosaic {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 0.75rem;
  align-items: start;
}
.honor-mosaic-main {
  display: block;
  position: relative;
  border-radius: 0.75rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 4px 18px rgba(15, 35, 80, 0.08);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.honor-mosaic-main img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.honor-mosaic-main:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(78, 146, 229, 0.16);
}
.honor-mosaic-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0.75rem;
}
.honor-mosaic-cell {
  display: flex;
  flex-direction: column;
  position: relative;
  border-radius: 0.625rem;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 3px 12px rgba(15, 35, 80, 0.07);
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.honor-mosaic-cell img {
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: contain;
  display: block;
  padding: 0.5rem;
}
.honor-mosaic-cell:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(78, 146, 229, 0.15);
}
.honor-mosaic-caption {
  display: block;
  padding: 0.35rem 0.5rem 0.5rem;
  font-size: 0.72rem;
  font-weight: 500;
  color: #374151;
  text-align: center;
  line-height: 1.4;
  background: #f8fafd;
  border-top: 1px solid #edf0f7;
}
.honor-mosaic-main .honor-mosaic-caption {
  font-size: 0.8rem;
  padding: 0.5rem 0.75rem 0.65rem;
}
@media (max-width: 900px) {
  .honor-mosaic { grid-template-columns: 1fr; }
  .honor-mosaic-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 600px) {
  .honor-mosaic-grid { grid-template-columns: repeat(2, 1fr); }
}

/* Service flow */
.flow-wrap {
  position: relative;
  padding-top: 1rem;
}
.flow-line {
  display: none;
  position: absolute;
  top: 92px;
  left: 8%;
  right: 8%;
  height: 1px;
  background: linear-gradient(to right, transparent, var(--slate-200) 8%, var(--slate-200) 92%, transparent);
  z-index: 0;
}
@media (min-width: 1024px) {
  .flow-line { display: block; }
}
.flow-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  position: relative;
  z-index: 1;
}
@media (min-width: 640px) { .flow-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) {
  .flow-grid { grid-template-columns: repeat(5, 1fr); gap: 1.5rem; }
}
.flow-step {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  position: relative;
}
.flow-step .num {
  font-family: "Bebas Neue", "Oswald", "Arial Narrow", sans-serif;
  font-size: 3.5rem;
  font-weight: 700;
  color: var(--brand);
  line-height: 1;
  margin-bottom: 0.875rem;
  letter-spacing: 0.03em;
  background: none;
  border: none;
  width: auto; height: auto;
  display: block;
  box-shadow: none;
  order: 1;
  transition: transform 0.3s ease;
}
.flow-step::before {
  content: '';
  width: 14px; height: 14px;
  border-radius: 50%;
  background: #fff;
  border: 2px solid var(--brand);
  margin-bottom: 1.25rem;
  position: relative;
  z-index: 2;
  order: 2;
  transition: all 0.25s ease;
}
.flow-step:first-child::before {
  background: var(--brand);
}
.flow-step h5 { order: 3; }
.flow-step .desc { order: 4; }
.flow-step:hover .num { transform: translateY(-3px); }
.flow-step:hover::before { transform: scale(1.15); }
.flow-step h5 {
  color: var(--slate-800);
  font-weight: 600;
  font-size: 1rem;
  margin-bottom: 0.375rem;
  letter-spacing: 0.04em;
}
.flow-step .desc {
  color: var(--slate-500);
  font-size: 0.8125rem;
  padding: 0 0.5rem;
  line-height: 1.6;
}

/* ============================================================
   首页新闻 Banner（轮播 + tab列表）
   ============================================================ */
.news-banner-section {
  background: #fff;
  padding: 4.5rem 0;
}
.news-banner-wrap {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  padding: 0;
  background: #fff;
  border: 1px solid var(--slate-100);
  border-radius: 0.75rem;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(15, 35, 80, 0.04);
}
@media (min-width: 900px) {
  .news-banner-wrap { grid-template-columns: 5fr 7fr; }
}

/* 左侧轮播 */
.nb-slider {
  position: relative;
  overflow: hidden;
  aspect-ratio: 16 / 9;
  background: #0f1c36;
  flex-shrink: 0;
}
@media (min-width: 900px) {
  .nb-slider { aspect-ratio: auto; min-height: 380px; }
}
.nb-slides { width: 100%; height: 100%; }
.nb-slide {
  position: absolute; inset: 0;
  opacity: 0;
  transition: opacity 0.6s ease;
}
.nb-slide.is-active { opacity: 1; }
.nb-slide img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.nb-slide-cap {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  background: linear-gradient(transparent, rgba(5,15,40,0.82));
  padding: 2rem 1.25rem 0.875rem;
}
.nb-slide-cap a {
  color: #fff;
  font-size: 0.9375rem;
  font-weight: 500;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.nb-slide-cap a:hover { color: #a8c8f8; }
.nb-arrow {
  position: absolute;
  top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,0.18);
  border: none;
  color: #fff;
  width: 32px; height: 48px;
  font-size: 1.5rem;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background 0.2s;
  z-index: 2;
}
.nb-arrow:hover { background: rgba(255,255,255,0.35); }
.nb-arrow--prev { left: 0; border-radius: 0 4px 4px 0; }
.nb-arrow--next { right: 0; border-radius: 4px 0 0 4px; }
.nb-dots {
  position: absolute;
  bottom: 0.625rem; left: 50%; transform: translateX(-50%);
  display: flex; gap: 6px;
  z-index: 2;
}
.nb-dot {
  width: 7px; height: 7px;
  border-radius: 50%;
  background: rgba(255,255,255,0.45);
  cursor: pointer;
  transition: background 0.2s, transform 0.2s;
}
.nb-dot.is-active { background: #fff; transform: scale(1.3); }

/* 右侧列表 */
.nb-list {
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--slate-100);
}
.nb-tabs {
  display: flex;
  align-items: center;
  border-bottom: 2px solid #e8edf5;
  padding: 0.5rem 1.75rem 0;
  gap: 0;
}
.nb-tab {
  background: none;
  border: none;
  padding: 1.25rem 0.25rem;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--slate-800);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: color 0.2s, border-color 0.2s;
  white-space: nowrap;
  letter-spacing: 0.04em;
}
.nb-tab:hover { color: var(--brand); }
.nb-tab.is-active { color: var(--brand); border-bottom-color: var(--brand); }
.nb-more {
  margin-left: auto;
  font-size: 0.8125rem;
  color: var(--slate-400);
  white-space: nowrap;
  padding: 1.25rem 0;
}
.nb-more:hover { color: var(--brand); }
.nb-tab-panel { display: none; flex-direction: column; padding: 0.75rem 0; }
.nb-tab-panel.is-active { display: flex; }
.nb-row {
  display: flex;
  align-items: baseline;
  gap: 0.625rem;
  padding: 0.85rem 1.75rem;
  transition: background 0.15s;
  text-decoration: none;
}
.nb-row:hover { background: #f4f7fd; }
.nb-dot-mark {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--brand);
  flex-shrink: 0;
  margin-top: 0.35rem;
}
.nb-row-title {
  flex: 1;
  font-size: 0.875rem;
  color: var(--slate-700);
  line-height: 1.5;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 0.15s;
}
.nb-row:hover .nb-row-title { color: var(--brand); }
.nb-row-date {
  font-size: 0.75rem;
  color: var(--slate-400);
  flex-shrink: 0;
  white-space: nowrap;
}

/* News section on Home */
.news-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 2.5rem;
  gap: 1rem;
}
.news-more-btn {
  white-space: nowrap;
}
.news-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 1024px) {
  .news-grid { grid-template-columns: 5fr 7fr; gap: 2rem; }
}
.news-featured {
  border-radius: 24px;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--slate-100);
  box-shadow: var(--shadow-sm);
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
}
.news-featured:hover {
  box-shadow: var(--shadow-xl);
  transform: translateY(-4px);
}
.news-featured-img {
  aspect-ratio: 16 / 10;
  overflow: hidden;
  position: relative;
}
.news-featured-img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}
.news-featured:hover .news-featured-img img { transform: scale(1.05); }
.news-featured-img::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.5), transparent);
}
.news-featured-tag {
  position: absolute;
  top: 1rem; left: 1rem;
  background: var(--brand);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.25rem 0.625rem;
  border-radius: 0.375rem;
  z-index: 1;
}
.news-featured-body {
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  flex: 1;
}
.news-featured-body h4 {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--slate-800);
  line-height: 1.4;
  margin-bottom: 0.75rem;
  flex: 1;
  transition: color var(--transition);
}
.news-featured:hover h4 { color: var(--brand); }
.news-featured-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--slate-100);
}
.news-featured-foot .date {
  color: var(--slate-400);
  font-size: 0.75rem;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.news-featured-foot .more {
  color: var(--brand);
  font-size: 0.875rem;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  transition: gap var(--transition);
}
.news-featured:hover .news-featured-foot .more { gap: 0.5rem; }

.news-list-side { display: flex; flex-direction: column; gap: 1.25rem; }
.news-list-item {
  display: flex;
  background: #fff;
  border: 1px solid var(--slate-100);
  border-radius: var(--radius-xl);
  overflow: hidden;
  transition: all var(--transition);
}
.news-list-item:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
  border-color: rgba(78,146,229,0.2);
}
.news-list-item-thumb {
  width: 112px;
  flex-shrink: 0;
  overflow: hidden;
}
@media (min-width: 640px) { .news-list-item-thumb { width: 144px; } }
.news-list-item-thumb img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}
.news-list-item:hover .news-list-item-thumb img { transform: scale(1.05); }
.news-list-item-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 1.25rem;
  min-width: 0;
}
.news-list-item-body h4 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--slate-800);
  line-height: 1.4;
  margin-top: 0.25rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color var(--transition);
}
.news-list-item:hover .news-list-item-body h4 { color: var(--brand); }
.news-list-item-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 0.75rem;
}
.news-list-item-meta .date {
  color: var(--slate-400);
  font-size: 0.75rem;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}

/* Verify CTA strip on Home */
.verify-cta {
  width: 100%;
  padding: 5rem 0;
  background:
    radial-gradient(ellipse at 0% 20%, rgba(78, 146, 229, 0.18), transparent 55%),
    radial-gradient(ellipse at 90% 80%, rgba(168, 192, 240, 0.28), transparent 60%),
    linear-gradient(135deg, #eef4fc 0%, #e3ecfa 50%, #e8e6f8 100%);
}
.verify-cta-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.25rem;
  max-width: 720px;
  margin: 0 auto;
}
.verify-cta h4 {
  font-size: 1.875rem;
  font-weight: 700;
  color: var(--slate-800);
  margin: 0;
  letter-spacing: 0.04em;
}
.verify-cta p {
  color: var(--slate-500);
  font-size: 0.9375rem;
  line-height: 1.7;
  margin: 0;
}
.verify-cta-btn {
  margin-top: 0.75rem;
  background: #4e92e5;
  border-color: #4e92e5;
  color: #fff;
}
.verify-cta-btn:hover {
  background: #3b82e0;
  border-color: #3b82e0;
}

/* ---------- Services Overview ---------- */
.svc-overview-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media (min-width: 768px) { .svc-overview-grid { grid-template-columns: repeat(2, 1fr); } }

.svc-overview-card {
  background: var(--slate-50);
  border-radius: 24px;
  padding: 2rem;
  border: 1px solid var(--slate-100);
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
}
.svc-overview-card:hover {
  background: #fff;
  border-color: var(--slate-200);
  box-shadow: var(--shadow-lg);
}
.svc-overview-head {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
  margin-bottom: 1.5rem;
}
.svc-overview-icon {
  width: 56px; height: 56px;
  border-radius: 1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: all var(--transition);
}
.svc-overview-icon.blue { background: var(--blue-50); color: var(--brand); }
.svc-overview-icon.indigo { background: var(--indigo-50); color: var(--indigo-500); }
.svc-overview-icon.amber { background: var(--amber-50); color: var(--amber-500); }
.svc-overview-icon.rose { background: var(--rose-50); color: var(--rose-500); }
.svc-overview-card:hover .svc-overview-icon.blue { background: var(--brand); color: #fff; }
.svc-overview-card:hover .svc-overview-icon.indigo { background: var(--indigo-500); color: #fff; }
.svc-overview-card:hover .svc-overview-icon.amber { background: var(--amber-500); color: #fff; }
.svc-overview-card:hover .svc-overview-icon.rose { background: var(--rose-500); color: #fff; }
.svc-overview-icon .icon { width: 28px; height: 28px; }
.svc-overview-head h3 { font-size: 1.25rem; font-weight: 700; color: var(--slate-800); margin-bottom: 0.5rem; }
.svc-overview-head p { font-size: 0.875rem; color: var(--slate-500); line-height: 1.65; }
.svc-tag-row { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 1.5rem; }
.svc-scope-box {
  background: #fff;
  border-radius: var(--radius-xl);
  border: 1px solid var(--slate-100);
  padding: 1.25rem;
  margin-bottom: 1.5rem;
  flex: 1;
}
.svc-scope-box h5 {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--slate-700);
  margin-bottom: 0.75rem;
}
.svc-scope-list { display: flex; flex-direction: column; gap: 0.5rem; }
.svc-scope-list li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--slate-600);
}
.svc-scope-list .icon {
  color: var(--brand);
  width: 16px; height: 16px;
  margin-top: 2px;
  flex-shrink: 0;
}
.svc-detail-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: rgba(78,146,229,0.05);
  color: var(--brand);
  padding: 0.875rem 1.25rem;
  border-radius: var(--radius-xl);
  transition: all var(--transition);
  font-size: 0.875rem;
  font-weight: 500;
}
.svc-detail-link:hover { background: var(--brand); color: #fff; }

/* Standards grid */
.std-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 640px) { .std-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .std-grid { grid-template-columns: repeat(3, 1fr); } }
.std-card {
  background: #fff;
  border-radius: var(--radius-xl);
  border: 1px solid var(--slate-100);
  padding: 1.25rem;
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}
.std-card-scope {
  background: var(--blue-50);
  color: var(--brand);
  border: 1px solid var(--blue-100);
  padding: 0.25rem 0.625rem;
  border-radius: var(--radius);
  font-size: 0.75rem;
  font-weight: 700;
  flex-shrink: 0;
}
.std-card-code { font-weight: 600; color: var(--slate-800); font-size: 0.875rem; }
.std-card-name { color: var(--slate-500); font-size: 0.75rem; margin-top: 2px; }

/* Inline CTA strip */
.cta-strip {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
}
@media (min-width: 640px) { .cta-strip { flex-direction: row; } }
.cta-strip h4 { font-size: 1.25rem; font-weight: 700; color: var(--slate-800); margin-bottom: 0.5rem; }
.cta-strip p { color: var(--slate-500); font-size: 0.875rem; }
.cta-strip-actions { display: flex; gap: 0.75rem; flex-shrink: 0; flex-wrap: wrap; }

/* ---------- Service Detail ---------- */
.svc-detail-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media (min-width: 1024px) {
  .svc-detail-layout { grid-template-columns: 8fr 4fr; }
}
.svc-detail-main > * + * { margin-top: 2.5rem; }
.svc-detail-sec {
  background: #fff;
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  padding: 2rem;
  box-shadow: var(--shadow-sm);
}
.svc-detail-sec h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--slate-800);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.svc-detail-icon-box {
  width: 32px; height: 32px;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}
.svc-detail-icon-box .icon { width: 16px; height: 16px; }
.svc-detail-sec p { color: var(--slate-600); line-height: 1.7; }
.applicable-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem;
}
@media (min-width: 640px) { .applicable-grid { grid-template-columns: repeat(2, 1fr); } }
.applicable-item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  background: var(--slate-50);
  border-radius: var(--radius);
  padding: 1rem;
  border: 1px solid var(--slate-100);
}
.applicable-item .icon { color: var(--brand); width: 16px; height: 16px; margin-top: 2px; flex-shrink: 0; }
.applicable-item span { font-size: 0.875rem; color: var(--slate-700); }
.test-cat { margin-bottom: 1.5rem; }
.test-cat:last-child { margin-bottom: 0; }
.test-cat h3 {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--slate-700);
  margin-bottom: 0.75rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.test-cat h3::before {
  content: '';
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--brand);
}
.test-cat ul { padding-left: 1rem; }
.test-cat li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--slate-600);
  margin-bottom: 0.5rem;
}
.test-cat li::before {
  content: '';
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--slate-400);
  flex-shrink: 0;
  margin-top: 8px;
}
.svc-notes {
  background: var(--amber-50);
  border-radius: var(--radius-3xl);
  border: 1px solid var(--amber-100);
  padding: 2rem;
}
.svc-notes h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--slate-800);
  margin-bottom: 1.25rem;
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.svc-notes h2 .icon { color: var(--amber-500); width: 20px; height: 20px; }
.svc-notes ul { display: flex; flex-direction: column; gap: 0.75rem; }
.svc-notes li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.875rem;
  color: var(--slate-700);
}
.svc-notes li .num {
  width: 20px; height: 20px;
  border-radius: 50%;
  background: var(--amber-200);
  color: var(--amber-700);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 2px;
}

.svc-detail-side > * + * { margin-top: 1.5rem; }
.svc-side-card {
  background: #fff;
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  padding: 1.75rem;
  box-shadow: var(--shadow-sm);
}
.svc-side-card h3 {
  font-weight: 700;
  color: var(--slate-800);
  margin-bottom: 1.25rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.svc-side-card h3 .icon { color: var(--brand); width: 16px; height: 16px; }
.svc-side-card ul { display: flex; flex-direction: column; gap: 0.75rem; }
.svc-side-card li {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  font-size: 0.875rem;
  color: var(--slate-600);
}
.svc-side-card li > .icon-check { color: var(--emerald-500); width: 16px; height: 16px; margin-top: 2px; flex-shrink: 0; }
.std-side-item .code { font-weight: 600; color: var(--slate-800); }
.std-side-item .name { color: var(--slate-500); font-size: 0.75rem; margin-top: 2px; }
.proc-step {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.875rem;
  margin-bottom: 0.75rem;
}
.proc-step:last-child { margin-bottom: 0; }
.proc-step .num {
  width: 24px; height: 24px;
  border-radius: 50%;
  background: var(--blue-50);
  border: 1px solid var(--blue-100);
  color: var(--brand);
  font-weight: 700;
  font-size: 0.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.svc-cta-card {
  background: var(--brand);
  border-radius: var(--radius-3xl);
  padding: 1.75rem;
  color: #fff;
}
.svc-cta-card .icon-users { width: 32px; height: 32px; margin-bottom: 1rem; opacity: 0.8; }
.svc-cta-card h3 { font-weight: 700; margin-bottom: 0.5rem; }
.svc-cta-card p { color: #dbeafe; font-size: 0.875rem; margin-bottom: 1.5rem; line-height: 1.65; }
.svc-cta-card .btn-light {
  display: block;
  width: 100%;
  text-align: center;
  background: #fff;
  color: var(--brand);
  font-weight: 700;
  padding: 0.75rem;
  border-radius: var(--radius-xl);
  margin-bottom: 0.75rem;
  transition: background var(--transition);
}
.svc-cta-card .btn-light:hover { background: var(--blue-50); }
.svc-cta-card .tel-link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  color: #dbeafe;
  font-size: 0.875rem;
  transition: color var(--transition);
}
.svc-cta-card .tel-link:hover { color: #fff; }
.svc-hours-card {
  background: var(--slate-50);
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  padding: 1.5rem;
}
.svc-hours-card .hours-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--slate-600);
  font-size: 0.875rem;
  margin-bottom: 0.25rem;
}
.svc-hours-card .hours-row .icon { color: var(--brand); width: 16px; height: 16px; }
.svc-hours-card .hours-time {
  color: var(--slate-800);
  font-weight: 700;
  margin-left: 1.5rem;
}

/* ---------- Tabs ---------- */
.tabs-nav {
  display: flex;
  gap: 0.5rem;
  margin-bottom: 3rem;
  border-bottom: 1px solid var(--slate-200);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.tab-btn {
  flex-shrink: 0;
  padding: 0.75rem 1.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  border-bottom: 2px solid transparent;
  color: var(--slate-500);
  transition: color var(--transition), border-color var(--transition);
}
.tab-btn:hover { color: var(--slate-700); }
.tab-btn.is-active {
  border-bottom-color: var(--brand);
  color: var(--brand);
}
.tab-panel { display: none; }
.tab-panel.is-active { display: block; }

/* ---------- Qualifications ---------- */
.cert-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 768px) { .cert-grid { grid-template-columns: repeat(2, 1fr); } }
.cert-card {
  background: #fff;
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
  transition: box-shadow var(--transition);
}
.cert-card:hover { box-shadow: var(--shadow-md); }
.cert-head {
  padding: 1.25rem 2rem;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.cert-head.blue { background: var(--blue-50); border-color: var(--blue-100); }
.cert-head.emerald { background: var(--emerald-50); border-color: var(--emerald-100); }
.cert-head.violet { background: var(--violet-50); border-color: var(--violet-100); }
.cert-head.orange { background: var(--orange-50); border-color: var(--orange-100); }
.cert-head .name {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-weight: 700;
  color: var(--slate-800);
}
.cert-head.blue .icon { color: var(--brand); }
.cert-head.emerald .icon { color: var(--emerald-600); }
.cert-head.violet .icon { color: var(--violet-600); }
.cert-head.orange .icon { color: var(--orange-600); }
.cert-head .icon { width: 24px; height: 24px; }
.cert-badge {
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.25rem 0.625rem;
  border-radius: 999px;
  color: #fff;
}
.cert-badge.blue { background: var(--brand); }
.cert-badge.emerald { background: var(--emerald-600); }
.cert-badge.violet { background: var(--violet-600); }
.cert-badge.orange { background: var(--orange-500); }
.cert-body { padding: 1.5rem 2rem; }
.cert-body .desc { font-size: 0.875rem; color: var(--slate-600); line-height: 1.7; margin-bottom: 1rem; }
.cert-meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  padding-top: 0.5rem;
}
.cert-meta .label { font-size: 0.75rem; color: var(--slate-400); margin-bottom: 0.25rem; }
.cert-meta .value { font-size: 0.875rem; font-weight: 600; color: var(--slate-800); }
.cert-meta .col-2 { grid-column: span 2; }
.cert-cert-no {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  background: var(--slate-50);
  padding: 0.375rem 0.75rem;
  border-radius: var(--radius);
  display: inline-block;
  color: var(--slate-700);
  font-size: 0.875rem;
}
.cma-callout {
  background: var(--slate-50);
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  padding: 2rem;
  margin-top: 1rem;
}
.cma-callout h3 {
  font-weight: 700;
  color: var(--slate-800);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.cma-callout h3 .icon { color: var(--brand); width: 20px; height: 20px; }
.cma-callout p { font-size: 0.875rem; color: var(--slate-600); line-height: 1.7; }
.cma-callout .actions { margin-top: 1.5rem; display: flex; gap: 0.75rem; flex-wrap: wrap; }

.stat-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-bottom: 1rem;
}
@media (min-width: 640px) { .stat-grid { grid-template-columns: repeat(3, 1fr); } }
.stat-card {
  background: #fff;
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  padding: 2rem;
  box-shadow: var(--shadow-sm);
  text-align: center;
}
.stat-num {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 0.25rem;
  margin-bottom: 0.5rem;
}
.stat-num .big {
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--slate-800);
}
.stat-num .unit {
  font-size: 1.125rem;
  color: var(--brand);
  font-weight: 500;
}
.stat-card .label { font-weight: 600; color: var(--slate-700); margin-bottom: 0.25rem; }
.stat-card .desc { font-size: 0.75rem; color: var(--slate-500); }

.req-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media (min-width: 640px) { .req-grid { grid-template-columns: repeat(2, 1fr); } }
.req-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: var(--slate-50);
  border-radius: var(--radius);
  padding: 1rem;
  border: 1px solid var(--slate-100);
  font-size: 0.875rem;
  color: var(--slate-700);
}
.req-item .icon { color: var(--brand); width: 16px; height: 16px; flex-shrink: 0; }

/* Equipment table */
.eq-table { width: 100%; font-size: 0.875rem; border-collapse: collapse; }
.eq-table thead tr { border-bottom: 1px solid var(--slate-200); }
.eq-table thead th {
  text-align: left;
  padding: 0.75rem 1rem 0.75rem 0;
  color: var(--slate-500);
  font-weight: 600;
}
.eq-table tbody tr {
  border-top: 1px solid var(--slate-100);
  transition: background var(--transition);
}
.eq-table tbody tr:hover { background: var(--slate-50); }
.eq-table tbody td {
  padding: 0.875rem 1rem 0.875rem 0;
  color: var(--slate-600);
}
.eq-table tbody td:first-child { font-weight: 500; color: var(--slate-800); }
.eq-table tbody td.model {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--slate-500);
  font-size: 0.75rem;
}
.eq-status {
  background: var(--emerald-50);
  color: var(--emerald-600);
  border: 1px solid var(--emerald-100);
  font-size: 0.75rem;
  padding: 0.125rem 0.5rem;
  border-radius: 999px;
  display: inline-block;
}

.policy-quote {
  background: var(--blue-50);
  border: 1px solid var(--blue-100);
  border-radius: var(--radius-xl);
  padding: 1.5rem;
  text-align: center;
}
.policy-quote p {
  color: var(--brand);
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: 0.15em;
}
.quality-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 640px) { .quality-grid { grid-template-columns: repeat(2, 1fr); } }
.quality-card {
  background: #fff;
  border-radius: var(--radius-xl);
  border: 1px solid var(--slate-100);
  padding: 1.5rem;
  box-shadow: var(--shadow-sm);
}
.quality-card h4 {
  font-weight: 700;
  color: var(--slate-800);
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.quality-card h4::before {
  content: '';
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--brand);
}
.quality-card p { font-size: 0.875rem; color: var(--slate-600); line-height: 1.7; }

/* ---------- Government ---------- */
.gov-row {
  background: #fff;
  border-radius: var(--radius-xl);
  border: 1px solid var(--slate-100);
  padding: 1rem 1.5rem;
  display: flex;
  align-items: center;
  gap: 1.25rem;
  transition: all var(--transition);
  margin-bottom: 0.75rem;
}
.gov-row:hover { border-color: var(--slate-200); box-shadow: var(--shadow-sm); }
.gov-row .icon-file { color: var(--slate-400); width: 16px; height: 16px; flex-shrink: 0; }
.gov-row .title {
  flex: 1;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--slate-800);
  cursor: pointer;
  transition: color var(--transition);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.gov-row .title:hover { color: var(--brand); }
.gov-row .source { font-size: 0.75rem; color: var(--slate-400); flex-shrink: 0; }
.gov-row .date-row {
  font-size: 0.75rem;
  color: var(--slate-400);
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.gov-row .icon-ext, .gov-row .icon-chev {
  color: var(--slate-300);
  width: 16px; height: 16px;
  flex-shrink: 0;
  cursor: pointer;
  transition: color var(--transition);
}
.gov-row .icon-ext:hover, .gov-row .icon-chev:hover { color: var(--brand); }
.gov-row .source,
.gov-row .date-row {
  display: none;
}
@media (min-width: 640px) {
  .gov-row .source, .gov-row .date-row { display: inline-flex; }
}

.gov-warning {
  background: var(--amber-50);
  border: 1px solid var(--amber-100);
  border-radius: var(--radius-xl);
  padding: 1.25rem;
  margin-bottom: 2rem;
  font-size: 0.875rem;
  color: var(--amber-700);
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.price-table-wrap {
  background: #fff;
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.price-table { width: 100%; font-size: 0.875rem; border-collapse: collapse; }
.price-table thead tr {
  background: var(--slate-50);
  border-bottom: 1px solid var(--slate-200);
}
.price-table thead th {
  text-align: left;
  padding: 1rem;
  color: var(--slate-600);
  font-weight: 600;
}
.price-table thead th:first-child { padding-left: 1.5rem; }
.price-table tbody tr {
  border-top: 1px solid var(--slate-100);
  transition: background var(--transition);
}
.price-table tbody tr:hover { background: var(--slate-50); }
.price-table tbody td { padding: 0.875rem 1rem; color: var(--slate-600); }
.price-table tbody td:first-child {
  padding-left: 1.5rem;
  font-weight: 500;
  color: var(--slate-800);
}
.price-table .price { color: var(--brand); font-weight: 600; }
.price-table .note { color: var(--slate-400); font-size: 0.75rem; }
.price-table .md-only { display: none; }
@media (min-width: 768px) {
  .price-table .md-only { display: table-cell; }
}

.doc-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 0;
  border-bottom: 1px solid var(--slate-100);
}
.doc-row:last-child { border-bottom: none; }
.doc-row .icon-file { color: var(--brand); width: 16px; height: 16px; flex-shrink: 0; }
.doc-row .doc-name { font-size: 0.875rem; color: var(--slate-700); flex: 1; }
.doc-row .icon-dl {
  color: var(--slate-300);
  width: 16px; height: 16px;
  cursor: pointer;
  transition: color var(--transition);
}
.doc-row .icon-dl:hover { color: var(--brand); }

/* ---------- News ---------- */
.cat-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 2.5rem;
}
.cat-btn {
  padding: 0.5rem 1.25rem;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 500;
  border: 1px solid var(--slate-200);
  background: #fff;
  color: var(--slate-600);
  transition: all var(--transition);
}
.cat-btn:hover {
  border-color: rgba(78,146,229,0.3);
  color: var(--brand);
}
.cat-btn.is-active {
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
  box-shadow: var(--shadow-sm);
}

/* ---------- News v2：单列卡片列表 + 顶部药丸切换 ---------- */
.cat-filter--line {
  display: flex;
  align-items: center;
  gap: 1.75rem;
  border-bottom: 1px solid var(--slate-200);
  padding-bottom: 1rem;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
}
@media (max-width: 767px) {
  .cat-filter--line { justify-content: center; gap: 0.5rem; }
}
.cat-pill {
  padding: 0.4rem 2rem;
  border-radius: 999px;
  font-size: 1rem;
  font-weight: 500;
  background: transparent;
  color: var(--slate-700);
  border: 0;
  cursor: pointer;
  transition: all var(--transition);
  min-width: 6rem;
  text-align: center;
}
.cat-pill:hover { color: var(--brand); }
.cat-pill.is-active {
  background: var(--brand);
  color: #fff;
  box-shadow: 0 4px 12px rgba(78,146,229,0.25);
}

.news-list-v2 {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}
.news-card-v2 {
  display: grid;
  grid-template-columns: 200px 1fr 60px;
  gap: 1.75rem;
  align-items: center;
  padding: 1.25rem;
  border-radius: 0.75rem;
  background: transparent;
  transition: all var(--transition);
}
@media (max-width: 720px) {
  .news-card-v2 {
    grid-template-columns: 1fr;
    gap: 0.75rem;
    padding: 0.75rem;
  }
  .news-card-v2 .news-card-v2-arrow { display: none; }
  .news-card-v2-thumb { aspect-ratio: 16 / 7; }
}
.news-card-v2:hover {
  background: rgba(78,146,229,0.04);
}

.news-card-v2-thumb {
  width: 100%;
  aspect-ratio: 4 / 2.7;
  overflow: hidden;
  border-radius: 0.5rem;
  background: var(--slate-100);
}
.news-card-v2-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}
.news-card-v2:hover .news-card-v2-thumb img { transform: scale(1.04); }

.news-card-v2-body { min-width: 0; }
.news-card-v2-body h3 {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--slate-800);
  line-height: 1.5;
  margin-bottom: 0.5rem;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color var(--transition);
}
.news-card-v2:hover .news-card-v2-body h3 { color: var(--brand); }
.news-card-v2-date {
  font-size: 0.875rem;
  color: var(--slate-500);
  margin-bottom: 0.75rem;
}
.news-card-v2-body p {
  font-size: 0.875rem;
  color: var(--slate-500);
  line-height: 1.7;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.news-card-v2-arrow {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--slate-100);
  color: var(--slate-400);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: end;
  font-size: 0.875rem;
  transition: all var(--transition);
}
.news-card-v2:hover .news-card-v2-arrow {
  background: var(--brand);
  color: #fff;
  box-shadow: 0 6px 16px rgba(78,146,229,0.35);
}

.news-featured-full {
  background: #fff;
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  overflow: hidden;
  transition: all var(--transition);
  margin-bottom: 2rem;
  display: flex;
  flex-direction: column;
}
@media (min-width: 768px) {
  .news-featured-full { flex-direction: row; }
}
.news-featured-full:hover {
  border-color: rgba(78,146,229,0.2);
  box-shadow: var(--shadow-lg);
}
.news-featured-full-cover {
  background: linear-gradient(135deg, var(--slate-700), var(--slate-600), var(--brand-deep));
  position: relative;
  overflow: hidden;
  padding: 2rem;
  display: flex;
  align-items: flex-end;
  aspect-ratio: 16/9;
}
@media (min-width: 768px) {
  .news-featured-full-cover {
    width: 20rem;
    aspect-ratio: auto;
    flex-shrink: 0;
  }
}
@media (min-width: 1024px) {
  .news-featured-full-cover { width: 24rem; }
}
.news-featured-full-cover::before {
  content: '';
  position: absolute; inset: 0;
  background-image: repeating-linear-gradient(45deg, #fff 0, #fff 1px, transparent 0, transparent 50%);
  background-size: 12px 12px;
  opacity: 0.05;
}
.news-featured-full-cover .pin {
  position: relative;
  z-index: 1;
  background: var(--brand);
  color: #fff;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 0.25rem 0.625rem;
  border-radius: 0.375rem;
}
.news-featured-full-body {
  flex: 1;
  padding: 2rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.news-featured-full-meta {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.news-featured-full-meta .date-row {
  font-size: 0.75rem;
  color: var(--slate-400);
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.news-featured-full-body h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--slate-800);
  line-height: 1.4;
  margin-bottom: 1rem;
  transition: color var(--transition);
}
.news-featured-full:hover h2 { color: var(--brand); }
.news-featured-full-body .summary {
  font-size: 0.875rem;
  color: var(--slate-500);
  line-height: 1.65;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-featured-full-body .more {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--brand);
  font-weight: 500;
  font-size: 0.875rem;
  margin-top: 1.5rem;
}

.news-page-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
}
@media (min-width: 1024px) {
  .news-page-layout { grid-template-columns: 8fr 4fr; gap: 2.5rem; }
}
.news-page-list { display: flex; flex-direction: column; gap: 1rem; }

.news-line-item {
  background: #fff;
  border: 1px solid var(--slate-100);
  border-radius: var(--radius-xl);
  padding: 1.25rem 1.75rem;
  transition: all var(--transition);
}
.news-line-item:hover {
  border-color: rgba(78,146,229,0.2);
  box-shadow: var(--shadow-md);
}
.news-line-inner {
  display: flex;
  align-items: flex-start;
  gap: 1.25rem;
}
.news-line-date {
  display: none;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: var(--slate-50);
  border-radius: var(--radius);
  border: 1px solid var(--slate-100);
  padding: 0.75rem;
  width: 72px;
  flex-shrink: 0;
  transition: all var(--transition);
}
@media (min-width: 640px) { .news-line-date { display: flex; } }
.news-line-item:hover .news-line-date {
  background: #fff;
  border-color: rgba(78,146,229,0.2);
}
.news-line-date .d {
  color: var(--brand);
  font-weight: 700;
  font-size: 1.5rem;
  line-height: 1;
  margin-bottom: 2px;
}
.news-line-date .ym { color: var(--slate-400); font-size: 10px; }
.news-line-body { flex: 1; min-width: 0; }
.news-line-meta {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.news-line-meta .date-mobile {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  color: var(--slate-400);
  font-size: 0.75rem;
}
@media (min-width: 640px) { .news-line-meta .date-mobile { display: none; } }
.news-line-body h3 {
  font-weight: 600;
  color: var(--slate-800);
  line-height: 1.4;
  margin-bottom: 0.5rem;
  transition: color var(--transition);
}
.news-line-item:hover h3 { color: var(--brand); }
.news-line-body .summary {
  font-size: 0.875rem;
  color: var(--slate-500);
  line-height: 1.65;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.news-line-chev {
  color: var(--slate-300);
  width: 16px; height: 16px;
  flex-shrink: 0;
  margin-top: 4px;
  transition: color var(--transition);
}
.news-line-item:hover .news-line-chev { color: var(--brand); }

.news-side-card {
  background: #fff;
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  padding: 1.75rem;
  box-shadow: var(--shadow-sm);
}
.news-side-card h3 {
  font-weight: 700;
  color: var(--slate-800);
  margin-bottom: 1.25rem;
}
.hot-list { display: flex; flex-direction: column; gap: 1rem; }
.hot-list a {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  transition: color var(--transition);
}
.hot-list .dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--slate-300);
  flex-shrink: 0;
  margin-top: 8px;
  transition: background var(--transition);
}
.hot-list a:hover { color: var(--brand); }
.hot-list a:hover .dot { background: var(--brand); }
.hot-list p {
  font-size: 0.875rem;
  color: var(--slate-700);
  line-height: 1.4;
  margin-bottom: 4px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color var(--transition);
}
.hot-list a:hover p { color: var(--brand); }
.hot-list .d { font-size: 0.75rem; color: var(--slate-400); }
.cta-side-card {
  background: var(--brand);
  border-radius: var(--radius-3xl);
  padding: 1.75rem;
  color: #fff;
}
.cta-side-card h3 { font-weight: 700; margin-bottom: 0.75rem; }
.cta-side-card p { color: #dbeafe; font-size: 0.875rem; margin-bottom: 1.25rem; line-height: 1.65; }
.cta-side-card .btn-fill {
  display: block;
  width: 100%;
  text-align: center;
  background: #fff;
  color: var(--brand);
  font-weight: 700;
  padding: 0.75rem;
  border-radius: var(--radius-xl);
  font-size: 0.875rem;
  transition: background var(--transition);
}
.cta-side-card .btn-fill:hover { background: var(--blue-50); }

/* ---------- News Detail ---------- */
.news-detail-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media (min-width: 1024px) {
  .news-detail-layout { grid-template-columns: 8fr 4fr; }
}
.article-card {
  background: #fff;
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  box-shadow: var(--shadow-sm);
  padding: 2.5rem;
}
.article-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.5rem;
}
.article-meta .meta-text {
  color: var(--slate-400);
  font-size: 1rem;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.article-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.4;
  margin-bottom: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px solid var(--slate-100);
}
.article-body { color: var(--slate-700); }
.article-body > * + * { margin-top: 1.5rem; }
.article-body p {
  color: var(--slate-700);
  font-size: 1rem;
  line-height: 1.85;
  text-align: justify;
  text-indent: 2em;
}
.article-body img {
  display: block;
  max-width: 100%;
  height: auto;
  margin-left: auto;
  margin-right: auto;
}

.article-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--slate-100);
  margin-top: 2.5rem;
  padding-top: 1.5rem;
}
.article-actions .left { display: flex; gap: 0.75rem; }
.article-actions button {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--slate-500);
  transition: color var(--transition);
}
.article-actions button:hover { color: var(--brand); }
.article-actions .back-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--brand);
  font-weight: 500;
  transition: color var(--transition);
}
.article-actions .back-link:hover { color: var(--brand-hover); }

.prev-next-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  margin-top: 1.5rem;
}
@media (min-width: 640px) {
  .prev-next-grid { grid-template-columns: 1fr 1fr; }
}
.prev-next-card {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  background: #fff;
  border-radius: var(--radius-xl);
  border: 1px solid var(--slate-100);
  padding: 1.25rem;
  transition: all var(--transition);
}
.prev-next-card:hover {
  border-color: rgba(78,146,229,0.2);
  box-shadow: var(--shadow-sm);
}
.prev-next-card .icon {
  width: 16px; height: 16px;
  color: var(--slate-400);
  flex-shrink: 0;
  transition: color var(--transition);
}
.prev-next-card:hover .icon { color: var(--brand); }
.prev-next-card .label { font-size: 0.75rem; color: var(--slate-400); margin-bottom: 0.25rem; }
.prev-next-card .title {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--slate-700);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color var(--transition);
}
.prev-next-card:hover .title { color: var(--brand); }
.prev-next-card.next { flex-direction: row-reverse; text-align: right; }

/* ---------- News Detail v2：单栏，无侧边 ---------- */
.article-card--full {
  max-width: 1000px;
  margin: 0 auto;
}
.article-card--full .article-title {
  font-size: 1.6rem;
  font-weight: 700;
  color: #0f172a;
  line-height: 1.45;
  margin-bottom: 1rem;
  padding-bottom: 0;
  border-bottom: 0;
  text-align: center;
}
.article-card--full .article-meta {
  justify-content: center;
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--slate-100);
}

.prev-next-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-top: 3rem;
  padding-top: 1.5rem;
  border-top: 1px solid var(--slate-100);
}
@media (max-width: 640px) {
  .prev-next-row { grid-template-columns: 1fr; gap: 0.75rem; }
}
.prev-next-line {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: var(--slate-600);
  line-height: 1.6;
  transition: color var(--transition);
  min-width: 0;
}
.prev-next-line + .prev-next-line { justify-content: flex-end; text-align: right; }
.prev-next-line .label {
  color: var(--slate-500);
  flex-shrink: 0;
}
.prev-next-line .title {
  color: var(--slate-700);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color var(--transition);
  min-width: 0;
}
.prev-next-line:hover .title { color: var(--brand); }

.aside-card-list { display: flex; flex-direction: column; gap: 1.25rem; }
.aside-card-list a p {
  font-size: 0.875rem;
  color: var(--slate-700);
  line-height: 1.4;
  margin-bottom: 4px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color var(--transition);
}
.aside-card-list a:hover p { color: var(--brand); }
.aside-card-list .d {
  font-size: 0.75rem;
  color: var(--slate-400);
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.quick-links { display: flex; flex-direction: column; }
.quick-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.625rem 0;
  border-bottom: 1px solid var(--slate-100);
  font-size: 0.875rem;
  color: var(--slate-600);
  transition: color var(--transition);
}
.quick-links a:last-child { border-bottom: none; }
.quick-links a:hover { color: var(--brand); }
.quick-links .icon {
  color: var(--slate-300);
  transition: color var(--transition);
}
.quick-links a:hover .icon { color: var(--brand); }

/* ---------- Contact ---------- */
.contact-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}
@media (min-width: 1024px) {
  .contact-layout { grid-template-columns: 5fr 7fr; }
}
.contact-info-card {
  background: #fff;
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  box-shadow: var(--shadow-sm);
  padding: 2rem;
}
.contact-info-card h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--slate-800);
  margin-bottom: 1.5rem;
}
.contact-info-list { display: flex; flex-direction: column; gap: 1.25rem; }
.contact-info-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
}
.contact-info-icon {
  width: 40px; height: 40px;
  background: var(--blue-50);
  border-radius: var(--radius);
  border: 1px solid var(--blue-100);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brand);
  flex-shrink: 0;
}
.contact-info-icon .icon { width: 20px; height: 20px; }
.contact-info-item .label { font-size: 0.75rem; color: var(--slate-400); margin-bottom: 0.25rem; }
.contact-info-item .big {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--slate-800);
}
.contact-info-item .mid {
  font-size: 1rem;
  font-weight: 600;
  color: var(--slate-800);
}
.contact-info-item .small {
  font-size: 0.875rem;
  color: var(--slate-500);
  margin-top: 2px;
}
.contact-info-item .hint {
  font-size: 0.75rem;
  color: var(--slate-400);
  margin-top: 4px;
}

.map-card {
  background: #fff;
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}
.map-area {
  aspect-ratio: 16/9;
  background: linear-gradient(135deg, var(--slate-200), var(--slate-300));
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 0.5rem;
}
.map-area .icon { color: var(--brand); width: 40px; height: 40px; }
.map-area .label { color: var(--slate-600); font-weight: 500; font-size: 0.875rem; }
.map-area .sub { color: var(--slate-400); font-size: 0.75rem; }
.map-card-body { padding: 1.25rem; }
.map-card-body p { font-size: 0.875rem; color: var(--slate-500); line-height: 1.65; }
.map-card-body p strong { color: var(--slate-700); }
.map-card-body p + p { margin-top: 0.5rem; }

.dept-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 640px) { .dept-grid { grid-template-columns: repeat(2, 1fr); } }
.dept-card {
  background: var(--slate-50);
  border-radius: var(--radius-xl);
  border: 1px solid var(--slate-100);
  padding: 1.5rem;
  transition: all var(--transition);
}
.dept-card:hover {
  border-color: rgba(78,146,229,0.2);
  background: rgba(239,246,254, 0.6);
}
.dept-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.dept-head-icon {
  width: 32px; height: 32px;
  background: var(--blue-100);
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brand);
  flex-shrink: 0;
}
.dept-head-icon .icon { width: 16px; height: 16px; }
.dept-head-name { font-weight: 700; color: var(--slate-800); font-size: 0.875rem; }
.dept-tel {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--brand);
  font-weight: 700;
  font-size: 1rem;
  margin-bottom: 0.5rem;
}
.dept-desc { font-size: 0.75rem; color: var(--slate-500); line-height: 1.65; margin-bottom: 6px; }
.dept-hours {
  font-size: 0.75rem;
  color: var(--slate-400);
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
}
.dept-tip {
  margin-top: 2rem;
  background: var(--blue-50);
  border: 1px solid var(--blue-100);
  border-radius: var(--radius-xl);
  padding: 1.25rem;
  font-size: 0.875rem;
  color: var(--slate-600);
  line-height: 1.7;
}
.dept-tip strong { color: var(--brand); }
.dept-tip a { color: var(--brand); font-weight: 500; }
.dept-tip a:hover { text-decoration: underline; }

/* ---------- 面包屑导航 ---------- */
.breadcrumb-bar {
  background: var(--slate-50);
  border-bottom: 1px solid var(--slate-200);
  padding: 0.55rem 0;
  font-size: 0.8125rem;
}
.breadcrumb-nav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.25rem;
  color: var(--slate-500);
}
.breadcrumb-nav a {
  color: var(--slate-500);
  text-decoration: none;
  transition: color 0.15s;
}
.breadcrumb-nav a:hover { color: var(--brand); }
.breadcrumb-sep { margin: 0 0.15rem; color: var(--slate-400); }
.breadcrumb-nav span:last-child { color: var(--slate-700); font-weight: 500; }

/* ---------- 页面分区背景：白 / 灰 ---------- */
.page-band { width: 100%; }
.page-band > .container {
  padding-top: 4.5rem;
  padding-bottom: 4.5rem;
}
.page-band-white { background: #ffffff; }
.page-band-gray { background: var(--slate-50); }

/* ---------- 通用：居中标题 + 蓝色下划线 ---------- */
.section-title {
  text-align: center;
  margin: 0 0 2.5rem;
}
.section-title h3 {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--slate-800);
  letter-spacing: 0.04em;
  position: relative;
  display: inline-block;
  padding-bottom: 0.75rem;
}
.section-title h3::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 56px;
  height: 3px;
  border-radius: 2px;
  background: var(--brand);
}

/* 联系方式标题用同样的居中样式 */
.about-section > .about-section-head {
  text-align: center;
  margin-bottom: 2.5rem;
}
.about-section > .about-section-head h3 {
  font-size: 1.75rem;
  font-weight: 700;
  color: var(--slate-800);
  letter-spacing: 0.04em;
  position: relative;
  display: inline-block;
  padding-bottom: 0.75rem;
}
.about-section > .about-section-head h3::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 56px;
  height: 3px;
  border-radius: 2px;
  background: var(--brand);
}

/* ---------- 联系方式 两行布局：总部 / 分中心 ---------- */
.hq-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: stretch;
  background: #fff;
  border: 1px solid var(--slate-100);
  border-radius: 1rem;
  padding: 1.75rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 4px 12px rgba(15, 35, 80, 0.04);
}
@media (min-width: 900px) {
  .hq-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 2.5rem; padding: 1.75rem; }
}
.hq-row-info { padding: 0.5rem 0; }
.hq-row-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--slate-800);
  letter-spacing: -0.01em;
  margin-bottom: 1.75rem;
  position: relative;
  padding-left: 0.875rem;
}
.hq-row-title::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 18px;
  background: var(--brand);
  border-radius: 2px;
}
.hq-row-meta {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  font-size: 1rem;
  padding-left: 0.875rem;
}
.hq-row-meta li {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  line-height: 1.85;
}
.hq-row-meta li::before {
  font-family: "Font Awesome 6 Free";
  font-weight: 900;
  color: var(--brand);
  font-size: 1rem;
  flex-shrink: 0;
  width: 1rem;
  text-align: center;
  /* 与第一行文字中线对齐：line-height(1.85em)/2 ≈ 0.925em，扣除图标自身高度(1em)的一半 */
  line-height: 1.85;
}
.hq-row-meta li:nth-child(1)::before { content: "\f3c5"; } /* map-marker */
.hq-row-meta li:nth-child(2)::before { content: "\f095"; } /* phone */
.hq-row-meta li:nth-child(3)::before { content: "\f0e0"; } /* envelope */
.hq-row-meta .k {
  color: var(--slate-500);
  flex-shrink: 0;
  white-space: nowrap;
}
.hq-row-meta .v { color: var(--slate-700); }
.hq-row-meta a { color: var(--slate-700); transition: color var(--transition); }
.hq-row-meta a:hover { color: var(--brand); }

.hq-row-map {
  width: 100%;
  border-radius: 0.75rem;
  overflow: hidden;
  border: 1px solid var(--slate-200);
  background: #f7f9fc;
  position: relative;
  min-height: 300px;
}
.hq-row-map img {
  width: 100%;
  height: 100%;
  min-height: 300px;
  object-fit: cover;
  display: block;
}
.hq-row-map .map-fallback {
  width: 100%;
  height: 100%;
  min-height: 300px;
  background-color: #f7f9fc;
  background-image:
    linear-gradient(to right, #e6ecf3 1px, transparent 1px),
    linear-gradient(to bottom, #e6ecf3 1px, transparent 1px);
  background-size: 60px 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}
.hq-row-map .map-pin-tag {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: var(--brand);
  color: #fff;
  padding: 0.625rem 1.25rem 0.625rem 1rem;
  border-radius: 999px;
  font-size: 0.9375rem;
  font-weight: 600;
  box-shadow: 0 10px 24px rgba(78, 146, 229, 0.4);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  pointer-events: none;
  letter-spacing: 0.04em;
}
.hq-row-map .map-pin-tag::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: -8px;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 8px solid transparent;
  border-right: 8px solid transparent;
  border-top: 8px solid var(--brand);
}
.hq-row-map .map-pin-tag i { font-size: 0.875rem; line-height: 1; }

/* 第二行：三个分中心单元 */
.branch-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 768px) { .branch-row { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .branch-row { grid-template-columns: repeat(3, 1fr); } }

.branch-cell {
  background: #fff;
  border: 1px solid var(--slate-100);
  border-radius: 1rem;
  padding: 1.75rem;
  transition: all var(--transition);
  display: flex;
  flex-direction: column;
  box-shadow: 0 2px 8px rgba(15, 35, 80, 0.03);
}
.branch-cell:hover {
  border-color: rgba(78, 146, 229, 0.25);
  box-shadow: 0 10px 24px rgba(15, 35, 80, 0.06);
  transform: translateY(-2px);
}
.branch-cell-head {
  display: flex;
  align-items: center;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--slate-800);
  margin-bottom: 1.25rem;
}
.branch-cell-info {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
  font-size: 1rem;
  color: var(--slate-700);
  margin-bottom: 1.25rem;
}
.branch-cell-info li {
  display: flex;
  align-items: center;
  gap: 0.625rem;
}
.branch-cell-info i {
  width: 1rem;
  text-align: center;
  color: var(--brand);
  font-size: 0.875rem;
}
.branch-cell-info a { color: inherit; transition: color var(--transition); }
.branch-cell-info a:hover { color: var(--brand); text-decoration: underline; }
.branch-cell-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.25rem;
}
/* 辖区标签：去掉边框，蓝色定位图标 + 灰色文字 */
.branch-cell-tags .biz-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.875rem;
  color: var(--slate-600);
  padding: 0;
  background: transparent;
  border: 0;
  border-radius: 0;
}
.branch-cell-tags .biz-tag i {
  font-size: 0.875rem;
  color: var(--brand);
}

/* ============================================================
   在线服务 / 报告查询 verify.html
   ============================================================ */
.verify-hero {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 3rem;
}
.verify-hero-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.375rem 0.875rem;
  border-radius: 999px;
  background: rgba(78, 146, 229, 0.1);
  color: var(--brand);
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  margin-bottom: 1.25rem;
}
.verify-hero h2 {
  font-size: 1.625rem;
  font-weight: 600;
  color: var(--slate-800);
  margin-bottom: 0.875rem;
  letter-spacing: -0.01em;
}
@media (min-width: 768px) {
  .verify-hero h2 { font-size: 2rem; }
}
.verify-hero p {
  font-size: 0.9375rem;
  color: var(--slate-500);
  line-height: 1.85;
}

.verify-duo {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem;
  margin-bottom: 3rem;
}
@media (min-width: 900px) {
  .verify-duo { grid-template-columns: 1fr 1fr; gap: 2rem; }
}

.verify-card {
  background: #fff;
  border-radius: 1.125rem;
  padding: 2rem;
  border: 1px solid var(--slate-100);
  box-shadow: 0 10px 28px rgba(15, 35, 80, 0.05);
  display: flex;
  flex-direction: column;
}
.verify-card-head {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px dashed rgba(78, 146, 229, 0.2);
  margin-bottom: 1.5rem;
}
.verify-card-step {
  width: 44px;
  height: 44px;
  border-radius: 0.625rem;
  background: var(--brand);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  box-shadow: 0 6px 14px rgba(78, 146, 229, 0.3);
  flex-shrink: 0;
}
.verify-card-head h3 {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--slate-800);
  margin-bottom: 0.125rem;
}
.verify-card-head p {
  font-size: 0.875rem;
  color: var(--slate-500);
}

.input-with-icon {
  position: relative;
}
.input-with-icon i {
  position: absolute;
  left: 1rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--brand);
  font-size: 0.875rem;
  pointer-events: none;
}
.input-with-icon .form-control {
  padding-left: 2.5rem;
}
.verify-card .form-control {
  padding-top: 0.55rem;
  padding-bottom: 0.55rem;
  font-size: 0.875rem;
}

.verify-submit {
  margin-top: 1rem;
  width: 100%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.625rem;
  padding: 1.125rem 1.5rem;
  border-radius: 0.75rem;
  background: linear-gradient(135deg, var(--brand) 0%, var(--brand-deep) 100%);
  color: #fff;
  font-size: 1.0625rem;
  font-weight: 700;
  cursor: pointer;
  transition: all var(--transition);
  box-shadow: 0 12px 28px rgba(78, 146, 229, 0.4);
  border: 0;
  letter-spacing: 0.03em;
}
.verify-submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 16px 36px rgba(78, 146, 229, 0.5);
}
.verify-submit:disabled {
  opacity: 0.7;
  cursor: not-allowed;
  transform: none;
}
.verify-submit i { font-size: 1.0625rem; }

/* ---------- 扫码区 ---------- */
.verify-scan-stage {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.5rem;
}
.scan-frame {
  position: relative;
  width: 220px;
  height: 220px;
  border-radius: 1rem;
  padding: 0.875rem;
  background: linear-gradient(135deg, #f3f8ff 0%, #e6effa 100%);
  border: 1px solid rgba(78, 146, 229, 0.18);
}
.scan-qr {
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 0.5rem;
  overflow: hidden;
  background: #fff;
}
.scan-qr svg { display: block; width: 100%; height: 100%; }

/* ---- 示例弹窗 ---- */
.example-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 8000;
  align-items: center;
  justify-content: center;
}
.example-modal.is-open { display: flex; }
.example-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10,20,40,0.7);
}
.example-modal-box {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(680px, 94vw);
  max-height: 90vh;
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(10,20,40,0.28);
  animation: pdf-modal-in 0.2s ease;
}
.example-modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 1.25rem;
  height: 48px;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
  flex-shrink: 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: #1e293b;
}
.example-modal-close {
  width: 32px;
  height: 32px;
  border: none;
  background: none;
  cursor: pointer;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  font-size: 1rem;
  transition: background 0.15s, color 0.15s;
}
.example-modal-close:hover { background: #fee2e2; color: #dc2626; }
.example-modal-body {
  overflow-y: auto;
  padding: 1.25rem;
  background: #f8fafc;
  display: flex;
  align-items: center;
  justify-content: center;
}
.example-modal-body img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 2px 12px rgba(0,0,0,0.1);
  display: block;
}

/* ---- 二维码上传 / 摄像头扫描 ---- */
.qr-upload-zone {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 220px;
  border: 2px dashed #c7d9f5;
  border-radius: 12px;
  background: #f7faff;
  transition: border-color 0.2s, background 0.2s;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.qr-upload-zone.is-drag {
  border-color: var(--brand, #2563eb);
  background: #eff6ff;
}
.qr-upload-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 1.5rem;
}
.qr-upload-icon {
  font-size: 2.5rem;
  color: #93b8e8;
  margin-bottom: 0.25rem;
}
.qr-upload-text {
  font-size: 0.9375rem;
  font-weight: 600;
  color: #1e3a5f;
  margin: 0;
}
.qr-upload-sub {
  font-size: 0.8125rem;
  color: #94a3b8;
  margin: 0;
}
.qr-upload-btn {
  margin-top: 0.75rem;
  padding: 0.5rem 1.25rem;
  background: var(--brand, #2563eb);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  transition: background 0.15s;
}
.qr-upload-btn:hover { background: #1d4ed8; }
/* 预览 */
.qr-preview {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  padding: 1.25rem;
  width: 100%;
}
.qr-preview img {
  max-width: 180px;
  max-height: 180px;
  border-radius: 8px;
  border: 1px solid #e2e8f0;
  object-fit: contain;
}
.qr-preview-status { font-size: 0.875rem; }
.qr-status-scanning { color: #64748b; }
.qr-status-ok  { color: #16a34a; font-weight: 600; }
.qr-status-err { color: #dc2626; font-weight: 600; }
.qr-reupload {
  font-size: 0.8125rem;
  color: #64748b;
  background: none;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  padding: 0.375rem 0.875rem;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  transition: border-color 0.15s, color 0.15s;
}
.qr-reupload:hover { border-color: #94a3b8; color: #334155; }
/* 手机入口 */
.qr-mobile-entry {
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  padding: 1.5rem;
  width: 100%;
}
/* 摄像头 */
.qr-camera-zone {
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  width: 100%;
}
.qr-camera-view {
  position: relative;
  width: 100%;
  max-width: 300px;
  aspect-ratio: 1;
  border-radius: 12px;
  overflow: hidden;
  background: #000;
}
.qr-camera-view video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.qr-camera-corners {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.qr-camera-hint {
  position: absolute;
  bottom: 0.75rem;
  left: 0;
  right: 0;
  text-align: center;
  font-size: 0.8125rem;
  color: rgba(255,255,255,0.9);
  background: rgba(0,0,0,0.35);
  padding: 0.25rem 0;
  margin: 0;
}
.qr-camera-stop {
  padding: 0.5rem 1.25rem;
  background: #fff;
  color: #dc2626;
  border: 1px solid #fca5a5;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  transition: background 0.15s;
}
.qr-camera-stop:hover { background: #fef2f2; }

.scan-laser {
  position: absolute;
  left: 0.875rem;
  right: 0.875rem;
  top: 0.875rem;
  height: 2px;
  background: linear-gradient(90deg, transparent, var(--brand), transparent);
  box-shadow: 0 0 12px rgba(78, 146, 229, 0.7);
  animation: scan-move 2.2s cubic-bezier(0.55, 0.05, 0.45, 0.95) infinite;
  pointer-events: none;
}
@keyframes scan-move {
  0%, 100% { transform: translateY(0); opacity: 0.85; }
  50% { transform: translateY(190px); opacity: 1; }
}

.scan-corner {
  position: absolute;
  width: 22px;
  height: 22px;
  border: 3px solid var(--brand);
  border-radius: 2px;
}
.scan-corner--tl { top: -2px; left: -2px; border-right: 0; border-bottom: 0; border-top-left-radius: 8px; }
.scan-corner--tr { top: -2px; right: -2px; border-left: 0; border-bottom: 0; border-top-right-radius: 8px; }
.scan-corner--bl { bottom: -2px; left: -2px; border-right: 0; border-top: 0; border-bottom-left-radius: 8px; }
.scan-corner--br { bottom: -2px; right: -2px; border-left: 0; border-top: 0; border-bottom-right-radius: 8px; }

.scan-tips {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
  width: 100%;
  max-width: 320px;
  padding: 1rem 1.25rem;
  background: var(--blue-50);
  border-radius: 0.625rem;
}
.scan-tips li {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 0.875rem;
  color: var(--slate-700);
}
.scan-tips li i {
  color: var(--brand);
  width: 1.25rem;
  text-align: center;
  font-size: 1rem;
}
.scan-tips li .fa-weixin { color: #07c160; }

/* ---------- 底部三栏说明 ---------- */
.verify-meta {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 720px)  { .verify-meta { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1080px) { .verify-meta { grid-template-columns: 1fr 1fr 1fr; } }

.verify-meta-card {
  background: #fff;
  border-radius: 0.875rem;
  padding: 1.5rem;
  border: 1px solid var(--slate-100);
  box-shadow: 0 4px 12px rgba(15, 35, 80, 0.03);
}
.verify-meta-card h4 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--slate-800);
  margin-bottom: 1rem;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.verify-meta-card h4 i {
  color: var(--brand);
  font-size: 0.9375rem;
}
.verify-meta-card p {
  font-size: 0.875rem;
  color: var(--slate-600);
  line-height: 1.8;
  margin-bottom: 0.625rem;
}
.verify-meta-card p:last-child { margin-bottom: 0; }
.verify-meta-card p strong { color: var(--slate-800); }
.verify-meta-card p a { color: var(--brand); }
.verify-meta-card p a:hover { text-decoration: underline; }

.verify-meta-card--dark {
  background: linear-gradient(140deg, #1a4a8a 0%, #2a6ac8 100%);
  border-color: transparent;
}
.verify-meta-card--dark h4,
.verify-meta-card--dark h4 i {
  color: #fff;
}
.verify-meta-card--dark p {
  color: rgba(255, 255, 255, 0.78);
}
.verify-hotline-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #fff;
  font-weight: 600;
  font-size: 1.25rem;
  letter-spacing: 0.04em;
  margin-top: 0.5rem;
  transition: opacity var(--transition);
}
.verify-hotline-link:hover { opacity: 0.85; }
.verify-hotline-link i {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.15);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8125rem;
}
.verify-hotline-sub {
  display: block;
  margin-top: 0.5rem;
  color: rgba(255, 255, 255, 0.65);
  font-size: 0.75rem;
  letter-spacing: 0.05em;
}

/* ---------- 编号格式说明 ---------- */
.code-demo {
  background: var(--slate-50);
  border-radius: 0.5rem;
  padding: 0.875rem 1rem;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 1.125rem;
  text-align: center;
  margin-bottom: 1rem;
  letter-spacing: 0.05em;
}
.code-demo .fl  { color: var(--brand); font-weight: 700; }
.code-demo .yr  { color: #d97706; font-weight: 700; }
.code-demo .num { color: #10b981; font-weight: 700; }
.code-demo .sep { color: var(--slate-400); margin: 0 0.25rem; }
.code-rows { display: flex; flex-direction: column; gap: 0.5rem; }
.code-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.8125rem;
  color: var(--slate-600);
}
.code-row .seg {
  width: 48px;
  text-align: center;
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 700;
  padding: 0.25rem 0;
  border-radius: 0.25rem;
}
.code-row.fl  .seg { background: rgba(78, 146, 229, 0.1); color: var(--brand); }
.code-row.yr  .seg { background: rgba(217, 119, 6, 0.1); color: #d97706; }
.code-row.num .seg { background: rgba(16, 185, 129, 0.1); color: #10b981; }

/* ---------- 结果浮层 ---------- */
.verify-result-overlay {
  position: fixed;
  inset: 0;
  z-index: 150;
  background: rgba(8, 18, 38, 0.65);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  opacity: 0;
  transition: opacity 0.22s ease;
}
.verify-result-overlay.is-open { opacity: 1; }
.verify-result-card {
  background: #fff;
  border-radius: 1rem;
  padding: 2rem;
  max-width: 460px;
  width: 100%;
  text-align: center;
  transform: translateY(12px) scale(0.98);
  transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.verify-result-overlay.is-open .verify-result-card {
  transform: translateY(0) scale(1);
}
.verify-result-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.5rem;
  margin: 0 auto 1rem;
}
.verify-result-icon.ok  { background: rgba(16, 185, 129, 0.12); color: #10b981; }
.verify-result-icon.bad { background: rgba(239, 68, 68, 0.12); color: #ef4444; }
.verify-result-card h3 {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--slate-800);
  margin-bottom: 0.5rem;
}
.verify-result-card > p {
  font-size: 0.875rem;
  color: var(--slate-500);
  line-height: 1.7;
  margin-bottom: 1.25rem;
}
.verify-result-grid {
  text-align: left;
  background: var(--slate-50);
  border-radius: 0.625rem;
  padding: 1rem 1.25rem;
  display: grid;
  grid-template-columns: 5rem 1fr;
  row-gap: 0.5rem;
  column-gap: 1rem;
  font-size: 0.875rem;
  margin-bottom: 1.25rem;
}
.verify-result-grid dt { color: var(--slate-500); }
.verify-result-grid dd { color: var(--slate-800); font-weight: 500; }
.verify-result-grid dd.ok { color: #10b981; }
.verify-result-foot {
  font-size: 0.75rem;
  color: var(--slate-400);
  margin-bottom: 1.25rem;
  line-height: 1.6;
}
.verify-result-close {
  background: var(--brand);
  color: #fff;
  border-radius: 0.5rem;
  padding: 0.75rem 2rem;
  font-size: 0.9375rem;
  font-weight: 500;
  cursor: pointer;
  transition: background var(--transition);
  border: 0;
}
.verify-result-close:hover { background: var(--brand-hover); }

/* ============================================================
   单位介绍 about.html
   ============================================================ */
.about-intro-v2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
}
@media (min-width: 900px) {
  .about-intro-v2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 4rem; }
}
.about-intro-photo {
  position: relative;
  border-radius: 1rem;
  overflow: hidden;
  margin: 0;
  background: var(--slate-100);
  aspect-ratio: 5 / 4;
  box-shadow: 0 20px 40px rgba(26, 74, 138, 0.12);
}
.about-intro-photo img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.8s ease;
}
.about-intro-photo:hover img { transform: scale(1.04); }
.about-intro-photo figcaption {
  position: absolute;
  left: 1rem;
  bottom: 1rem;
  background: rgba(15, 23, 42, 0.6);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  color: #fff;
  padding: 0.375rem 0.875rem;
  border-radius: 999px;
  font-size: 0.8125rem;
  letter-spacing: 0.05em;
}
.about-intro-rich .about-intro-eyebrow {
  display: inline-block;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  color: var(--brand);
  margin-bottom: 1rem;
}
.about-intro-rich h2 {
  font-size: 1.625rem;
  font-weight: 600;
  color: var(--slate-800);
  line-height: 1.45;
  letter-spacing: -0.01em;
  margin-bottom: 1.5rem;
}
@media (min-width: 1024px) {
  .about-intro-rich h2 { font-size: 1.875rem; }
}
.about-intro-rich p {
  font-size: 1rem;
  color: var(--slate-600);
  line-height: 1.85;
  margin-bottom: 1rem;
}
.about-intro-rich p:last-child { margin-bottom: 0; }

/* ---------- 资质亮点卡片 ---------- */
.highlight-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 720px) { .highlight-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .highlight-grid { grid-template-columns: repeat(4, 1fr); } }

.highlight-card {
  position: relative;
  background: #fff;
  border-radius: 1rem;
  padding: 2rem 1.5rem;
  border: none;
  box-shadow: 0 6px 24px rgba(15, 35, 80, 0.06);
  transition: transform var(--transition), box-shadow var(--transition), background var(--transition);
  overflow: hidden;
  aspect-ratio: 1 / 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.highlight-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px rgba(78, 146, 229, 0.14);
  background: var(--brand-50, #eff6fe);
}
.highlight-card--emerald:hover { background: rgba(16, 185, 129, 0.08); }
.highlight-card--violet:hover  { background: rgba(124, 58, 237, 0.08); }
.highlight-card--amber:hover   { background: rgba(245, 158, 11, 0.08); }

.highlight-detail {
  max-height: 0;
  opacity: 0;
  transform: translateY(20px);
  overflow: hidden;
  transition: max-height 0.35s ease, opacity 0.3s ease, transform 0.35s ease, margin-top 0.35s ease;
  margin-top: 0;
  width: 100%;
}
.highlight-card:hover .highlight-detail {
  max-height: 320px;
  opacity: 1;
  transform: translateY(0);
  margin-top: 0.875rem;
}

.highlight-icon {
  width: 56px;
  height: 56px;
  background: transparent;
  color: var(--brand);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 0.75rem;
  font-size: 2rem;
}
.highlight-card--emerald .highlight-icon { color: #10b981; }
.highlight-card--violet  .highlight-icon { color: #7c3aed; }
.highlight-card--amber   .highlight-icon { color: #f59e0b; }

.highlight-tag {
  font-size: 0.75rem;
  letter-spacing: 0.15em;
  color: var(--slate-400);
  margin-bottom: 0.5rem;
}
.highlight-card h4 {
  font-size: 1rem;
  font-weight: 600;
  color: var(--slate-800);
  line-height: 1.5;
  margin-bottom: 0;
}
.highlight-detail p {
  font-size: 0.8125rem;
  color: var(--slate-500);
  line-height: 1.75;
  margin: 0;
}

/* ---------- 关键数字行 ---------- */
.about-stats-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
  padding: 2rem 0;
}
@media (min-width: 720px) { .about-stats-row { grid-template-columns: repeat(4, 1fr); } }
.about-stat-cell { text-align: center; }
.about-stat-num {
  font-size: 2.5rem;
  font-weight: 700;
  color: var(--brand);
  line-height: 1.1;
  letter-spacing: -0.02em;
  display: inline-flex;
  align-items: baseline;
  gap: 0.125rem;
}
.about-stat-num span {
  font-size: 1rem;
  color: var(--slate-400);
  font-weight: 500;
}
.about-stat-label {
  margin-top: 0.5rem;
  font-size: 0.875rem;
  color: var(--slate-500);
}

/* ============================================================
   资质荣誉 honors.html
   ============================================================ */
.page-band-white:has(.honor-grid) {
  background: #f4f7fc;
}
.honor-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
  padding: 0.5rem 0 2rem;
}
@media (min-width: 640px) { .honor-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 960px) { .honor-grid { grid-template-columns: repeat(4, 1fr); gap: 1rem; } }

.honor-item {
  margin: 0;
  background: #fff;
  border-radius: 1rem;
  border: 1px solid #e8edf5;
  overflow: hidden;
  cursor: zoom-in;
  transition: box-shadow 0.25s ease, transform 0.25s ease;
  box-shadow: 0 2px 8px rgba(15, 35, 80, 0.06);
  display: flex;
  flex-direction: column;
}
.honor-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(78, 146, 229, 0.14);
}
.honor-thumb {
  position: relative;
  background: #fff;
  padding: 1.25rem;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.honor-thumb-inner {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.honor-thumb img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  transition: transform 0.4s ease;
}
.honor-item:hover .honor-thumb img { transform: scale(1.04); }
.honor-zoom {
  position: absolute;
  right: 0.875rem;
  bottom: 0.875rem;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.92);
  color: var(--brand);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.7rem;
  opacity: 0;
  transform: scale(0.7);
  transition: all 0.2s ease;
  box-shadow: 0 2px 8px rgba(0,0,0,0.12);
}
.honor-item:hover .honor-zoom { opacity: 1; transform: scale(1); }
.honor-badge { display: none; }
.honor-item figcaption {
  padding: 0.625rem 0.875rem 0.875rem;
}
.honor-item figcaption h4 {
  font-size: 0.8125rem;
  font-weight: 500;
  color: #374151;
  line-height: 1.55;
  margin: 0;
  text-align: center;
}

/* ---------- 灯箱（与首页 honor-lightbox 风格统一） ---------- */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4rem 5rem;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
  will-change: opacity;
}
.lightbox.is-open {
  opacity: 1;
  pointer-events: auto;
}
/* 背景遮罩：纯色，无 blur，性能好 */
.lightbox::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(10, 20, 50, 0.86);
}
.lightbox-stage {
  position: relative;
  z-index: 1;
  margin: 0;
  max-width: min(1100px, 92vw);
  max-height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.25rem;
}
.lightbox-stage img {
  max-width: 100%;
  max-height: calc(100vh - 12rem);
  border-radius: 0.75rem;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.5);
  display: block;
  transform: scale(0.94);
  transition: transform 0.2s ease;
  will-change: transform;
}
.lightbox.is-open .lightbox-stage img { transform: scale(1); }
.lightbox-stage figcaption {
  color: #fff;
  text-align: center;
}
.lightbox-stage figcaption strong {
  display: block;
  font-size: 1.125rem;
  font-weight: 500;
  margin-bottom: 0.25rem;
}
.lightbox-stage figcaption span {
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.7);
}
.lightbox-close,
.lightbox-nav {
  position: absolute;
  z-index: 2;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  color: #fff;
  font-size: 1rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s ease, transform 0.2s ease;
}
.lightbox-close:hover,
.lightbox-nav:hover { background: rgba(255, 255, 255, 0.25); }
.lightbox-close { top: 1.5rem; right: 1.5rem; }
.lightbox-nav--prev { left: 1.5rem; top: 50%; transform: translateY(-50%); }
.lightbox-nav--next { right: 1.5rem; top: 50%; transform: translateY(-50%); }
.lightbox-nav--prev:hover { transform: translateY(-50%) scale(1.05); }
.lightbox-nav--next:hover { transform: translateY(-50%) scale(1.05); }
@media (max-width: 640px) {
  .lightbox { padding: 4rem 1rem; }
  .lightbox-nav,
  .lightbox-close { width: 38px; height: 38px; }
  .lightbox-nav--prev { left: 0.5rem; }
  .lightbox-nav--next { right: 0.5rem; }
  .lightbox-close { top: 1rem; right: 1rem; }
}

/* ---------- 通用：页头导读段 ---------- */
.page-lead {
  font-size: 1rem;
  color: var(--slate-600);
  line-height: 1.85;
  max-width: 880px;
  margin: 0 auto 3rem;
  text-align: center;
}

/* ---------- 检测设备浏览 ---------- */
.equip-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.75rem;
}
@media (min-width: 720px) { .equip-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1080px) { .equip-grid { grid-template-columns: repeat(3, 1fr); } }

.equip-card {
  background: #fff;
  border: 1px solid var(--slate-100);
  border-radius: 1rem;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: all var(--transition);
  box-shadow: 0 2px 8px rgba(15, 35, 80, 0.03);
}
.equip-card:hover {
  border-color: rgba(78, 146, 229, 0.25);
  box-shadow: 0 14px 30px rgba(78, 146, 229, 0.15);
  transform: translateY(-3px);
}
.equip-thumb {
  position: relative;
  aspect-ratio: 4 / 3;
  background: var(--slate-100);
  overflow: hidden;
}
.equip-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.equip-card:hover .equip-thumb img { transform: scale(1.05); }
.equip-status {
  position: absolute;
  top: 0.875rem;
  right: 0.875rem;
  background: rgba(16, 185, 129, 0.92);
  color: #fff;
  font-size: 0.75rem;
  padding: 0.25rem 0.625rem;
  border-radius: 999px;
  letter-spacing: 0.05em;
}
.equip-body {
  padding: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.equip-body h3 {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--slate-800);
}
.equip-model {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.875rem;
  color: var(--brand);
}
.equip-body p {
  font-size: 0.875rem;
  color: var(--slate-600);
  line-height: 1.75;
  margin-top: 0.25rem;
}
.equip-spec {
  margin-top: 0.875rem;
  padding-top: 0.875rem;
  border-top: 1px dashed var(--slate-100);
  display: flex;
  flex-direction: column;
  gap: 0.375rem;
}
.equip-spec li {
  font-size: 0.875rem;
  color: var(--slate-600);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.equip-spec li i { color: var(--brand); font-size: 0.875rem; width: 1rem; text-align: center; }

.equip-footnote {
  margin-top: 3rem;
  font-size: 0.875rem;
  color: var(--slate-500);
  text-align: center;
  line-height: 1.85;
}
.equip-footnote i { color: var(--brand); margin-right: 0.375rem; }
.equip-footnote a { color: var(--brand); }
.equip-footnote a:hover { text-decoration: underline; }

/* ---------- 全流程服务（5 步交错胶囊卡） ---------- */
.flow-pills {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1.25rem;
  max-width: 1200px;
  margin: 0 auto;
  padding-top: 2.5rem;
  padding-bottom: 3.5rem;
}
.flow-pills-curves {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 60px;
  pointer-events: none;
  z-index: 1;
}
.flow-pill {
  position: relative;
  background: #eaf1fe;
  border-radius: 90px / 36px;
  padding: 3.5rem 1.25rem 4rem;
  min-height: 300px;
  text-align: center;
  z-index: 2;
}
.flow-pill--rose { background: #fbe6e8; }
.flow-pill--up { align-self: start; transform: translateY(-1rem); }
.flow-pill--down { align-self: start; transform: translateY(3.5rem); }
.flow-pill-num {
  position: absolute;
  top: -1.5rem;
  left: 50%;
  transform: translateX(-50%);
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #2563eb;
  color: #fff;
  font-size: 1.25rem;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  letter-spacing: 0.02em;
  border: 4px solid #fff;
  box-shadow: 0 4px 14px rgba(37, 99, 235, 0.25);
}
.flow-pill--rose .flow-pill-num {
  background: #e85d6d;
  box-shadow: 0 4px 14px rgba(232, 93, 109, 0.25);
}
.flow-pill-body { padding-top: 1rem; }
.flow-pill-body h4 {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--brand);
  margin-bottom: 0.875rem;
}
.flow-pill--rose .flow-pill-body h4 { color: #e85d6d; }
.flow-pill-body p {
  font-size: 0.875rem;
  color: var(--slate-600);
  line-height: 1.75;
  margin: 0;
}

@media (max-width: 960px) {
  .flow-pills {
    grid-template-columns: 1fr;
    gap: 2.5rem;
    padding-top: 1.5rem;
  }
  .flow-pills-curves { display: none; }
  .flow-pill { border-radius: 1.25rem; padding: 3rem 1.5rem 1.5rem; }
  .flow-pill--up, .flow-pill--down { transform: none; align-self: auto; }
}

/* ---------- 公司简介 + 建筑图 ---------- */
.company-overview {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  align-items: center;
}
@media (min-width: 900px) {
  .company-overview {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 3.5rem;
  }
}
.company-overview-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--slate-800);
  letter-spacing: -0.01em;
  margin-bottom: 1.5rem;
}
.company-overview-desc {
  font-size: 1rem;
  color: var(--slate-600);
  line-height: 1.85;
  text-align: justify;
}
.company-overview-photo {
  border-radius: 1rem;
  overflow: hidden;
  background: var(--slate-100);
  aspect-ratio: 16 / 10;
}
.company-overview-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* ---------- Contact v2 (Honor-style minimal layout) ---------- */
.contact-v2 {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  margin-bottom: 4rem;
}
@media (min-width: 768px) {
  .contact-v2 { grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 4rem; align-items: start; }
}

.contact-v2 .hq-block h2 {
  font-size: 2rem;
  font-weight: 700;
  color: var(--slate-800);
  letter-spacing: -0.01em;
  margin-bottom: 1.5rem;
}
.contact-v2 .hq-address {
  font-size: 1rem;
  color: var(--slate-700);
  line-height: 1.85;
  max-width: 28rem;
  margin-bottom: 2rem;
}
.contact-v2 .hq-mark {
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--brand);
  background: rgba(78, 146, 229, 0.08);
  border-radius: 0.75rem;
}
.contact-v2 .hq-mark .icon { width: 22px; height: 22px; }
.contact-v2 .hq-mark i { font-size: 20px; line-height: 1; }
.contact-v2 .hq-address .k { color: var(--slate-500); margin-right: 0.25rem; }
.contact-v2 .hq-address a { color: var(--slate-700); transition: color var(--transition); }
.contact-v2 .hq-address a:hover { color: var(--brand); }

.contact-v2 .biz-block { display: flex; flex-direction: column; gap: 0; }
.contact-v2 .biz-group {
  padding: 0.25rem 0 2rem;
}
.contact-v2 .biz-group + .biz-group {
  border-top: 1px solid var(--slate-200);
  padding-top: 2rem;
}
.contact-v2 .biz-group .label {
  font-size: 0.95rem;
  color: var(--slate-500);
  margin-bottom: 1.25rem;
}
.contact-v2 .biz-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.875rem 2.5rem;
}
@media (min-width: 480px) {
  .contact-v2 .biz-row { grid-template-columns: 1fr 1fr; }
}
.contact-v2 .biz-item {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1.125rem;
  color: var(--slate-800);
  font-weight: 500;
  word-break: break-all;
}
.contact-v2 .biz-item a {
  color: inherit;
  transition: color var(--transition);
}
.contact-v2 .biz-item a:hover { color: var(--brand); }
.contact-v2 .biz-icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(78, 146, 229, 0.1);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--brand);
  flex-shrink: 0;
}
.contact-v2 .biz-icon .icon { width: 16px; height: 16px; }
.contact-v2 .biz-icon i { font-size: 13px; line-height: 1; color: var(--brand); }

/* 业务组：垂直堆叠 + 标签条 */
.contact-v2 .biz-row-stack {
  grid-template-columns: 1fr !important;
  gap: 0.5rem;
}
.contact-v2 .biz-row-stack .biz-item { font-size: 0.9375rem; }
.contact-v2 .biz-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1rem;
  padding-left: 2.75rem;
}
.contact-v2 .biz-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.8125rem;
  color: var(--slate-600);
  padding: 0.25rem 0.625rem;
  background: var(--slate-50);
  border: 1px solid var(--slate-100);
  border-radius: 999px;
}
.contact-v2 .biz-tag i { font-size: 11px; color: var(--slate-400); }

.contact-map {
  width: 100%;
  border-radius: 1.5rem;
  overflow: hidden;
  border: 1px solid var(--slate-200);
  background: var(--slate-100);
  position: relative;
}
.contact-map iframe,
.contact-map .map-fallback {
  display: block;
  width: 100%;
  height: 480px;
  border: 0;
}
.contact-map .map-fallback {
  background: linear-gradient(135deg, #e2eaf3, #f4f7fc);
  display: flex;
  align-items: center;
  justify-content: center;
}
.contact-map .map-pin-tag {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  background: var(--brand);
  color: #fff;
  padding: 0.5rem 1rem 0.5rem 0.75rem;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 700;
  box-shadow: 0 6px 18px rgba(78, 146, 229, 0.35);
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  letter-spacing: 0.05em;
  pointer-events: none;
}
.contact-map .map-pin-tag .icon { width: 16px; height: 16px; }
.contact-map .map-pin-tag i { font-size: 14px; line-height: 1; }

/* ---------- About 单位 ---------- */
.about-intro {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
  margin-bottom: 4.5rem;
}
@media (min-width: 1024px) {
  .about-intro { grid-template-columns: 5fr 7fr; gap: 4rem; }
}
.about-intro-text .eyebrow {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--brand);
  margin-bottom: 1rem;
  text-transform: uppercase;
}
.about-intro-text h2 {
  font-size: 2rem;
  font-weight: 700;
  color: var(--slate-800);
  line-height: 1.3;
  letter-spacing: -0.01em;
  margin-bottom: 1.5rem;
}
.about-intro-text p {
  font-size: 0.9375rem;
  color: var(--slate-600);
  line-height: 1.85;
  margin-bottom: 1rem;
}
.about-intro-text p:last-child { margin-bottom: 0; }

.about-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
  background: linear-gradient(135deg, #f6f9fe, #eaf2fc);
  border-radius: 1.5rem;
  border: 1px solid var(--blue-100);
  padding: 2rem;
}
@media (min-width: 768px) {
  .about-stats { grid-template-columns: repeat(4, 1fr); padding: 2.5rem; }
}
.about-stat .num {
  font-size: 2.25rem;
  font-weight: 700;
  color: var(--brand);
  line-height: 1.1;
  margin-bottom: 0.375rem;
  display: flex;
  align-items: baseline;
  gap: 0.25rem;
}
.about-stat .num .unit {
  font-size: 1rem;
  color: var(--slate-500);
  font-weight: 500;
}
.about-stat .name {
  font-size: 0.8125rem;
  color: var(--slate-500);
}


.about-narrative .narrative-body {
  max-width: 880px;
  margin: 0 auto;
  background: #fff;
  border: 1px solid var(--slate-100);
  border-radius: 1.5rem;
  padding: 2.5rem 2.5rem 2rem;
  box-shadow: 0 6px 20px rgba(15, 35, 80, 0.04);
}
.about-narrative .narrative-body p {
  font-size: 0.9375rem;
  color: var(--slate-600);
  line-height: 2;
  text-align: justify;
  text-indent: 2em;
  margin-bottom: 1rem;
}
.about-narrative .narrative-body p:last-child { margin-bottom: 0; }
@media (max-width: 640px) {
  .about-narrative .narrative-body { padding: 1.75rem 1.5rem; }
}
.about-section-head {
  text-align: center;
  margin-bottom: 2.5rem;
}
.about-section-head .eyebrow {
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.25em;
  color: var(--brand);
  margin-bottom: 0.75rem;
  text-transform: uppercase;
}
.about-section-head h3 {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--slate-800);
}
.about-section-head p {
  margin-top: 0.75rem;
  color: var(--slate-500);
  font-size: 1rem;
}

.value-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 640px) { .value-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .value-grid { grid-template-columns: repeat(4, 1fr); } }
.value-card {
  background: #fff;
  border: 1px solid var(--slate-100);
  border-radius: 1.25rem;
  padding: 1.75rem;
  transition: all var(--transition);
}
.value-card:hover {
  border-color: rgba(78, 146, 229, 0.25);
  box-shadow: 0 12px 28px rgba(15, 35, 80, 0.05);
  transform: translateY(-2px);
}
.value-card .ic {
  width: 44px; height: 44px;
  border-radius: 0.75rem;
  background: var(--blue-50);
  color: var(--brand);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1rem;
}
.value-card .ic .icon { width: 22px; height: 22px; }
.value-card h4 {
  font-size: 1rem;
  font-weight: 700;
  color: var(--slate-800);
  margin-bottom: 0.5rem;
}
.value-card p {
  font-size: 0.875rem;
  color: var(--slate-500);
  line-height: 1.65;
}

.timeline {
  position: relative;
  max-width: 760px;
  margin: 0 auto;
  padding-left: 2rem;
}
.timeline::before {
  content: '';
  position: absolute;
  left: 7px;
  top: 6px;
  bottom: 6px;
  width: 2px;
  background: linear-gradient(to bottom, var(--brand) 0%, rgba(78,146,229,0.15) 100%);
}
.timeline-item {
  position: relative;
  padding-bottom: 1.5rem;
}
.timeline-item:last-child { padding-bottom: 0; }
.timeline-item::before {
  content: '';
  position: absolute;
  left: -2rem;
  top: 4px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid var(--brand);
  box-shadow: 0 0 0 4px rgba(78, 146, 229, 0.12);
}
.timeline-year {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--brand);
  margin-bottom: 0.25rem;
}
.timeline-text {
  font-size: 0.9375rem;
  color: var(--slate-600);
  line-height: 1.7;
}

/* ---------- Apply (Stepper / Form) ---------- */
.apply-shell { max-width: 900px; margin: 0 auto; padding: 0 1.5rem; }
.stepper {
  display: flex;
  align-items: center;
  margin-bottom: 3rem;
}
.step-node { display: flex; align-items: center; gap: 0.75rem; }
.step-circle {
  width: 32px; height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  font-weight: 700;
  background: var(--slate-100);
  color: var(--slate-400);
  transition: all var(--transition);
}
.step-circle.is-current { background: var(--brand); color: #fff; }
.step-circle.is-done { background: var(--emerald-500); color: #fff; }
.step-label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--slate-400);
  transition: color var(--transition);
}
.step-label.is-current { color: var(--brand); }
.step-label.is-done { color: var(--slate-600); }
.step-line {
  flex: 1;
  height: 2px;
  margin: 0 1rem;
  background: var(--slate-200);
}
.step-line.is-done { background: #6ee7b7; }

.apply-card {
  background: #fff;
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  box-shadow: var(--shadow-sm);
  padding: 2.5rem;
}
.apply-form-step { display: none; }
.apply-form-step.is-active { display: block; }
.apply-form-step h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--slate-800);
  margin-bottom: 0.25rem;
}
.apply-form-step .hint {
  font-size: 0.875rem;
  color: var(--slate-500);
  margin-bottom: 1.5rem;
}
.apply-form-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 640px) { .apply-form-grid.two { grid-template-columns: 1fr 1fr; } }
.apply-actions {
  display: flex;
  justify-content: flex-end;
  padding-top: 0.5rem;
}
.apply-actions.between { justify-content: space-between; }
.btn-primary-sq {
  background: var(--brand);
  color: #fff;
  padding: 0.875rem 2rem;
  border-radius: var(--radius);
  font-size: 0.875rem;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  transition: background var(--transition);
}
.btn-primary-sq:hover { background: var(--brand-hover); }
.btn-primary-sq:disabled { opacity: 0.4; cursor: not-allowed; }
.btn-outline-sq {
  border: 1px solid var(--slate-200);
  color: var(--slate-700);
  padding: 0.75rem 1.5rem;
  border-radius: var(--radius);
  font-size: 0.875rem;
  font-weight: 500;
  transition: background var(--transition);
}
.btn-outline-sq:hover { background: var(--slate-50); }
.confirm-card {
  background: var(--slate-50);
  border-radius: var(--radius-xl);
  border: 1px solid var(--slate-100);
  padding: 1.5rem;
  margin-bottom: 1rem;
}
.confirm-card h3 {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--slate-700);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.confirm-card h3 .icon { color: var(--brand); width: 16px; height: 16px; }
.confirm-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.75rem 2rem;
  font-size: 0.875rem;
}
@media (min-width: 640px) { .confirm-grid { grid-template-columns: 1fr 1fr; } }
.confirm-row { display: flex; gap: 0.75rem; }
.confirm-row .k { color: var(--slate-500); flex-shrink: 0; }
.confirm-row .v { font-weight: 500; color: var(--slate-800); }
.apply-info {
  background: var(--blue-50);
  border: 1px solid var(--blue-100);
  border-radius: var(--radius);
  padding: 1rem;
  font-size: 0.875rem;
  color: #1d4ed8;
}
.apply-prep {
  margin-top: 2rem;
  background: #fff;
  border-radius: var(--radius-xl);
  border: 1px solid var(--slate-100);
  padding: 1.5rem;
}
.apply-prep h3 {
  font-weight: 700;
  color: var(--slate-700);
  margin-bottom: 1rem;
  font-size: 0.875rem;
}
.apply-prep-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  font-size: 0.875rem;
  color: var(--slate-600);
}
@media (min-width: 640px) { .apply-prep-grid { grid-template-columns: repeat(3, 1fr); } }
.apply-prep-grid > div { display: flex; align-items: center; gap: 0.5rem; }
.apply-prep-grid .icon { color: var(--brand); width: 16px; height: 16px; flex-shrink: 0; }

.success-card {
  text-align: center;
  padding: 5rem 1.5rem;
}
.success-card .big-icon {
  width: 96px; height: 96px;
  color: var(--emerald-500);
  margin: 0 auto 2rem;
}
.success-card h2 {
  font-size: 1.875rem;
  font-weight: 700;
  color: var(--slate-800);
  margin-bottom: 1rem;
}
.success-card > p {
  color: var(--slate-500);
  font-size: 1.125rem;
  margin-bottom: 1rem;
  max-width: 32rem;
  margin-left: auto;
  margin-right: auto;
  line-height: 1.65;
}
.success-summary {
  background: var(--slate-50);
  border: 1px solid var(--slate-100);
  border-radius: var(--radius-xl);
  padding: 1.5rem;
  display: inline-block;
  margin: 0 auto 2.5rem;
  text-align: left;
  min-width: 280px;
}
.success-summary .title {
  font-size: 0.75rem;
  color: var(--slate-400);
  font-weight: 500;
  margin-bottom: 1rem;
}
.success-summary .row {
  display: flex;
  justify-content: space-between;
  gap: 1.5rem;
  font-size: 0.875rem;
  margin-bottom: 0.5rem;
}
.success-summary .row .k { color: var(--slate-500); }
.success-summary .row .v { font-weight: 500; color: var(--slate-800); }
.success-actions { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; }
.success-actions .btn-fill {
  background: var(--brand);
  color: #fff;
  padding: 0.75rem 2rem;
  border-radius: 999px;
  font-weight: 500;
  font-size: 0.875rem;
  transition: background var(--transition);
}
.success-actions .btn-fill:hover { background: var(--brand-hover); }
.success-actions .btn-out {
  border: 1px solid var(--slate-200);
  color: var(--slate-700);
  padding: 0.75rem 2rem;
  border-radius: 999px;
  font-weight: 500;
  font-size: 0.875rem;
  transition: background var(--transition);
}
.success-actions .btn-out:hover { background: var(--slate-50); }

/* ---------- Verify ---------- */
.verify-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
}
@media (min-width: 1024px) {
  .verify-layout { grid-template-columns: 7fr 5fr; }
}
.verify-panel {
  background: #fff;
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  box-shadow: var(--shadow-sm);
  padding: 2.5rem;
}
.verify-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 2rem;
}
.verify-head-icon {
  width: 48px; height: 48px;
  background: var(--blue-50);
  border: 1px solid var(--blue-100);
  border-radius: var(--radius-lg);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brand);
}
.verify-head-icon .icon { width: 24px; height: 24px; }
.verify-head h2 {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--slate-800);
}
.verify-head .sub {
  color: var(--slate-500);
  font-size: 0.875rem;
  margin-top: 2px;
}
.verify-notice {
  background: var(--amber-50);
  border: 1px solid var(--amber-100);
  border-radius: var(--radius);
  padding: 1rem;
  font-size: 0.875rem;
  color: var(--amber-700);
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  margin-bottom: 1.25rem;
  line-height: 1.65;
}
.verify-notice > i { color: #d97706; flex-shrink: 0; margin-top: 2px; }
.verify-notice-link {
  color: var(--brand);
  font-weight: 500;
  margin-left: 0.125rem;
  border-bottom: 1px dashed var(--brand);
  padding-bottom: 1px;
}
.verify-notice-link:hover { color: var(--brand-hover); }
.verify-result { text-align: center; padding: 1.5rem 0; }
.result-icon-wrap {
  width: 80px; height: 80px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.5rem;
}
.result-icon-wrap.ok { background: var(--emerald-50); border: 4px solid var(--emerald-100); }
.result-icon-wrap.bad { background: var(--red-50); border: 4px solid var(--red-100); }
.result-icon-wrap .icon { width: 40px; height: 40px; }
.result-icon-wrap.ok .icon { color: var(--emerald-500); }
.result-icon-wrap.bad .icon { color: var(--red-400); }
.verify-result h2 {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--slate-800);
  margin-bottom: 0.5rem;
}
.verify-result > p {
  color: var(--slate-500);
  font-size: 0.875rem;
  margin-bottom: 2rem;
  line-height: 1.65;
  max-width: 28rem;
  margin-left: auto;
  margin-right: auto;
}
.result-detail {
  background: var(--slate-50);
  border-radius: var(--radius-xl);
  border: 1px solid var(--slate-100);
  padding: 1.5rem;
  text-align: left;
  margin-bottom: 2rem;
}
.result-detail .row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.875rem;
  padding: 0.75rem 0;
  border-top: 1px solid var(--slate-100);
}
.result-detail .row:first-child { border-top: 0; padding-top: 0; }
.result-detail .row .k { color: var(--slate-500); }
.result-detail .row .v { font-weight: 600; color: var(--slate-800); }
.result-detail .row .v.mono { font-family: ui-monospace, monospace; }
.result-detail .row .v.ok {
  color: var(--emerald-600);
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.result-detail .row .v.ok::before {
  content: '';
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--emerald-500);
}
.result-detail-list {
  background: var(--slate-50);
  border-radius: var(--radius-xl);
  border: 1px solid var(--slate-100);
  padding: 1.25rem;
  text-align: left;
  font-size: 0.875rem;
  color: var(--slate-600);
  margin-bottom: 2rem;
}
.result-detail-list p { margin-bottom: 0.75rem; }
.result-detail-list p strong { color: var(--slate-700); }
.result-detail-list .ckitem { display: flex; align-items: flex-start; gap: 0.5rem; margin-bottom: 0.5rem; }
.result-detail-list .ckitem .num { color: var(--brand); flex-shrink: 0; margin-top: 2px; }
.verify-result .actions { display: flex; gap: 0.75rem; justify-content: center; flex-wrap: wrap; }

.verify-side-card {
  background: #fff;
  border-radius: var(--radius-3xl);
  border: 1px solid var(--slate-100);
  box-shadow: var(--shadow-sm);
  padding: 1.75rem;
}
.verify-side-card h3 {
  font-weight: 700;
  color: var(--slate-800);
  margin-bottom: 1.25rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.verify-side-card h3 .icon { color: var(--brand); width: 20px; height: 20px; }
.verify-side-card p { font-size: 0.875rem; color: var(--slate-600); line-height: 1.7; }
.verify-side-card p + p { margin-top: 1rem; }
.verify-side-card p strong { color: var(--slate-800); }

.code-demo {
  background: var(--slate-50);
  border-radius: var(--radius-xl);
  border: 1px solid var(--slate-100);
  padding: 1.25rem;
  font-family: ui-monospace, monospace;
  text-align: center;
  margin-bottom: 1rem;
}
.code-demo .fl { color: var(--brand); font-weight: 700; }
.code-demo .yr { color: var(--amber-600); font-weight: 700; }
.code-demo .num { color: var(--emerald-600); font-weight: 700; }
.code-demo .sep { color: var(--slate-400); margin: 0 4px; }
.code-row {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 0.875rem;
  margin-bottom: 0.5rem;
}
.code-row .seg {
  width: 48px;
  text-align: center;
  font-weight: 700;
  font-family: ui-monospace, monospace;
  padding: 2px 8px;
  border-radius: var(--radius-sm);
}
.code-row.fl .seg { background: var(--blue-50); color: var(--brand); border: 1px solid var(--blue-100); }
.code-row.yr .seg { background: var(--amber-50); color: var(--amber-600); border: 1px solid var(--amber-100); }
.code-row.num .seg { background: var(--emerald-50); color: var(--emerald-600); border: 1px solid var(--emerald-100); }
.code-row span:last-child { color: var(--slate-600); }

.verify-hotline-card {
  background: var(--slate-800);
  border-radius: var(--radius-3xl);
  padding: 1.75rem;
  color: #fff;
}
.verify-hotline-card .icon-phone { color: var(--brand); width: 32px; height: 32px; margin-bottom: 1rem; }
.verify-hotline-card h3 { font-weight: 700; margin-bottom: 0.5rem; }
.verify-hotline-card p { color: var(--slate-400); font-size: 0.875rem; margin-bottom: 1.25rem; line-height: 1.65; }
.verify-hotline-card a {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: #fff;
  font-weight: 700;
  font-size: 1.125rem;
  transition: color var(--transition);
}
.verify-hotline-card a:hover { color: var(--brand); }
.verify-hotline-card .h-sub { color: var(--slate-500); font-size: 0.75rem; margin-top: 0.5rem; }

/* ---------- 404 ---------- */
.notfound-wrap {
  min-height: 60vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6rem 1.5rem;
}
.notfound-inner { text-align: center; max-width: 28rem; }
.notfound-icon {
  width: 80px; height: 80px;
  background: var(--blue-50);
  border-radius: var(--radius-3xl);
  border: 1px solid var(--blue-100);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 2rem;
  color: var(--brand);
}
.notfound-icon .icon { width: 40px; height: 40px; }
.notfound-inner h1 {
  font-size: 3.75rem;
  font-weight: 700;
  color: var(--slate-800);
  margin-bottom: 1rem;
}
.notfound-inner h2 {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--slate-700);
  margin-bottom: 0.75rem;
}
.notfound-inner p {
  color: var(--slate-500);
  font-size: 0.875rem;
  line-height: 1.65;
  margin-bottom: 2rem;
}

/* ============================================================
   首页新版模块样式
   ============================================================ */

/* Hero 顶部加 canvas 天气动画 + 滚动呼吸 */
.hero--home {
  aspect-ratio: 16 / 5;
  transition: aspect-ratio 0.3s ease;
}
.hero-weather-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  pointer-events: none;
  mix-blend-mode: screen;
}
.hero--home .hero-inner {
  transition: transform 0.1s linear, opacity 0.1s linear;
  will-change: transform, opacity;
}

/* section eyebrow 与左对齐变体 */
.section-eyebrow {
  display: inline-block;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  color: var(--brand);
  text-transform: uppercase;
  margin-bottom: 0.75rem;
}
.section-heading--left { text-align: left; }
.section-heading--left h3 { margin-left: 0; }
.section-heading--with-action {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 2.5rem;
  text-align: left;
}
.section-heading--with-action h3 {
  margin: 0;
  font-size: 1.75rem;
}
.section-action {
  color: var(--brand);
  font-size: 0.9375rem;
  font-weight: 500;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  transition: gap var(--transition);
}
.section-action:hover { gap: 0.5rem; }

/* ---------- 单位简介 ---------- */
.section-intro {
  position: relative;
  overflow: hidden;
  background: radial-gradient(ellipse at 75% 50%, rgba(78, 146, 229, 0.10) 0%, transparent 55%), linear-gradient(180deg, #f5f9fe 0%, #eaf2fb 100%);
}
.intro-bg-wrap {
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
}
.intro-bg-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  opacity: 0.18;
}
.section-intro .container {
  position: relative;
  z-index: 1;
}
.intro-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  align-items: center;
  background: rgba(255,255,255,0.82);
  border-radius: 20px;
  padding: 2.5rem 3rem;
  box-shadow: 0 4px 32px rgba(37,99,235,0.08);
  backdrop-filter: blur(4px);
  border: 1px solid rgba(255,255,255,0.9);
}
@media (min-width: 1024px) {
  .intro-grid { grid-template-columns: 2.3fr 1fr; gap: 0; }
}
.intro-text p {
  color: var(--slate-600);
  line-height: 1.85;
  margin-bottom: 1.25rem;
  font-size: 1rem;
}
.intro-stats {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin: 0;
  padding: 0;
  background: none;
  border-radius: 0;
}
.intro-stat {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 2rem;
  padding: 2.25rem 0;
  background: none;
  border-radius: 0;
  box-shadow: none;
  border: none;
  border-bottom: 1px solid rgba(37,99,235,0.1);
  transition: background var(--transition);
  cursor: default;
  text-align: left;
}
.intro-stat:last-child { border-bottom: none; }
.intro-stat:hover { background: none; transform: none; }
.intro-stat-icon {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background: linear-gradient(145deg, #3b82f6 0%, #2563eb 60%, #1d4ed8 100%);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.75rem;
  flex-shrink: 0;
  box-shadow: none;
  border: 6px solid #dbe5fb;
  box-sizing: content-box;
}
.intro-stat-body {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.intro-stat-num {
  font-size: 2.75rem;
  font-weight: 700;
  color: var(--brand);
  line-height: 1;
  letter-spacing: -0.02em;
}
.intro-stat-num span { font-size: 1.25rem; margin-left: 2px; font-weight: 600; }
.intro-stat-label {
  font-size: 1rem;
  color: var(--slate-500);
  margin-top: 0.1rem;
}
.intro-more {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--brand);
  font-weight: 600;
  font-size: 0.9375rem;
  transition: gap var(--transition);
}
.intro-more:hover { gap: 0.75rem; }

.intro-text {
  padding-right: 0;
}
@media (min-width: 1024px) {
  .intro-text { padding-right: 3rem; }
}
.intro-aside {
  display: flex;
  align-items: center;
  justify-content: center;
  border-left: none;
  padding-left: 0;
}
@media (min-width: 1024px) {
  .intro-aside {
    border-left: 1px solid rgba(37,99,235,0.15);
    padding-left: 3rem;
    align-self: stretch;
  }
}
.intro-aside .intro-stats {
  width: 100%;
}
.intro-badge {
  background: #fff;
  border: 1px solid var(--slate-100);
  border-radius: 12px;
  padding: 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  transition: transform var(--transition), box-shadow var(--transition);
  box-shadow: 0 1px 3px rgba(0,0,0,0.04);
}
.intro-badge:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}
.intro-badge i {
  font-size: 1.5rem;
  width: 44px;
  height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
}
.intro-badge strong {
  display: block;
  font-size: 0.9375rem;
  color: var(--slate-800);
  margin-bottom: 0.25rem;
}
.intro-badge span {
  font-size: 0.8125rem;
  color: var(--slate-500);
}
.intro-badge--blue i { background: #dbeafe; color: #2563eb; }
.intro-badge--emerald i { background: #d1fae5; color: #059669; }
.intro-badge--violet i { background: #ede9fe; color: #7c3aed; }
.intro-badge--amber i { background: #fef3c7; color: #d97706; }

/* ---------- 通知公告浮层（绝对定位在 banner 底部） ---------- */
/* ---- 通知公告 Swiper 条 ---- */
/* 包裹层：桌面端作定位容器 */
.hero-notice-wrap {
  position: relative;
}

.notice-bar-outer {
  position: absolute;
  bottom: 0;
  left: 60px;
  z-index: 10;
  width: 62%;
  box-sizing: border-box;
}
.notice-bar {
  display: flex;
  align-items: stretch;
  height: 84px;
  width: 100%;
  background: rgba(10, 18, 40, 0.32);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-radius: 10px 10px 0 0;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(0,0,0,0.20);
}

/* 左：标签块 */
.notice-bar-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  flex-shrink: 0;
  width: 80px;
  padding: 0 14px;
  border-right: 1px solid rgba(78, 146, 229, 0.25);
  color: #fff;
  white-space: nowrap;
}
.notice-bar-icon-fa {
  font-size: 16px;
  opacity: 0.95;
}
.notice-bar-label-text {
  font-size: 11.5px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.1em;
}

/* 中：Swiper */
.notice-bar-swiper {
  flex: 1;
  min-width: 0;
  height: 100%;
  overflow: hidden;
}
.notice-bar-swiper .swiper-wrapper {
  transition-timing-function: linear !important; /* 匀速，不是 ease */
}
.notice-bar-slide {
  height: 84px;
  width: auto !important;  /* slidesPerView:'auto' 时由内容撑开 */
  display: flex;
  align-items: center;
  box-sizing: border-box;
  position: relative;
}
/* 分割线：只占中间 50% 高度，不通栏 */
.notice-bar-slide + .notice-bar-slide::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  height: 50%;
  width: 1px;
  background: rgba(255,255,255,0.2);
}
.notice-bar-slide-inner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  height: 84px;
  text-decoration: none;
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  transition: background 0.2s;
}
.notice-bar-thumb {
  flex-shrink: 0;
  width: 60px;
  height: 48px;
  object-fit: cover;
  border-radius: 5px;
  opacity: 0.9;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  transition: opacity 0.2s, transform 0.2s;
}
.notice-bar-slide-body {
  min-width: 0;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.notice-bar-slide-title {
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  color: #fff;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}
.notice-bar-slide-inner:hover {
  background: rgba(255,255,255,0.08);
}
.notice-bar-slide-inner:hover .notice-bar-slide-title {
  color: #fff;
}
.notice-bar-slide-inner:hover .notice-bar-thumb {
  opacity: 1;
  transform: scale(1.04);
}
.notice-bar-slide-date {
  font-size: 11.5px;
  color: rgba(255,255,255,0.6);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.03em;
}

/* 右：更多 */
.notice-bar-arrow {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 0 18px;
  text-decoration: none;
  border-left: 1px solid rgba(255,255,255,0.2);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  transition: background 0.2s;
  letter-spacing: 0.04em;
}
.notice-bar-arrow:hover { background: rgba(0,0,0,0.15); }
.notice-bar-arrow .fa-chevron-right { font-size: 10px; opacity: 0.75; }

/* pad + 手机：统一脱离 banner，正常流到 banner 下方 */
@media (max-width: 1100px) {
  .notice-bar-outer {
    position: static;
    width: 100%;
  }
  .notice-bar {
    border-radius: 0;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    height: 68px;
    background: rgba(25, 60, 160, 0.96);
    box-shadow: 0 2px 12px rgba(0,0,0,0.25);
  }
  .notice-bar-slide { height: 68px; }
  .notice-bar-slide-inner { height: 68px; padding: 10px 16px; gap: 10px; }
  .notice-bar-thumb { width: 48px; height: 38px; }
  .notice-bar-arrow span { display: none; }
  .notice-bar-arrow { padding: 0 14px; }
}
@media (max-width: 767px) {
  .notice-bar {
    height: 60px;
  }
  .notice-bar-label {
    width: 62px;
    padding: 0 8px;
    gap: 3px;
  }
  .notice-bar-icon-fa { font-size: 12px; }
  .notice-bar-label-text { font-size: 10px; }
  .notice-bar-slide { height: 60px; }
  .notice-bar-slide-inner { height: 60px; padding: 8px 12px; gap: 8px; }
  .notice-bar-thumb { width: 38px; height: 30px; border-radius: 3px; }
  .notice-bar-slide-title { font-size: 12.5px; }
  .notice-bar-slide-date { font-size: 10.5px; }
  .notice-bar-arrow { padding: 0 10px; }
}

/* ---------- 通知公告卡片网格 ---------- */
.section-notice { background: var(--slate-50, #f8fafc); }
.notice-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}
@media (min-width: 768px) { .notice-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .notice-grid { grid-template-columns: repeat(4, 1fr); } }

.notice-card {
  position: relative;
  background: #fff;
  border-radius: 14px;
  padding: 2rem 1.75rem;
  border: none;
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  overflow: hidden;
  transition: transform var(--transition), box-shadow var(--transition), background var(--transition);
}
@media (min-width: 768px) {
  .notice-card { aspect-ratio: 3 / 4; }
}
.notice-card::after {
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  width: 130px;
  height: 130px;
  background: linear-gradient(135deg, transparent 50%, rgba(78, 146, 229, 0.10) 50%);
  pointer-events: none;
  transition: background var(--transition);
}
.notice-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(15,23,42,0.08);
  background: var(--brand-50, #eff6fe);
}
.notice-card:hover::after {
  background: linear-gradient(135deg, transparent 50%, rgba(78, 146, 229, 0.18) 50%);
}
.notice-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}
.notice-card-date {
  display: inline-flex;
  align-items: center;
  gap: 0.625rem;
  color: var(--slate-700);
}
.notice-card-date .d {
  font-size: 3rem;
  font-weight: 800;
  line-height: 1;
  color: var(--brand);
  letter-spacing: -0.02em;
}
.notice-card-date .m {
  font-size: 0.9375rem;
  color: var(--brand);
  background: rgba(78, 146, 229, 0.12);
  padding: 0.25rem 0.625rem;
  border-radius: 999px;
  font-weight: 500;
  line-height: 1.2;
}
.notice-card-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(78, 146, 229, 0.12);
  color: var(--brand);
  font-size: 1.375rem;
  flex-shrink: 0;
}

.notice-grid-toolbar {
  display: flex;
  justify-content: flex-end;
  margin-top: -2.5rem;
  margin-bottom: 1.25rem;
}
@media (max-width: 767px) {
  .notice-grid-toolbar { margin-top: 0; }
}
.notice-tag {
  display: inline-block;
  align-self: flex-start;
  font-size: 0.75rem;
  padding: 0.25rem 0.625rem;
  border-radius: 4px;
  font-weight: 500;
}
.notice-tag--blue { background: #dbeafe; color: #2563eb; }
.notice-tag--violet { background: #ede9fe; color: #7c3aed; }
.notice-tag--orange { background: #fed7aa; color: #c2410c; }
.notice-card h4 {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--slate-800);
  line-height: 1.5;
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.notice-card p {
  font-size: 1rem;
  color: var(--slate-500);
  line-height: 1.7;
  margin: 0;
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.notice-card .notice-more { position: relative; z-index: 1; }
.notice-more {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  color: var(--brand);
  font-size: 0.875rem;
  font-weight: 500;
  margin-top: auto;
  transition: gap var(--transition);
}
.notice-card:hover .notice-more { gap: 0.625rem; }

.notice-card--featured {
  background: linear-gradient(135deg, #1e3a8a 0%, #1e40af 100%);
  border-color: transparent;
  color: #fff;
}
.notice-card--featured h4 { color: #fff; }
.notice-card--featured p { color: rgba(255,255,255,0.85); }
.notice-card--featured .notice-card-date .d { color: #fff; }
.notice-card--featured .notice-card-date .m { color: rgba(255,255,255,0.7); }
.notice-card--featured .notice-tag { background: rgba(255,255,255,0.2); color: #fff; }
.notice-card--featured .notice-more { color: #fff; }

/* ---------- 分中心 + 联系 ---------- */
.section-branches { background: #fff; }
.branches-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.25rem;
}
@media (min-width: 768px) { .branches-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .branches-grid { grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 1.5rem; } }

.branch-card {
  background: #fff;
  border: 1px solid var(--slate-100);
  border-radius: 14px;
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  transition: transform var(--transition), box-shadow var(--transition), border-color var(--transition);
}
.branch-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(15,23,42,0.08);
  border-color: var(--brand-light, #93c5fd);
}
.branch-card-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.branch-card-head i {
  font-size: 1.25rem;
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  background: var(--blue-50, #eff6ff);
  color: var(--brand);
}
.branch-card-tag {
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--slate-500);
  letter-spacing: 0.05em;
}
.branch-card h4 {
  font-size: 1.0625rem;
  color: var(--slate-800);
  font-weight: 700;
  margin: 0;
}
.branch-card-meta {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.branch-card-meta li {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  font-size: 0.875rem;
  color: var(--slate-600);
  line-height: 1.6;
}
.branch-card-meta li i {
  color: var(--brand);
  width: 14px;
  flex-shrink: 0;
  margin-top: 4px;
}
.branch-card-meta a { color: inherit; }
.branch-card-meta a:hover { color: var(--brand); }
.branch-card-tags {
  font-size: 0.75rem;
  color: var(--slate-500);
  background: var(--slate-50, #f8fafc);
  padding: 0.625rem 0.875rem;
  border-radius: 8px;
  line-height: 1.65;
  margin-top: auto;
}

.branch-card--hq {
  background: linear-gradient(135deg, #1e3a8a 0%, #2563eb 100%);
  border-color: transparent;
  color: #fff;
}
.branch-card--hq h4,
.branch-card--hq .branch-card-meta li,
.branch-card--hq .branch-card-meta a { color: #fff; }
.branch-card--hq .branch-card-meta li i { color: rgba(255,255,255,0.85); }
.branch-card--hq .branch-card-tag { color: rgba(255,255,255,0.8); }
.branch-card--hq .branch-card-head i {
  background: rgba(255,255,255,0.18);
  color: #fff;
}

/* ============ 联系我们 - 北京地图联动版 ============ */
.bjmap-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 1.5rem;
}
@media (min-width: 1024px) {
  .bjmap-grid {
    grid-template-columns: 400px 1fr;
    gap: 2rem;
  }
}
.bjmap-side {
  display: flex;
  flex-direction: column;
  gap: 0.875rem;
}
.contact-card {
  background: #f4f7fd;
  border-radius: 12px;
  padding: 1.125rem 1.25rem;
  border: none;
  transition: all var(--transition);
  cursor: default;
}
.contact-card.is-active {
  border-color: var(--brand);
  box-shadow: 0 8px 24px rgba(78,146,229,0.18);
  transform: translateY(-2px);
}
.contact-card--hq {
  background: linear-gradient(135deg, #2557b2 0%, #1a3c80 100%);
  color: #fff;
  border: 0;
}
.contact-card--hq.is-active {
  box-shadow: 0 12px 32px rgba(78,146,229,0.4);
}
.contact-card--hq .contact-card-meta a { color: #fff; }
.contact-card--hq .contact-card-meta i { color: rgba(255,255,255,0.85); }
.contact-card-head {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  margin-bottom: 0.875rem;
}
.contact-card-head i {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  background: rgba(78,146,229,0.1);
  color: var(--brand);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  flex-shrink: 0;
}
.contact-card--hq .contact-card-head i {
  background: rgba(255,255,255,0.18);
  color: #fff;
}
.contact-card--hq .contact-card-head > span:first-child {
  font-size: 1.5rem;
  line-height: 1;
}
.contact-card-head h4 {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.01em;
}
.contact-card-meta {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.55;
}
.contact-card-meta li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}
.contact-card-meta i {
  width: 16px;
  margin-top: 3px;
  color: var(--brand);
  font-size: 12px;
}
.contact-card-meta a { color: inherit; }
.contact-card-meta a:hover { color: var(--brand); }
.contact-card-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px dashed var(--slate-100);
}
.contact-card-tags .biz-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.25rem 0.625rem;
  background: var(--slate-50, #f8fafc);
  color: var(--slate-600);
  border-radius: 999px;
  font-size: 0.75rem;
  cursor: pointer;
  transition: all var(--transition);
}
.contact-card-tags .biz-tag:hover {
  background: var(--brand);
  color: #fff;
}

.bjmapwrap {
  position: relative;
  background:
    radial-gradient(circle at 30% 20%, rgba(78,146,229,0.05) 0%, transparent 50%),
    radial-gradient(circle at 70% 80%, rgba(168,153,212,0.04) 0%, transparent 50%),
    #ffffff;
  border-radius: 16px;
  border: 1px solid rgba(78,146,229,0.12);
  padding: 1.5rem;
  box-shadow:
    0 1px 2px rgba(15,23,42,0.04),
    0 12px 32px rgba(78,146,229,0.06);
  overflow: hidden;
}
.bjmapwrap::before {
  /* 装饰网格 */
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(78,146,229,0.04) 1px, transparent 1px),
    linear-gradient(90deg, rgba(78,146,229,0.04) 1px, transparent 1px);
  background-size: 40px 40px;
  pointer-events: none;
  opacity: 0.6;
}
.bjmap {
  position: relative;
  z-index: 1;
  height: 100%;
  min-height: 520px;
  width: 100%;
}
.bjmap-legend {
  position: absolute;
  right: 1.25rem;
  bottom: 1.25rem;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  padding: 0.875rem 1rem;
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(78,146,229,0.15);
  border-radius: 10px;
  font-size: 0.8125rem;
  color: var(--slate-700);
  box-shadow: 0 6px 18px rgba(15,23,42,0.06);
}
.bjmap-legend span {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
}
.bjmap-legend .dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  display: inline-block;
  box-shadow: 0 0 0 2px rgba(255,255,255,0.9), 0 1px 2px rgba(0,0,0,0.08);
}
.bjmap-legend .dot--hq    { background: #7ba7d9; }
.bjmap-legend .dot--east  { background: #e8c479; }
.bjmap-legend .dot--west  { background: #8ec5a8; }
.bjmap-legend .dot--south { background: #b9a3d4; }

/* ============ 首页联系我们 - 设计图版 ============ */
.contact-network {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 75% 50%, rgba(78,146,229,0.10) 0%, transparent 55%),
    linear-gradient(180deg, #f5f9fe 0%, #eaf2fb 100%);
  isolation: isolate;
}
/* .contact-network::after removed */
.contact-network-inner {
  max-width: 1280px;
  min-height: 720px;
  padding: 4.5rem 0;
  margin: 0 auto;
  position: relative;
}
.contact-network-heading {
  position: relative;
  width: 100%;
  margin: 0 0 24px;
  text-align: center;
}
.contact-network-heading h3 {
  position: relative;
  z-index: 1;
  margin: 0 0 8px;
  color: #112e69;
  font-size: 40px;
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: 0;
}
.contact-network-heading p {
  position: relative;
  z-index: 1;
  margin: 0 auto;
  max-width: 720px;
  color: #1f3f73;
  font-size: 16px;
  line-height: 1.55;
  font-weight: 500;
}
.contact-network-kicker {
  position: absolute;
  left: 150px;
  top: -20px;
  color: rgba(34, 101, 178, 0.07);
  font-size: 58px;
  line-height: 1;
  font-weight: 900;
  letter-spacing: 0.08em;
  white-space: nowrap;
  pointer-events: none;
}
/* 左列卡片 + 右侧地图 布局 */
.contact-network .contact-layout {
  display: grid;
  grid-template-columns: 420px 1fr;
  gap: 28px;
  align-items: stretch;
}
.contact-network .contact-cards-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
/* 总部大卡 */
.contact-network .contact-cards-col .contact-card--hq {
  min-height: 0;
  padding: 24px 22px;
  flex-shrink: 0;
}
/* 三个分中心：一行一个 */
.contact-network .contact-branches-col {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
/* 分中心小卡：字号略缩 */
.contact-network .contact-branches-col .contact-card {
  padding: 0.75rem 1rem;
  width: 88%;
}
.contact-network .contact-branches-col .contact-card-head {
  margin-bottom: 0.5rem;
}
.contact-network .contact-branches-col .contact-card-head h4 {
  font-size: 13px;
}
.contact-network .contact-branches-col .contact-card-meta {
  font-size: 0.8rem;
}
.contact-network .contact-branches-col .contact-card-tags {
  padding-top: 0.5rem;
}
.contact-network .contact-branches-col .biz-tag {
  font-size: 11px;
  padding: 0.15rem 0.45rem;
}
@media (max-width: 1023px) {
  .contact-network .contact-layout {
    grid-template-columns: 1fr;
  }
}

/* 上排: 总部卡 + 地图 */
.contact-network .contact-hero {
  display: grid;
  grid-template-columns: minmax(400px, 520px) 1fr;
  gap: 36px;
  align-items: stretch;
}
@media (max-width: 1023px) {
  .contact-network .contact-hero { grid-template-columns: 1fr; }
}

/* 下排: 3 张分中心卡 */
.contact-network .contact-branches {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 1023px) {
  .contact-network .contact-branches { grid-template-columns: 1fr; }
}

/* 圆形数字徽章 - inline 内嵌, 与标题左对齐 */
.contact-num {
  flex-shrink: 0;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  box-shadow: 0 4px 10px rgba(15,23,42,0.15);
  border: 2px solid #fff;
}
.contact-num--east  { background: linear-gradient(135deg, #6ea4ec, #3174d8); }
.contact-num--west  { background: linear-gradient(135deg, #4dd0a4, #1eaf7b); }
.contact-num--south { background: linear-gradient(135deg, #b89cef, #8e6fe0); }

.contact-network .contact-card--num .contact-card-head { gap: 8px; }
.contact-network .contact-card--num .contact-card-head h4 { font-size: 15px; }

/* 标题下蓝色短粗线 */
.contact-network .section-heading {
  text-align: center;
  margin-bottom: 36px;
  position: relative;
  z-index: 2;
}
.contact-network .section-heading h3 {
  position: relative;
  padding-bottom: 16px;
  margin-bottom: 12px;
  z-index: 2;
}
.contact-network .section-heading h3::after {
  content: '';
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 44px;
  height: 3px;
  border-radius: 2px;
  background: linear-gradient(90deg, #5da8ff, #2f80ed);
}
.contact-network .section-heading p {
  font-size: 14px;
  color: var(--slate-500);
  font-weight: 500;
}
.contact-network .contact-card {
  --branch-color: #2f80ed;
  --branch-soft: #eef6ff;
  --branch-text: #1f579c;
  position: relative;
  overflow: hidden;
  min-height: 130px;
  padding: 20px 24px 18px;
  border: none;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 2px 12px rgba(37, 99, 235, 0.07);
  backdrop-filter: blur(10px);
}
.contact-network .contact-card[data-branch="east"] {
  --branch-color: #3174d8;
  --branch-soft: #e3edfc;
  --branch-text: #1f5bbf;
}
.contact-network .contact-card[data-branch="west"] {
  --branch-color: #1eaf7b;
  --branch-soft: #ddf5ea;
  --branch-text: #128a5e;
}
.contact-network .contact-card[data-branch="south"] {
  --branch-color: #8e6fe0;
  --branch-soft: #efe9fa;
  --branch-text: #7350d2;
}
/* 非总部卡装饰已移除 */
.contact-network .contact-card.is-active {
  border-color: color-mix(in srgb, var(--branch-color) 55%, #fff);
  box-shadow: 0 18px 42px rgba(34, 89, 155, 0.2);
  transform: translateY(-2px);
}
.contact-network .contact-card--hq {
  min-height: 320px;
  padding: 36px;
  border: none;
  border-radius: 20px;
  background: #fff;
  color: var(--slate-800);
  box-shadow: 0 2px 12px rgba(37, 99, 235, 0.07);
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.contact-network .contact-card--hq::before {
  /* 右下楼宇照片 - 渐隐进底色 */
  content: '';
  position: absolute;
  right: 0;
  bottom: 0;
  width: 60%;
  height: 75%;
  background-image:
    linear-gradient(to right, #ffffff 0%, rgba(255,255,255,0.4) 30%, transparent 60%),
    linear-gradient(to top, rgba(255,255,255,0.4) 0%, transparent 50%);
  background-size: cover, cover, cover;
  background-position: center;
  background-repeat: no-repeat;
  opacity: 0.55;
  pointer-events: none;
}
/* 总部卡装饰元素已移除 */
.contact-network .contact-card-head {
  position: relative;
  z-index: 1;
  gap: 12px;
  margin-bottom: 14px;
}
.contact-network .contact-card-head i {
  width: 38px;
  height: 38px;
  border-radius: 10px;
  background: var(--branch-soft);
  color: var(--branch-color);
  font-size: 15px;
}
.contact-network .contact-card--hq .contact-card-head i {
  background: linear-gradient(135deg, #5da8ff, #2f80ed);
  color: #fff;
  box-shadow: 0 6px 14px rgba(47, 128, 237, 0.32);
}
.contact-network .contact-card-head h4 {
  color: #112e69;
  font-size: 22px;
  line-height: 1.2;
  font-weight: 800;
}
.contact-network .contact-card--hq .contact-card-head h4 {
  color: #1e3a73;
  font-size: 24px;
}
.contact-card-badge {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
  padding: 2px 12px;
  border-radius: 999px;
  background: var(--branch-soft);
  color: var(--branch-text);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
}
.contact-card--hq .contact-card-badge {
  background: rgba(82, 157, 255, 0.16);
  color: #1e63b8;
}
.contact-network .contact-card-meta {
  position: relative;
  z-index: 1;
  color: #173b72;
  font-size: 16px;
  line-height: 1.65;
  gap: 10px 24px;
}
.contact-network .contact-card:not(.contact-card--hq) .contact-card-meta {
  flex-direction: row;
  flex-wrap: wrap;
  max-width: 315px;
}
.contact-network .contact-card-meta li {
  align-items: center;
  gap: 10px;
}
.contact-network .contact-card-meta i {
  width: 18px;
  margin-top: 0;
  color: var(--branch-color);
  font-size: 14px;
  text-align: center;
}
.contact-network .contact-card--hq .contact-card-meta {
  max-width: 330px;
  color: #1e3a73;
}
.contact-network .contact-card--hq .contact-card-meta i {
  color: #2657b3;
}
.contact-network .contact-card--hq .contact-card-meta a {
  color: #1e3a73;
}
.contact-network .contact-card--hq .contact-card-meta a:hover {
  color: #0e3a93;
}
.addr-label {
  font-style: normal;
  font-weight: 600;
  color: #2657b3;
  margin-right: 0.15em;
  white-space: nowrap;
}
.contact-network .contact-card-tags {
  position: relative;
  z-index: 1;
  gap: 8px;
  margin-top: 12px;
  padding-top: 0;
  border-top: 0;
}
.contact-network .contact-card-tags .biz-tag {
  min-width: 48px;
  justify-content: center;
  padding: 4px 12px;
  border-radius: 999px;
  background: rgba(232, 241, 252, 0.9);
  color: #37577f;
  font-size: 13px;
  font-weight: 700;
}
.contact-network .contact-card-tags .biz-tag:hover,
.contact-network .contact-card-tags .biz-tag.is-active {
  background: var(--branch-color);
  color: #fff;
  box-shadow: 0 8px 18px color-mix(in srgb, var(--branch-color) 24%, transparent);
  transform: translateY(-1px);
}
.contact-network .bjmapwrap {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
  position: relative;
}
.contact-network .bjmapwrap::before {
  /* 雷达圆环装饰 */
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 720px;
  height: 720px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background:
    radial-gradient(circle,
      transparent 0,
      transparent 140px,
      rgba(78,146,229,0.08) 141px,
      rgba(78,146,229,0.08) 142px,
      transparent 143px,
      transparent 240px,
      rgba(78,146,229,0.06) 241px,
      rgba(78,146,229,0.06) 242px,
      transparent 243px,
      transparent 340px,
      rgba(78,146,229,0.04) 341px,
      rgba(78,146,229,0.04) 342px,
      transparent 343px);
  pointer-events: none;
  z-index: 0;
  display: block;
  animation: contact-radar 24s linear infinite;
}
@keyframes contact-radar {
  to { transform: translate(-50%, -50%) rotate(360deg); }
}
.contact-network .bjmap {
  position: relative;
  z-index: 1;
  min-height: 600px;
  filter: drop-shadow(0 24px 24px rgba(28, 87, 148, 0.12));
}
.contact-network .bjmap-status {
  position: absolute;
  top: 2px;
  right: 0;
  z-index: 4;
  width: 190px;
  padding: 16px 17px 14px;
  border: 1px solid rgba(116, 161, 214, 0.18);
  border-radius: 12px;
  background: rgba(255,255,255,0.86);
  box-shadow: 0 18px 40px rgba(30, 82, 139, 0.13);
  backdrop-filter: blur(12px);
  color: #173b72;
}
.contact-network .bjmap-status h4 {
  margin: 0 0 10px;
  color: #17305f;
  font-size: 15px;
  line-height: 1.2;
  font-weight: 800;
}
.contact-network .bjmap-status p,
.contact-network .bjmap-status-list span,
.contact-network .bjmap-status a {
  display: flex;
  align-items: center;
}
.contact-network .bjmap-status p {
  gap: 8px;
  margin: 0 0 14px;
  color: #36577e;
  font-size: 13px;
  font-weight: 700;
}
.contact-network .bjmap-status-list {
  display: grid;
  gap: 9px;
  padding: 12px 0;
  border-top: 1px solid rgba(119, 155, 198, 0.15);
  border-bottom: 1px solid rgba(119, 155, 198, 0.15);
}
.contact-network .bjmap-status-list span {
  gap: 8px;
  color: #345176;
  font-size: 13px;
}
.contact-network .bjmap-status-list b {
  margin-left: auto;
  color: #173b72;
  font-size: 12px;
}
.contact-network .bjmap-status a {
  justify-content: space-between;
  margin-top: 12px;
  color: #2868d8;
  font-size: 13px;
  font-weight: 800;
}
.contact-network .bjmap-status a i {
  font-size: 11px;
}
.contact-network .bjmap-status .dot,
.contact-network .bjmap-legend .dot {
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  border-radius: 50%;
  box-shadow: 0 0 0 4px rgba(255,255,255,0.85), 0 4px 10px rgba(23, 70, 129, 0.12);
}
.contact-network .dot--ok { background: #20b98d; }
.contact-network .bjmap-legend {
  display: none;
}
.contact-network .dot--hq { background: #3b82f6; }
.contact-network .dot--east { background: #f6b719; }
.contact-network .dot--west { background: #20b98d; }
.contact-network .dot--south { background: #8c68e8; }

@media (max-width: 1180px) {
  .contact-network-inner {
    min-height: 0;
    padding: 54px 28px;
  }
  .contact-network .bjmap-grid {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto;
  }
  .contact-network .bjmap-side {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
  }
  .contact-network .contact-card--hq {
    grid-column: 1 / -1;
  }
  .contact-network .bjmap {
    min-height: 620px;
  }
}

/* ====== contact-hero / contact-branches 布局 ====== */
.contact-network .contact-hero {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
  align-items: start;
}
.contact-network .contact-branches {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

@media (min-width: 768px) {
  .contact-network .contact-branches {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1024px) {
  .contact-network .contact-hero {
    grid-template-columns: minmax(300px, 0.55fr) minmax(0, 1fr);
    column-gap: 32px;
    align-items: center;
    margin-top: 0;
  }
  .contact-network .contact-hero .contact-card--hq {
    height: auto;
    min-height: 0;
    align-self: center;
    margin-top: 0;
  }
  .contact-network .bjmapwrap {
    margin-top: 0;
  }
  .contact-network .contact-branches {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 60px;
    margin-top: 24px;
    position: relative;
    z-index: 2;
    padding: 0px 30px;
  }
}
/* 1024~1200px 过渡区间：联系我们布局收窄 */
@media (min-width: 1024px) and (max-width: 1200px) {
  .contact-network .contact-hero {
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    column-gap: 20px;
  }
  .contact-network .contact-branches {
    gap: 20px;
    padding: 0 10px;
  }
  .contact-network .bjmap {
    min-height: 480px;
  }
  .contact-network .bjmapwrap::before {
    width: 520px;
    height: 520px;
  }
  .contact-network-inner {
    padding: 54px 20px;
  }
}

@media (max-width: 760px) {
  .contact-network-inner {
    padding: 44px 16px;
  }
  .contact-network-heading h3 {
    font-size: 32px;
  }
  .contact-network-heading p {
    font-size: 14px;
  }
  .contact-network-kicker {
    left: 76px;
    top: -14px;
    font-size: 38px;
  }
  .contact-network .bjmap-side {
    grid-template-columns: 1fr;
  }
  .contact-network .contact-card,
  .contact-network .contact-card--hq {
    min-height: auto;
    padding: 18px;
  }
  .contact-network .contact-card-head h4,
  .contact-network .contact-card--hq .contact-card-head h4 {
    font-size: 20px;
  }
  .contact-network .contact-card--hq::before,
  .contact-network .contact-card--hq::after,
  .contact-network .contact-card:not(.contact-card--hq)::before,
  .contact-network .contact-card:not(.contact-card--hq)::after {
    opacity: 0.2;
  }
  .contact-network .contact-card:not(.contact-card--hq) .contact-card-meta,
  .contact-network .contact-card-tags {
    max-width: none;
  }
  .contact-network .bjmapwrap,
  .contact-network .bjmap {
    min-height: 460px;
  }
  .contact-network .bjmap-status {
    position: relative;
    top: auto;
    right: auto;
    width: 100%;
    margin-top: 12px;
  }
  .contact-network .bjmap-legend {
    position: relative;
    right: auto;
    bottom: auto;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    width: 100%;
    margin-top: 12px;
  }
}

/* ============ 法律法规 / 标准规范 文档列表 ============ */
.doc-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1.75rem;
}
.doc-list {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding-bottom: 3rem;
}
.doc-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  background: #fff;
  border: 1px solid var(--slate-200, #e2e8f0);
  border-radius: 0.75rem;
  padding: 1.25rem 1.5rem;
  transition: box-shadow 0.2s, border-color 0.2s;
}
.doc-item:hover {
  border-color: var(--brand, #2563eb);
  box-shadow: 0 4px 20px rgba(37,99,235,0.08);
}
.doc-item-icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 0.5rem;
  background: var(--brand-50, #eff6ff);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brand, #2563eb);
  font-size: 1rem;
  margin-top: 2px;
}
.doc-item-body {
  flex: 1;
  min-width: 0;
}
.doc-item-body h4 {
  margin: 0 0 0.375rem;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--slate-800, #1e293b);
  line-height: 1.4;
}
.doc-item-body p {
  margin: 0 0 0.625rem;
  font-size: 0.8125rem;
  color: var(--slate-500, #64748b);
  line-height: 1.6;
}
.doc-item-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
}
.doc-item-meta span {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.75rem;
  color: var(--slate-400, #94a3b8);
}
.doc-item-meta i { font-size: 0.7rem; }
.doc-item-badge {
  flex-shrink: 0;
  align-self: center;
  padding: 0.25rem 0.6rem;
  border-radius: 0.375rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  background: rgba(37,99,235,0.08);
  color: var(--brand, #2563eb);
  white-space: nowrap;
}
.doc-item-badge--std  { background: rgba(16,185,129,0.1);  color: #059669; }
.doc-item-badge--ind  { background: rgba(245,158,11,0.1);  color: #d97706; }
.doc-item-badge--local{ background: rgba(139,92,246,0.1);  color: #7c3aed; }
@media (max-width: 600px) {
  .doc-item { flex-wrap: wrap; }
  .doc-item-badge { align-self: flex-start; }
}
.doc-item--clickable {
  cursor: pointer;
}
.doc-item--clickable:hover {
  border-color: var(--brand, #2563eb);
  box-shadow: 0 4px 20px rgba(37,99,235,0.1);
}
.doc-item--clickable .doc-item-icon {
  background: rgba(37,99,235,0.12);
  color: #e53e3e;
}
.doc-item-preview-hint {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 8px;
  font-size: 0.75rem;
  font-weight: 500;
  color: var(--brand, #2563eb);
  opacity: 0.75;
}
.doc-item--clickable:hover .doc-item-preview-hint { opacity: 1; }

/* ---- 法律法规 / 标准规范 表格 ---- */
.laws-table-title {
  text-align: center;
  font-size: 1.25rem;
  font-weight: 700;
  color: #1e3a5f;
  margin: 2rem 0 0;
  letter-spacing: 0.02em;
}
.laws-table-wrap {
  overflow-x: auto;
  margin-top: 2rem;
  margin-bottom: 3rem;
  border-radius: 0.75rem;
  border: 1px solid #dbe8f8;
  box-shadow: 0 2px 12px rgba(30,58,120,0.06);
  overflow: hidden;
}
.laws-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 1rem;
}
.laws-table thead tr {
  background: #eef4ff;
}
.laws-table th {
  padding: 1rem 1.75rem;
  text-align: left;
  font-weight: 700;
  color: #1e3a5f;
  font-size: 1rem;
  border-bottom: 2px solid #c7d9f5;
  white-space: nowrap;
}
.laws-table td {
  padding: 1.125rem 1.75rem;
  color: #334155;
  border-bottom: 1px solid #e8eef8;
  vertical-align: middle;
  font-size: 1rem;
  line-height: 1.65;
}
.laws-table tbody tr:last-child td {
  border-bottom: none;
}
.laws-table tbody tr:hover {
  background: #f5f9ff;
}
.laws-table th:first-child,
.laws-table td:first-child { width: 38%; }
.laws-table th:nth-child(2),
.laws-table td:nth-child(2) { width: 44%; }
.laws-table th:last-child,
.laws-table td:last-child  { width: 18%; white-space: nowrap; }
.laws-link {
  color: #1d4ed8;
  text-decoration: none;
  cursor: default;
}
.laws-link--pdf {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
}
.laws-link--pdf:hover { color: #1e40af; }
.laws-row--clickable { cursor: pointer; }
.laws-row--clickable:hover { background: #eff6ff !important; }
.laws-eye {
  font-size: 0.8125rem;
  opacity: 0.45;
  transition: opacity 0.15s;
}
.laws-row--clickable:hover .laws-eye { opacity: 1; }
@media (max-width: 768px) {
  .laws-table th, .laws-table td {
    padding: 0.875rem 1rem;
    font-size: 0.9375rem;
  }
}
@media (max-width: 480px) {
  .laws-table th, .laws-table td {
    padding: 0.75rem 0.75rem;
    font-size: 0.875rem;
  }
}

/* ---- PDF 预览弹窗 ---- */
.pdf-modal {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 9000;
  align-items: center;
  justify-content: center;
}
.pdf-modal.is-open { display: flex; }
.pdf-modal-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(10,20,40,0.75);
}
.pdf-modal-box {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  width: min(860px, 96vw);
  height: min(90vh, 920px);
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 24px 64px rgba(10,20,40,0.3);
  animation: pdf-modal-in 0.22s ease;
}
@keyframes pdf-modal-in {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
.pdf-modal-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0 1rem;
  height: 50px;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
  flex-shrink: 0;
}
.pdf-modal-title {
  flex: 1;
  font-size: 0.875rem;
  font-weight: 600;
  color: #1e293b;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.pdf-modal-nav {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  flex-shrink: 0;
}
.pdf-nav-btn {
  width: 30px;
  height: 30px;
  border: 1px solid #e2e8f0;
  background: #fff;
  border-radius: 6px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #475569;
  font-size: 0.75rem;
  transition: background 0.15s, color 0.15s;
}
.pdf-nav-btn:hover:not(:disabled) { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
.pdf-nav-btn:disabled { opacity: 0.35; cursor: default; }
.pdf-page-info {
  font-size: 0.8125rem;
  color: #64748b;
  min-width: 48px;
  text-align: center;
}
.pdf-modal-close {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  border: none;
  background: none;
  cursor: pointer;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #64748b;
  font-size: 1rem;
  transition: background 0.15s, color 0.15s;
}
.pdf-modal-close:hover { background: #fee2e2; color: #dc2626; }
.pdf-modal-body {
  flex: 1;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 0;
}
/* PC iframe 模式 */
.pdf-modal-body.mode-desktop {
  padding: 0;
  background: #fff;
}
.pdf-modal-body.mode-desktop .pdf-modal-frame {
  flex: 1;
  width: 100%;
  height: 100%;
  border: none;
  display: block;
}
/* 手机 canvas 模式 */
.pdf-modal-body.mode-mobile {
  overflow-y: auto;
  overflow-x: hidden;
  align-items: center;
  padding: 1rem;
  background: #f1f5f9;
  gap: 0.75rem;
}
.pdf-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  color: #64748b;
  font-size: 0.9rem;
  padding: 3rem 0;
}
#pdfCanvas {
  display: none;
  max-width: 100%;
  box-shadow: 0 2px 12px rgba(0,0,0,0.15);
  border-radius: 4px;
  background: #fff;
}

@media (max-width: 767px) {
  .hero-title {
    font-size: clamp(1.25rem, 6vw, 1.75rem);
    margin-bottom: 0.75rem;
  }
  .hero-desc {
    font-size: 0.8125rem;
    margin-bottom: 1.25rem;
  }
  .hero--home { padding: 0rem 0; overflow: hidden; }
  .hero-actions .btn { font-size: 0.875rem; padding: 0.5rem 1.25rem; }
  .hero-content { padding: 0 1rem; }
  .hero-title { word-break: break-all; }
  .hero-desc { word-break: break-all; }
  .hero-swiper-pagination { bottom: 0.5rem !important; }
  .hero-swiper-pagination .swiper-pagination-bullet { width: 6px; height: 6px; }
  .hero-swiper-pagination .swiper-pagination-bullet-active { width: 18px; }
}

/* ============================================================
   首页：单位介绍横向滑动区块
   ============================================================ */
.org-scroll-section {
  position: relative;
  background: url('../img/org-scroll-section.jpg') center center / cover no-repeat;
  padding: 4.5rem 0;
}
@media (max-width: 1100px) {
  .org-scroll-section { padding: 0; }
}


/* 滑动轨道：overflow 隐藏，内部面板并排 */
.org-scroll-track-wrap {
  overflow: hidden;
  position: relative;
  padding-bottom: 1.5rem;
}
.org-scroll-track {
  display: flex;
  width: 400%;
  transition: transform 0.55s cubic-bezier(0.65, 0, 0.35, 1);
  will-change: transform;
}
.org-scroll-panel {
  width: 25%;
  flex-shrink: 0;
}

/* 底部指示按钮 */
.org-scroll-dots {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  padding: 0rem 0 0rem;
  background: transparent;
}
.org-scroll-dot-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.6rem 1.4rem;
  border-radius: 999px;
  border: none;
  background: rgba(255,255,255,0.82);
  color: var(--slate-500, #64748b);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  white-space: nowrap;
  transition: background 0.25s, color 0.25s, box-shadow 0.25s, padding 0.25s, opacity 0.25s;
  box-shadow: 0 1px 4px rgba(0,0,0,0.18);
  opacity: 0.85;
}
.org-scroll-dot-btn i {
  font-size: 14px;
}
.org-scroll-dot-btn:hover {
  opacity: 1;
  background: #fff;
  box-shadow: 0 2px 8px rgba(0,0,0,0.18);
}
.org-scroll-dot-btn.is-active {
  background: var(--slate-700, #334155);
  color: #fff;
  padding: 0.6rem 2rem;
  box-shadow: 0 2px 6px rgba(0,0,0,0.22);
  font-weight: 600;
  opacity: 1;
}

/* ---- pad + 手机端：取消横向滑动，改为垂直平铺 ---- */
@media (max-width: 1100px) {
  .org-scroll-track-wrap {
    overflow: visible;
    padding: 0;
  }
  .org-scroll-track {
    width: 100%;
    flex-direction: column;
    transform: none !important;
    transition: none;
  }
  .org-scroll-panel {
    width: 100%;
    padding: 3rem 0;
    border-bottom: none;
  }
  .org-scroll-panel:nth-child(1) { background: #f5f9fe; }
  .org-scroll-panel:nth-child(2) { background: #eaf2fb; }
  .org-scroll-panel:nth-child(3) { background: #dce8f7; }
  .org-scroll-panel:nth-child(4) { background: #cfddf4; }
  .org-scroll-dots { display: none; }
}
@media (max-width: 1100px) {
  /* pad + 手机端：发明专利、荣誉证书只显示第一行6个，隐藏第二行 */
  .honor-row--patent-2 { display: none; }
  .honor-row--cert-2   { display: none; }
}
@media (max-width: 767px) {
  .org-scroll-panel { padding: 2.5rem 0; }
  /* 第一行手机端 3 列（发明专利 + 荣誉证书统一） */
  .honor-row { grid-template-columns: repeat(3, 1fr); gap: 0.625rem; }
  .honor-row--patent { grid-template-columns: repeat(3, 1fr); }
  .honor-row--cert   { grid-template-columns: repeat(3, 1fr); }
}

/* 发展历程图片 */
.history-img-wrap {
  width: 100%;
  padding: 0  rem 0 0;
}
.history-img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 0.75rem;
}

/* ============================================================
   发展历程：气泡针（Map Pin）风格
   ============================================================ */

/* 面板整体：浅蓝背景，全宽填充 */
.pin-panel {
  background: #ddeef8;
  padding: 0 !important;
  display: flex;
  flex-direction: column;
  min-height: 480px;
}

.pin-section-heading {
  padding: 1.5rem 3rem 0;
  flex-shrink: 0;
}
.pin-section-heading h3 {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--slate-800);
  display: flex;
  align-items: center;
  gap: 0.75rem;
}
.pin-section-heading h3::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 1.6em;
  background: var(--brand);
  border-radius: 3px;
  flex-shrink: 0;
}

/* 舞台：相对定位，承载 SVG 路径和气泡节点，填满剩余高度 */
.pin-stage {
  position: relative;
  flex: 1;
  min-height: 380px;
  margin: 0;
  padding: 0 1%;
  overflow: hidden;
}

/* SVG 弯曲路径 */
.pin-path-svg {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 55%;
  pointer-events: none;
}
.pin-path-line {
  stroke: #9fc5de;
  stroke-width: 3.5;
  stroke-dasharray: 10 6;
  fill: none;
}

/* 节点容器：绝对定位，用 CSS 变量控制位置 */
.pin-nodes {
  position: absolute;
  inset: 0;
}
.pin-node {
  position: absolute;
  left: var(--pin-x);
  top: var(--pin-y);
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  cursor: default;
  transition: transform 0.25s ease;
}
.pin-node:hover {
  transform: translateX(-50%) translateY(-6px);
}

/* 气泡主体（水滴形：圆形顶 + 尖底） */
.pin-bubble {
  background: var(--pin-color, #e53935);
  color: #fff;
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 0.75em 0.9em 1em;
  position: relative;
  box-shadow: 0 6px 20px rgba(0,0,0,0.18);
  /* 尖角通过伪元素实现 */
}
.pin-bubble::after {
  content: '';
  position: absolute;
  bottom: -12px;
  left: 50%;
  transform: translateX(-50%);
  width: 0;
  height: 0;
  border-left: 10px solid transparent;
  border-right: 10px solid transparent;
  border-top: 14px solid var(--pin-color, #e53935);
  filter: drop-shadow(0 4px 4px rgba(0,0,0,0.12));
}

/* ============================================================
   单位简介：左文右图 + 悬浮统计卡片
   ============================================================ */
.about-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 4rem;
  align-items: center;
}
@media (max-width: 900px) {
  .about-layout { grid-template-columns: 1fr; gap: 2rem; }
}

/* 左侧文字 */
.about-label {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--brand);
  margin-bottom: 1rem;
  letter-spacing: 0.08em;
}
.about-label span {
  display: inline-block;
  width: 28px;
  height: 3px;
  background: var(--brand);
  border-radius: 2px;
}
.about-title {
  font-size: clamp(1.625rem, 3vw, 2.25rem);
  font-weight: 800;
  color: var(--slate-900, #0f172a);
  line-height: 1.2;
  margin-bottom: 0.75rem;
  letter-spacing: -0.01em;
}
.about-slogan {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--brand);
  margin-bottom: 1.75rem;
  letter-spacing: 0.04em;
}
.about-body { display: flex; flex-direction: column; gap: 0.875rem; }
.about-body p {
  font-size: 0.9375rem;
  color: var(--slate-600, #475569);
  line-height: 1.8;
  margin: 0;
}

/* 右侧图片区 */
.about-right { position: relative; }
.about-img-wrap {
  position: relative;
  border-radius: 1.25rem;
  overflow: visible;
  display: flex;
  align-items: stretch;
}
.about-img {
  width: 100%;
  height: 520px;   /* 比统计卡片(≈466px)更高，超出裁剪 */
  object-fit: cover;
  object-position: center;
  border-radius: 1.25rem;
  display: block;
  box-shadow: 0 8px 24px rgba(15, 35, 80, 0.08);
}

/* 悬浮统计卡片 */
.about-stats-card {
  position: absolute;
  right: -1.5rem;
  top: 50%;
  transform: translateY(-50%);
  background: #e8f1fd;
  border-radius: 1rem;
  padding: 1.5rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0;
  box-shadow: 0 16px 40px rgba(37, 99, 235, 0.12);
  min-width: 140px;
}
.about-stat-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 1rem 0.5rem;
  border-bottom: 1px solid rgba(37, 99, 235, 0.12);
}
.about-stat-item:last-child { border-bottom: none; }
.about-stat-icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(37, 99, 235, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #2563eb;
  font-size: 1rem;
  margin-bottom: 0.625rem;
}
.about-stat-num {
  font-size: 1.625rem;
  font-weight: 800;
  color: #1e3a6e;
  line-height: 1;
  margin-bottom: 0.25rem;
}
.about-stat-num span {
  font-size: 1rem;
  font-weight: 600;
}
.about-stat-label {
  font-size: 0.75rem;
  color: #4b6fa8;
  white-space: nowrap;
}

/* pad 端：图片缩矮，stats-card 移到图片正下方横排 */
@media (min-width: 768px) and (max-width: 1100px) {
  .about-img-wrap {
    flex-direction: column;
    border-radius: 1rem;
  }
  .about-img {
    height: 280px;
    border-radius: 1rem 1rem 0 0;
  }
  .about-stats-card {
    position: static;
    transform: none;
    flex-direction: row;
    justify-content: space-around;
    min-width: unset;
    width: 100%;
    margin-top: 0;
    border-radius: 0 0 1rem 1rem;
    box-shadow: 0 8px 24px rgba(78, 146, 229, 0.25);
    padding: 0.75rem 1rem;
  }
  .about-stat-item {
    border-bottom: none;
    border-right: 1px solid rgba(255,255,255,0.15);
    padding: 0.75rem 1rem;
    flex: 1;
  }
  .about-stat-item:last-child { border-right: none; }
}

@media (max-width: 767px) {
  .about-img { display: none; }
  .about-img-wrap {
    flex-direction: column;
  }
  .about-stats-card {
    position: static;
    transform: none;
    flex-direction: row;
    justify-content: space-around;
    margin-top: 0;
    min-width: unset;
    border-radius: 0.75rem;
    width: 100%;
    box-shadow: 0 8px 24px rgba(78, 146, 229, 0.25);
  }
  .about-stat-item {
    border-bottom: none;
    border-right: 1px solid rgba(255,255,255,0.15);
    padding: 1rem 0.5rem;
    flex: 1;
  }
  .about-stat-item:last-child { border-right: none; }
  .about-right { margin-top: 1.25rem; }
}

/* 气泡针的竖杆 */
.pin-tail {
  width: 3px;
  height: 16px;
  background: var(--pin-color, #e53935);
  border-radius: 0 0 2px 2px;
  margin-top: 0;
}

/* 年份数字 */
.pin-year {
  font-size: 1.6em;
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.02em;
}

/* 说明文字 */
.pin-desc {
  font-size: 0.65em;
  line-height: 1.4;
  margin-top: 0.2em;
  opacity: 0.92;
}

/* 尺寸变体 */
/* sm：小气泡 */
.pin-node .pin-bubble {
  width: 90px;
  min-height: 90px;
}
.pin-node .pin-year { font-size: 1.3em; }
.pin-node .pin-desc { font-size: 0.6em; }

/* md：中气泡 */
.pin-node--md .pin-bubble {
  width: 120px;
  min-height: 110px;
}
.pin-node--md .pin-year { font-size: 1.5em; }
.pin-node--md .pin-desc { font-size: 0.65em; }

/* lg：大气泡 */
.pin-node--lg .pin-bubble {
  width: 155px;
  min-height: 140px;
}
.pin-node--lg .pin-year { font-size: 2em; }
.pin-node--lg .pin-desc { font-size: 0.7em; }
.pin-node--lg .pin-bubble::after {
  border-left-width: 14px;
  border-right-width: 14px;
  border-top-width: 18px;
  bottom: -16px;
}
.pin-node--lg .pin-tail { height: 22px; width: 4px; }

/* 响应式 */
@media (max-width: 767px) {
  .org-scroll-tab { padding: 0.875rem 1rem; font-size: 0.875rem; }
  .pin-section-heading { padding: 1.5rem 1rem 0; }
  .pin-stage { min-height: 280px; }
  .pin-node--lg .pin-bubble { width: 110px; min-height: 100px; }
  .pin-node--md .pin-bubble { width: 90px; min-height: 85px; }
  .pin-node .pin-bubble { width: 70px; min-height: 70px; }
}

/* ---------- Pagination ---------- */
.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.375rem;
  margin-top: 2.5rem;
  flex-wrap: wrap;
}
.page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2.25rem;
  height: 2.25rem;
  padding: 0 0.75rem;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--slate-600);
  background: #fff;
  border: 1px solid var(--slate-200);
  transition: all var(--transition);
  text-decoration: none;
}
.page-btn:hover {
  border-color: var(--brand);
  color: var(--brand);
}
.page-btn.is-active {
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
  box-shadow: 0 2px 8px rgba(78,146,229,0.3);
}
@media (max-width: 767px) {
  .pagination { gap: 0.25rem; margin-top: 1.5rem; }
  .page-btn { min-width: 2rem; height: 2rem; font-size: 0.8rem; padding: 0 0.5rem; }
}
