/* ============================================
   好德财务 · 品牌官网
   常州好德财务咨询有限公司
   视觉系统 v2.0 · 依据《品牌视觉规范》重构
   ============================================ */

/* ---- Design Token ---- */
:root {
  /* 品牌色 */
  --primary: #1B3A5C;
  --primary-light: #2A5A8C;
  --primary-dark: #16314F;
  --primary-deep: #0F2440;
  --accent: #C8A84E;
  --accent-light: #E8D48B;
  --accent-dark: #A8882E;
  --brand-red: #D14343;

  /* 中性色 */
  --ink-900: #101828;
  --ink-700: #344054;
  --ink-500: #667085;
  --line: #E4E7EC;
  --bg-soft: #F7F8FA;
  --bg-white: #FFFFFF;

  /* 功能色 */
  --ok: #2E8B57;
  --warn: #E67E22;
  --danger: #D14343;

  /* 字体 */
  --font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', 'Helvetica Neue', sans-serif;

  /* 间距刻度 */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-10: 40px;
  --space-16: 64px;

  /* 圆角 */
  --radius-sm: 6px;
  --radius-md: 12px;
  --radius-lg: 16px;

  /* 阴影（柔和统一） */
  --shadow-card: 0 1px 3px rgba(16,24,40,0.06);
  --shadow-hover: 0 8px 24px rgba(16,24,40,0.10);
  --shadow-pop: 0 16px 40px rgba(16,24,40,0.16);

  /* 动效 */
  --transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --max-width: 1200px;
}

/* ---- Reset & Base ---- */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body {
  font-family:var(--font-family);
  color:var(--ink-700);
  background:var(--bg-white);
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}
a { color:var(--primary); text-decoration:none; transition:var(--transition); }
a:hover { color:var(--accent-dark); }
img { max-width:100%; height:auto; }
ul { list-style:none; }

.container { max-width:var(--max-width); margin:0 auto; padding:0 20px; }
.section { padding:30px 0; }
.section-alt { background:var(--bg-soft); }

.section-title {
  text-align:center;
  margin-bottom:var(--space-4);
  font-size:2rem;
  font-weight:800;
  color:var(--ink-900);
  letter-spacing:-0.02em;
}
.section-subtitle {
  text-align:center;
  color:var(--ink-500);
  font-size:1.05rem;
  max-width:600px;
  margin:0 auto var(--space-10);
}

/* ---- Buttons ---- */
.btn {
  display:inline-flex;
  align-items:center;
  gap:var(--space-2);
  padding:12px 28px;
  border-radius:var(--radius-sm);
  font-size:1rem;
  font-weight:600;
  cursor:pointer;
  border:none;
  transition:var(--transition);
  text-decoration:none;
}
.btn-primary { background:var(--primary); color:#fff; }
.btn-primary:hover { background:var(--primary-light); transform:translateY(-2px); box-shadow:var(--shadow-hover); color:#fff; }
.btn-accent { background:var(--accent); color:#4a3a10; }
.btn-accent:hover { background:var(--accent-light); transform:translateY(-2px); box-shadow:var(--shadow-hover); color:#4a3a10; }
.btn-outline { background:transparent; color:var(--primary); border:1.5px solid var(--primary); }
.btn-outline:hover { background:var(--primary); color:#fff; transform:translateY(-2px); }

/* ---- Navbar ---- */
.navbar {
  position:fixed;
  top:0; left:0; right:0;
  z-index:1000;
  background:rgba(255,255,255,0.96);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
  transition:var(--transition);
}
.navbar .container { display:flex; align-items:center; justify-content:space-between; height:70px; }
.navbar-brand { display:flex; align-items:center; gap:10px; font-size:1.3rem; font-weight:700; color:var(--primary); text-decoration:none; }
.navbar-brand .brand-icon {
  width:40px; height:40px;
  border-radius:10px;
  display:flex; align-items:center; justify-content:center;
  overflow:hidden;
}
.navbar-brand .brand-icon img { width:100%; height:100%; object-fit:contain; display:block; }
.navbar-brand .brand-sub { display:block; font-size:0.65rem; font-weight:400; color:var(--ink-500); margin-top:-2px; }
.nav-links { display:flex; align-items:center; gap:32px; }
.nav-links a { font-size:0.95rem; font-weight:500; color:var(--ink-700); position:relative; padding:4px 0; }
.nav-links a::after {
  content:''; position:absolute; bottom:-2px; left:0;
  width:0; height:2px; background:var(--accent); transition:var(--transition);
}
.nav-links a:hover::after, .nav-links a.active::after { width:100%; }
.nav-links a:hover { color:var(--primary); }
.nav-links a.active { color:var(--primary); font-weight:600; }

.nav-toggle { display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:4px; }
.nav-toggle span { width:24px; height:2px; background:var(--ink-900); border-radius:2px; transition:var(--transition); }

/* ---- Hero ---- */
.hero {
  min-height:720px;
  padding:110px 0 56px;
  background:linear-gradient(150deg, var(--primary-deep) 0%, var(--primary) 55%, var(--primary-light) 100%);
  color:#fff;
  position:relative;
  overflow:hidden;
}
.hero::after {
  content:''; position:absolute; bottom:-160px; left:50%; transform:translateX(-50%);
  width:720px; height:320px;
  background:radial-gradient(ellipse, rgba(200,168,78,0.10) 0%, transparent 70%);
}
.hero .container { position:relative; z-index:1; display:grid; grid-template-columns:1fr 1.1fr; gap:48px; align-items:stretch; min-height:540px; }
.hero-content { display:flex; flex-direction:column; justify-content:center; padding:30px 0; }
.hero-content .hero-badge {
  display:inline-block;
  background:rgba(255,255,255,0.10);
  border:1px solid rgba(255,255,255,0.18);
  border-radius:50px;
  padding:6px 18px;
  font-size:0.85rem;
  color:rgba(255,255,255,0.92);
  margin-bottom:24px;
  letter-spacing:0.02em;
}
.hero h1 { font-size:3rem; font-weight:800; line-height:1.25; letter-spacing:-0.02em; margin-bottom:22px; }
.hero h1 .highlight { color:var(--accent-light); position:relative; }
.hero p { color:rgba(255,255,255,0.85); font-size:1.02rem; line-height:1.7; margin-bottom:22px; max-width:580px; }
.hero-buttons { display:flex; gap:18px; flex-wrap:wrap; }
.hero-stats {
  display:grid; grid-template-columns:repeat(3,1fr); gap:20px;
  padding:36px 28px;
  background:rgba(255,255,255,0.07);
  border-radius:var(--radius-lg);
  border:1px solid rgba(255,255,255,0.12);
  backdrop-filter:blur(10px);
}
.hero-stat { text-align:center; }
.hero-stat .num { font-size:2.2rem; font-weight:800; color:var(--accent-light); }
.hero-stat .label { font-size:0.85rem; color:rgba(255,255,255,0.72); margin-top:4px; }

/* ---- Services / Cards ---- */
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.service-card {
  background:var(--bg-white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:32px 24px;
  transition:var(--transition);
  cursor:default;
}
.service-card:hover {
  transform:translateY(-3px);
  box-shadow:var(--shadow-hover);
  border-color:var(--accent);
}
.service-card .icon {
  width:64px; height:64px;
  border-radius:14px;
  overflow:hidden;
  display:inline-block;
  margin-bottom:20px;
  transition:var(--transition);
  font-size:0;
}
.service-card .icon img { width:100%; height:100%; display:block; }
.service-card:hover .icon { transform:translateY(-3px) scale(1.05); }
.service-card h3 { font-size:1.15rem; font-weight:700; color:var(--ink-900); margin-bottom:10px; }
.service-card p { font-size:0.9rem; color:var(--ink-500); line-height:1.7; }

/* ---- About ---- */
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.about-content h2 { font-size:1.8rem; font-weight:800; color:var(--ink-900); margin-bottom:16px; letter-spacing:-0.02em; }
.about-content p { margin-bottom:16px; color:var(--ink-700); line-height:1.8; }
.about-image {
  background:linear-gradient(150deg, var(--primary-deep), var(--primary));
  color:#fff;
  border-radius:var(--radius-lg);
  padding:48px 32px;
  text-align:center;
  min-height:280px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.about-image .big-icon { font-size:3.2rem; margin-bottom:16px; }
.about-image .img-caption { color:rgba(255,255,255,0.72); font-size:0.9rem; }
.about-features { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:24px; }
.about-features li { display:flex; align-items:center; gap:10px; font-size:0.95rem; color:var(--ink-700); }
.about-features li::before { content:'✓'; color:var(--ok); font-weight:700; }

/* ---- Features ---- */
.features-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.features-grid.features-grid-3 { grid-template-columns:repeat(3,1fr); gap:18px; }
.feature-card {
  text-align:center;
  padding:18px 14px;
  background:var(--bg-white);
  border-radius:var(--radius-md);
  border:1px solid var(--line);
  transition:var(--transition);
}
.feature-card:hover { transform:translateY(-2px); box-shadow:var(--shadow-hover); }
.feature-card .icon {
  width:48px; height:48px;
  border-radius:12px;
  overflow:hidden;
  display:inline-block;
  margin-bottom:10px;
  transition:var(--transition);
  font-size:0;
}
.feature-card .icon img { width:100%; height:100%; display:block; }
.feature-card:hover .icon { transform:translateY(-3px) scale(1.05); }
.feature-card h4 { font-size:0.95rem; font-weight:700; color:var(--ink-900); margin-bottom:6px; }
.feature-card p { font-size:0.8rem; color:var(--ink-500); line-height:1.5; }

/* ---- Testimonials ---- */
.testimonials-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.testimonial-card {
  background:var(--bg-white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:28px;
  transition:var(--transition);
}
.testimonial-card:hover { box-shadow:var(--shadow-hover); transform:translateY(-3px); }
.testimonial-card .stars { color:var(--accent); font-size:1rem; margin-bottom:12px; }
.testimonial-card blockquote { font-size:0.95rem; color:var(--ink-700); line-height:1.7; margin-bottom:16px; }
.testimonial-card .client { display:flex; align-items:center; gap:12px; }
.testimonial-card .client-avatar {
  width:40px; height:40px; border-radius:50%;
  background:var(--primary); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-weight:700; font-size:0.9rem;
}
.testimonial-card .client-info .name { font-weight:600; font-size:0.9rem; color:var(--ink-900); }
.testimonial-card .client-info .company { font-size:0.8rem; color:var(--ink-500); }

/* ---- CTA ---- */
.cta-section {
  background:linear-gradient(135deg, var(--primary-deep), var(--primary));
  color:#fff;
  text-align:center;
  padding:var(--space-16) 0;
}
.cta-section h2 { font-size:2rem; font-weight:800; margin-bottom:var(--space-4); letter-spacing:-0.02em; }
.cta-section p { color:rgba(255,255,255,0.82); font-size:1.1rem; margin-bottom:32px; max-width:500px; margin-left:auto; margin-right:auto; }

/* ---- Page Header ---- */
.page-header {
  padding:130px 0 60px;
  background:linear-gradient(135deg, var(--primary-deep), var(--primary));
  color:#fff;
  text-align:center;
}
.page-header h1 { font-size:1.15rem; font-weight:800; margin:0 auto; letter-spacing:-0.02em; line-height:1.4; max-width:780px; }
.page-header p { color:rgba(255,255,255,0.8); font-size:1.05rem; max-width:600px; margin:0 auto; }
.breadcrumb { display:flex; justify-content:center; gap:8px; margin-bottom:20px; font-size:0.9rem; color:rgba(255,255,255,0.6); }
.breadcrumb a { color:rgba(255,255,255,0.7); }
.breadcrumb a:hover { color:var(--accent-light); }

/* ---- About Page ---- */
.timeline { position:relative; max-width:700px; margin:0 auto; padding:20px 0; }
.timeline::before { content:''; position:absolute; left:28px; top:0; bottom:0; width:2px; background:var(--line); }
.timeline-item { position:relative; padding:0 0 32px 76px; }
.timeline-item:last-child { padding-bottom:0; }
.timeline-dot {
  position:absolute; left:18px; top:4px;
  width:22px; height:22px; border-radius:50%;
  background:var(--accent);
  border:4px solid var(--bg-white);
  box-shadow:0 0 0 2px var(--accent);
}
.timeline-year { font-size:1.1rem; font-weight:700; color:var(--primary); margin-bottom:4px; }
.timeline-text { font-size:0.95rem; color:var(--ink-500); line-height:1.6; }

.team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.team-card {
  text-align:center;
  background:var(--bg-white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:32px 20px;
  transition:var(--transition);
}
.team-card:hover { box-shadow:var(--shadow-hover); transform:translateY(-4px); }
.team-card .avatar {
  width:80px; height:80px; border-radius:50%;
  background:var(--primary); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:1.8rem; font-weight:700;
  margin:0 auto 16px;
}
.team-card h4 { font-size:1.1rem; font-weight:700; color:var(--ink-900); margin-bottom:4px; }
.team-card .title { font-size:0.9rem; color:var(--accent-dark); font-weight:500; margin-bottom:12px; }
.team-card p { font-size:0.88rem; color:var(--ink-500); line-height:1.6; }

/* ---- Services Page ---- */
.service-detail { display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start; padding:40px 0; border-bottom:1px solid var(--line); }
.service-detail:last-child { border-bottom:none; }
.service-detail .icon-large {
  width:72px; height:72px;
  border-radius:16px;
  overflow:hidden;
  display:inline-block;
  margin-bottom:16px;
  transition:var(--transition);
  font-size:0;
}
.service-detail .icon-large img { width:100%; height:100%; display:block; }
.service-detail:hover .icon-large { transform:translateY(-3px) scale(1.05); }
.service-detail h3 { font-size:1.4rem; font-weight:700; color:var(--ink-900); margin-bottom:12px; }
.service-detail p { color:var(--ink-500); line-height:1.7; margin-bottom:16px; }
.service-detail ul li {
  padding:6px 0;
  display:flex;
  align-items:center;
  gap:8px;
  font-size:0.92rem;
  color:var(--ink-700);
}
.service-detail ul li::before { content:'▸'; color:var(--accent-dark); font-weight:700; }

/* ---- Contact Page ---- */
.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px; }
.contact-info-list { display:flex; flex-direction:column; gap:24px; }
.contact-item { display:flex; align-items:flex-start; gap:12px; }
.contact-item .icon {
  width:40px; height:40px;
  background:var(--bg-soft);
  border-radius:var(--radius-sm);
  display:flex; align-items:center; justify-content:center;
  font-size:1.1rem;
  flex-shrink:0;
}
.contact-item h4 { font-size:0.95rem; font-weight:600; color:var(--ink-900); margin-bottom:2px; }
.contact-item p { font-size:0.85rem; color:var(--ink-500); }
.contact-form {
  background:var(--bg-white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:32px;
}
.contact-form .form-group { margin-bottom:20px; }
.contact-form label { display:block; font-size:0.9rem; font-weight:600; color:var(--ink-900); margin-bottom:6px; }
.contact-form input, .contact-form textarea, .contact-form select {
  width:100%;
  padding:12px 16px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  font-size:0.95rem;
  font-family:var(--font-family);
  transition:var(--transition);
  background:var(--bg-white);
  color:var(--ink-700);
}
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus {
  outline:none;
  border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(27,58,92,0.10);
}
.contact-form textarea { resize:vertical; min-height:120px; }
.contact-form .btn { width:100%; justify-content:center; }

/* ---- Footer ---- */
.footer { background:var(--primary-deep); color:rgba(255,255,255,0.75); padding:60px 0 30px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:48px; padding-bottom:40px; border-bottom:1px solid rgba(255,255,255,0.10); margin-bottom:30px; }
.footer-brand { font-size:1.3rem; font-weight:700; color:#fff; margin-bottom:12px; }
.footer-brand span { color:var(--accent); }
.footer p { font-size:0.9rem; line-height:1.7; color:rgba(255,255,255,0.55); }
.footer h4 { font-size:1rem; font-weight:700; color:#fff; margin-bottom:16px; }
.footer ul li { margin-bottom:10px; }
.footer ul a { color:rgba(255,255,255,0.55); font-size:0.9rem; }
.footer ul a:hover { color:var(--accent); }
.footer-bottom { text-align:center; font-size:0.85rem; color:rgba(255,255,255,0.35); }

/* ---- Back to Top ---- */
.back-to-top {
  position:fixed; bottom:30px; right:30px;
  width:44px; height:44px;
  background:var(--primary);
  color:#fff;
  border:none;
  border-radius:50%;
  font-size:1.2rem;
  cursor:pointer;
  opacity:0; visibility:hidden;
  transition:var(--transition);
  box-shadow:var(--shadow-hover);
  z-index:99;
}
.back-to-top.show { opacity:1; visibility:visible; }
.back-to-top:hover { background:var(--accent); color:var(--ink-900); transform:translateY(-3px); }

/* ---- Mobile Menu Overlay ---- */
.mobile-overlay {
  display:none; position:fixed;
  top:0; left:0; right:0; bottom:0;
  background:rgba(0,0,0,0.5);
  z-index:998;
}
.mobile-overlay.open { display:block; }

/* ---- Animations ---- */
.fade-in { opacity:0; transform:translateY(16px); transition:opacity 0.4s ease, transform 0.4s ease; }
.fade-in.visible { opacity:1; transform:translateY(0); }

/* ---- Floating Contact ---- */
.float-contact { position:fixed; right:24px; bottom:90px; z-index:990; display:flex; flex-direction:column; align-items:flex-end; gap:12px; }
.float-contact .fc-main {
  width:56px; height:56px;
  border-radius:50%;
  background:var(--primary);
  color:#fff;
  border:none;
  cursor:pointer;
  font-size:1.5rem;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-pop);
  transition:var(--transition);
  animation:fc-pulse 2.5s infinite;
}
.float-contact .fc-main:hover { background:var(--accent); color:var(--ink-900); transform:scale(1.08); animation:none; }
@keyframes fc-pulse {
  0% { box-shadow:0 0 0 0 rgba(27,58,92,0.35); }
  70% { box-shadow:0 0 0 14px rgba(27,58,92,0); }
  100% { box-shadow:0 0 0 0 rgba(27,58,92,0); }
}
.fc-menu { display:none; flex-direction:column; gap:10px; }
.float-contact.open .fc-menu { display:flex; }
.fc-item {
  display:flex; align-items:center; gap:8px;
  background:var(--bg-white);
  border:1px solid var(--line);
  border-radius:50px;
  padding:10px 18px;
  font-size:0.88rem;
  font-weight:600;
  color:var(--ink-900);
  box-shadow:var(--shadow-card);
  cursor:pointer;
  transition:var(--transition);
  text-decoration:none;
  white-space:nowrap;
}
.fc-item:hover { transform:translateX(-4px); border-color:var(--accent); color:var(--primary); }
.fc-item .fc-icon, .fc-icon {
  display:inline-block;
  width:20px;
  height:20px;
  line-height:1;
  vertical-align:middle;
  font-size:1.15rem;  /* 默认 emoji 大小 */
  text-align:center;
  flex-shrink:0;
}
/* 当 fc-icon 内含 img 时：隐藏 emoji 文字，显示图片 */
.fc-item .fc-icon:has(img), .fc-icon:has(img) {
  font-size:0;
  line-height:0;
}
.fc-item .fc-icon img, .fc-icon img {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  pointer-events:none;
}
.fc-item.fc-phone {
  background:linear-gradient(135deg, #2563EB, #1D4ED8);
  color:#fff !important;
  border-color:rgba(37,99,235,0.30);
}
.fc-item.fc-phone:hover { background:linear-gradient(135deg, #3B82F6, #2563EB); }
.fc-item.fc-phone .fc-icon { color:#fff; }
.fc-item.fc-wechat {
  background: linear-gradient(135deg, #07C160, #06AD56);
  color: #fff !important;
  border-color: rgba(7, 193, 96, 0.30);
}
.fc-item.fc-wechat:hover {
  background: linear-gradient(135deg, #0AD970, #08BD66);
  color: #fff !important;
}
.fc-item.fc-wechat .fc-icon { color: #fff; }
.fc-item.fc-form {
  background:linear-gradient(135deg, #FBBF24, #F59E0B);
  color:#fff !important;
  border-color:rgba(251,191,36,0.30);
}
.fc-item.fc-form:hover { background:linear-gradient(135deg, #FCD34D, #FBBF24); }
.fc-item.fc-form .fc-icon { color:#fff; }
.fc-qr {
  display:none; position:fixed; right:90px; bottom:160px;
  background:var(--bg-white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:18px;
  width:266px;
  text-align:center;
  box-shadow:var(--shadow-pop);
  text-align:center;
  z-index:991;
}
.fc-qr.show { display:block; }
.fc-qr .qr-placeholder, .fc-qr img {
  width:220px; height:220px;
  background:var(--bg-white);
  border-radius:var(--radius-sm);
  display:flex; align-items:center; justify-content:center;
  font-size:0.8rem;
  object-fit:contain;
  color:var(--ink-500);
  margin:0 auto 8px;
}
.fc-qr p { font-size:0.85rem; color:var(--ink-500); margin:8px 0 0 0; text-align:center; }

/* ---- Responsive ---- */
@media (max-width:992px) {
  .hero .container { grid-template-columns:1fr; gap:40px; }
  .hero h1 { font-size:2.4rem; }
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .features-grid { grid-template-columns:repeat(2,1fr); }
  .testimonials-grid { grid-template-columns:1fr; }
  .about-grid { grid-template-columns:1fr; gap:40px; }
  .service-detail { grid-template-columns:1fr; }
  .contact-grid { grid-template-columns:1fr; }
  .team-grid { grid-template-columns:repeat(2,1fr); }
  .footer-grid { grid-template-columns:repeat(2,1fr); gap:32px; }
}

@media (max-width:768px) {
  .nav-links {
    position:fixed; top:70px; left:0; right:0;
    background:var(--bg-white);
    flex-direction:column;
    padding:20px;
    gap:16px;
    border-bottom:1px solid var(--line);
    display:none;
    box-shadow:var(--shadow-hover);
  }
  .nav-links.open { display:flex; }
  .nav-toggle { display:flex; }

  .hero { padding:120px 0 60px; }
  .hero h1 { font-size:1.8rem; }
  .hero-stats { grid-template-columns:repeat(3,1fr); padding:20px; gap:16px; }
  .hero-stat .num { font-size:1.6rem; }

  .section { padding:60px 0; }
  .section-title { font-size:1.6rem; }

  .services-grid { grid-template-columns:1fr; }
  .features-grid { grid-template-columns:1fr; }
  .team-grid { grid-template-columns:1fr; }
  .about-features { grid-template-columns:1fr; }

  .page-header h1 { font-size:1rem; }
  .footer-grid { grid-template-columns:1fr; gap:24px; }
  .cta-section h2 { font-size:1.5rem; }
}

/* ============================================
   视觉 v3.0 · 科技感组件（首页）
   ============================================ */

/* ---- 科技 Hero ---- */
.hero-tech {
  background:linear-gradient(160deg, #0B1220 0%, #101E33 45%, #16283F 100%);
  overflow:hidden;
}
.hero-grid-bg {
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(59,130,246,0.07) 1px, transparent 1px),
    linear-gradient(90deg, rgba(59,130,246,0.07) 1px, transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse at 50% 40%, #000 30%, transparent 75%);
  -webkit-mask-image:radial-gradient(ellipse at 50% 40%, #000 30%, transparent 75%);
}
.hero-glow {
  position:absolute; top:-180px; right:-120px;
  width:520px; height:520px;
  background:radial-gradient(circle, rgba(56,189,248,0.16) 0%, rgba(56,189,248,0.05) 40%, transparent 70%);
  border-radius:50%;
  filter:blur(10px);
  animation:glow-float 6s ease-in-out infinite;
}
@keyframes glow-float {
  0%,100% { transform:translateY(0) scale(1); opacity:0.8; }
  50% { transform:translateY(-18px) scale(1.05); opacity:1; }
}
.hero-tech .hero-badge {
  display:inline-flex; align-items:center; gap:8px;
  background:rgba(56,189,248,0.10);
  border:1px solid rgba(56,189,248,0.30);
  color:#7DD3FC;
  border-radius:50px;
  padding:6px 18px;
  font-size:0.85rem;
  margin-bottom:24px;
}
.hero-tech .hero-badge .dot {
  width:7px; height:7px; border-radius:50%;
  background:#34D399;
  box-shadow:0 0 8px #34D399;
  animation:dot-blink 1.8s ease-in-out infinite;
}
@keyframes dot-blink { 0%,100%{opacity:1;} 50%{opacity:0.4;} }
.hero-tech h1 { font-size:1.85rem; margin-bottom:10px; line-height:1.25; }
.hero-tech h1 .highlight {
  background:linear-gradient(90deg, #7DD3FC, #34D399);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
}
.hero-tech p { color:rgba(255,255,255,0.78); }
.btn-ghost {
  background:rgba(255,255,255,0.08);
  color:#fff;
  border:1px solid rgba(255,255,255,0.25);
}
.btn-ghost:hover { background:rgba(255,255,255,0.16); color:#fff; transform:translateY(-2px); }
.hero-trust {
  display:flex; flex-wrap:wrap; gap:18px;
  margin-top:auto;
  padding-top:20px;
  font-size:0.9rem;
  color:rgba(255,255,255,0.65);
}
.hero-trust span { display:flex; align-items:center; gap:6px; }

/* ---- 合规风控驾驶舱面板 ---- */
.hero-panel {
  background:rgba(13,25,43,0.72);
  border:1px solid rgba(56,189,248,0.25);
  border-radius:18px;
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  box-shadow:0 24px 60px rgba(0,0,0,0.45), inset 0 1px 0 rgba(255,255,255,0.06);
  padding:30px 32px;
  position:relative;
  overflow:hidden;
  align-self:center;
}
.hero-panel::before {
  content:''; position:absolute; top:0; left:0; right:0; height:1px;
  background:linear-gradient(90deg, transparent, rgba(125,211,252,0.7), transparent);
}
.panel-head {
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:10px;
}
.panel-title { display:flex; align-items:center; gap:10px; }
.panel-icon {
  width:32px; height:32px; border-radius:8px;
  background:linear-gradient(135deg, #1B3A5C, #2A5A8C);
  display:flex; align-items:center; justify-content:center;
  font-size:1rem;
  box-shadow:0 4px 12px rgba(27,58,92,0.4);
}
.pt-name { font-size:0.82rem; font-weight:700; color:#E2E8F0; }
.pt-sub { font-size:0.58rem; color:#64748B; letter-spacing:0.08em; margin-top:2px; }
.panel-status {
  display:inline-flex; align-items:center; gap:5px;
  font-size:0.66rem; color:#86EFAC;
  background:rgba(52,211,153,0.12);
  border:1px solid rgba(52,211,153,0.25);
  padding:2px 8px; border-radius:20px;
}
.live-dot { width:6px; height:6px; border-radius:50%; background:#34D399; box-shadow:0 0 6px #34D399; animation:dot-blink 1.2s infinite; }

.panel-body { display:flex; flex-direction:column; gap:11px; }
.pc-item { background:rgba(255,255,255,0.04); border:1px solid rgba(255,255,255,0.07); border-radius:8px; padding:7px 10px; }
.pc-top { display:flex; align-items:center; justify-content:space-between; margin-bottom:4px; }
.pc-label { font-size:0.7rem; color:#94A3B8; }
.pc-val { font-size:0.9rem; font-weight:800; color:#7DD3FC; font-variant-numeric:tabular-nums; }
.pc-val.ok { color:#34D399; }
.pc-val.gold { color:var(--accent-light); }
.pc-bar { height:3px; border-radius:3px; background:rgba(255,255,255,0.08); overflow:hidden; }
.pc-bar-fill {
  height:100%; border-radius:3px;
  background:linear-gradient(90deg, #3B82F6, #22D3EE);
  box-shadow:0 0 8px rgba(56,189,248,0.5);
  animation:bar-grow 1.6s ease-out;
}
.pc-bar-fill.ok { background:linear-gradient(90deg, #10B981, #34D399); }
.pc-bar-fill.blue { background:linear-gradient(90deg, #6366F1, #38BDF8); }
@keyframes bar-grow { from { width:0 !important; } }
.pc-note { font-size:0.62rem; color:#64748B; margin-top:3px; }
.pc-tags { display:flex; gap:5px; margin-top:4px; }
.pc-tag {
  font-size:0.62rem; color:#7DD3FC;
  background:rgba(56,189,248,0.12);
  border:1px solid rgba(56,189,248,0.25);
  padding:1px 8px; border-radius:20px;
}

.panel-foot {
  display:flex; align-items:center; justify-content:center; gap:8px;
  margin-top:8px; padding-top:8px;
  border-top:1px solid rgba(255,255,255,0.07);
}
.radar-wrap { position:relative; width:26px; height:26px; }
.radar-line {
  position:absolute; inset:0; border-radius:50%;
  border:1px solid rgba(56,189,248,0.25);
}
.radar-line.r2 { inset:5px; }
.radar-line.r3 { inset:10px; }
.radar-core {
  position:absolute; left:50%; top:50%;
  width:4px; height:4px; margin:-2px 0 0 -2px;
  border-radius:50%; background:#22D3EE;
  box-shadow:0 0 8px #22D3EE;
  animation:core-scan 2.2s linear infinite;
}
@keyframes core-scan {
  0% { transform:rotate(0deg) translateX(11px); }
  100% { transform:rotate(360deg) translateX(11px); }
}
.foot-text { font-size:0.78rem; color:#94A3B8; }

/* ---- 政策标签条 ---- */
.policy-strip {
  background:#0F1A2E;
  border-top:1px solid rgba(255,255,255,0.06);
  border-bottom:1px solid rgba(255,255,255,0.06);
  padding:8px 0;
  overflow:hidden;
}
.policy-inner {
  display:flex; align-items:center; justify-content:center;
  flex-wrap:wrap; gap:12px;
  font-size:0.85rem;
}
.policy-label {
  color:var(--accent-light); font-weight:700;
  background:rgba(200,168,78,0.12);
  border:1px solid rgba(200,168,78,0.3);
  padding:3px 14px; border-radius:20px;
  margin-right:6px;
}
.policy-item { color:#94A3B8; }
.policy-sep { color:#334155; }

/* ---- 深色数据版块 ---- */
.section-dark {
  background:linear-gradient(160deg, #0B1220, #101E33);
  color:#fff;
}
.section-title.light { color:#fff; }
.section-subtitle.light { color:#94A3B8; }
.stats-row {
  display:grid; grid-template-columns:repeat(4,1fr);
  gap:32px; text-align:center;
  max-width:900px; margin:0 auto;
}
.stat-num {
  font-size:2.8rem; font-weight:800;
  background:linear-gradient(90deg, #7DD3FC, #34D399);
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent; color:transparent;
  font-variant-numeric:tabular-nums;
}
.stat-num .small { font-size:1.6rem; }
.stat-label { margin-top:8px; font-size:0.9rem; color:#94A3B8; }

/* ---- 服务卡增强 ---- */
.badge-hot {
  position:absolute; top:-11px; right:18px;
  background:linear-gradient(135deg, var(--accent), var(--accent-dark));
  color:#3a2d08;
  font-size:0.68rem; font-weight:700;
  padding:3px 12px; border-radius:20px;
  box-shadow:0 4px 10px rgba(200,168,78,0.4);
}
.service-card { position:relative; }
.card-link {
  display:inline-block;
  margin-top:12px;
  font-size:0.85rem; font-weight:600;
  color:var(--primary);
}
.card-link:hover { color:var(--accent-dark); }

/* ---- 响应式补充 ---- */
@media (max-width:992px) {
  .hero-tech h1 { font-size:2.2rem; }
  .stats-row { grid-template-columns:repeat(2,1fr); gap:28px; }
}
@media (max-width:768px) {
  .hero-tech h1 { font-size:1.9rem; }
  .hero-panel { padding:18px; }
  .stats-row { grid-template-columns:repeat(2,1fr); }
  .policy-inner { font-size:0.78rem; gap:8px; }
}

/* ============================================
   视觉 v3.0 · 服务项目卡片（折叠式）
   ============================================ */

.svc-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.svc-card {
  background:var(--bg-white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  overflow:hidden;
  transition:var(--transition);
}
.svc-card:hover {
  border-color:var(--primary-light);
  box-shadow:var(--shadow-card);
}
.svc-card[open] {
  border-color:var(--primary);
  box-shadow:var(--shadow-hover);
  grid-column:span 1;
}
.svc-card-featured {
  border-color:var(--accent);
  position:relative;
}
.svc-card summary {
  list-style:none;
  cursor:pointer;
  padding:20px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  user-select:none;
}
.svc-card summary::-webkit-details-marker { display:none; }
.svc-card summary::marker { display:none; }
.svc-head { display:flex; align-items:center; gap:14px; flex:1; min-width:0; }
.svc-icon {
  width:48px; height:48px;
  border-radius:11px;
  overflow:hidden;
  flex-shrink:0;
  background:transparent;
  font-size:0;
}
.svc-icon img { width:100%; height:100%; display:block; }
.svc-meta { flex:1; min-width:0; }
.svc-meta h3 {
  font-size:1.08rem;
  font-weight:700;
  color:var(--ink-900);
  margin-bottom:6px;
  display:flex; align-items:center; gap:8px;
}
.svc-tags { display:flex; flex-wrap:wrap; gap:5px; }
.svc-tag {
  display:inline-block;
  font-size:0.7rem;
  font-weight:600;
  padding:3px 9px;
  border-radius:20px;
  background:var(--bg-soft);
  color:var(--ink-700);
  border:1px solid var(--line);
  white-space:nowrap;
}
.svc-tag.tag-gold { background:rgba(200,168,78,0.10); color:var(--accent-dark); border-color:rgba(200,168,78,0.30); }
.svc-tag.tag-red { background:rgba(209,67,67,0.08); color:var(--brand-red); border-color:rgba(209,67,67,0.20); }
.svc-tag.tag-blue { background:rgba(42,90,140,0.08); color:var(--primary); border-color:rgba(42,90,140,0.20); }
.svc-arrow {
  width:24px; height:24px;
  border-radius:50%;
  background:var(--bg-soft);
  color:var(--ink-500);
  display:flex; align-items:center; justify-content:center;
  font-size:0;  /* 隐藏HTML里占位的+号 */
  transition:var(--transition);
  flex-shrink:0;
}
.svc-arrow::after {
  content:'\25BE';  /* ▾ 向下的三角箭头 */
  font-size:0.85rem;
  line-height:1;
  color:inherit;
}
.svc-card[open] .svc-arrow {
  background:var(--primary);
  color:#fff;
  transform:rotate(180deg);  /* ▾ 翻转 180° 变成 ▴ */
}
.svc-body {
  padding:0 22px 20px 22px;
  border-top:1px dashed var(--line);
  margin-top:-4px;
  padding-top:16px;
  animation:svc-expand 0.3s ease;
}
@keyframes svc-expand {
  from { opacity:0; transform:translateY(-4px); }
  to { opacity:1; transform:translateY(0); }
}
.svc-body p {
  font-size:0.88rem;
  color:var(--ink-500);
  line-height:1.65;
  margin-bottom:12px;
}
.svc-body ul {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px 16px;
}
.svc-body ul li {
  font-size:0.85rem;
  color:var(--ink-700);
  display:flex; align-items:flex-start; gap:6px;
  line-height:1.5;
  list-style:none;
}
.svc-body ul li::before {
  content:'▸';
  color:var(--accent-dark);
  font-weight:700;
  flex-shrink:0;
}
.svc-card[open] .svc-meta h3 .badge-hot { display:none; }

/* ---- 流程区 ---- */
.process-grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
  position:relative;
}
.process-step {
  text-align:center;
  background:var(--bg-white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:28px 20px;
  position:relative;
}
.process-step .ps-num {
  font-size:2.2rem;
  font-weight:800;
  background:linear-gradient(135deg, var(--primary), var(--accent));
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
  margin-bottom:8px;
  line-height:1;
}
.process-step h4 {
  font-size:1.05rem;
  font-weight:700;
  color:var(--ink-900);
  margin-bottom:8px;
}
.process-step p {
  font-size:0.88rem;
  color:var(--ink-500);
  line-height:1.6;
}

/* ---- 响应式 ---- */
@media (max-width:992px) {
  .svc-grid { grid-template-columns:repeat(2,1fr); }
  .process-grid { grid-template-columns:repeat(2,1fr); }
  .svc-body ul { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .svc-grid { grid-template-columns:1fr; }
  .svc-card summary { padding:16px 18px; }
  .svc-body { padding-left:18px; padding-right:18px; }
  .svc-icon { width:42px; height:42px; }
  .svc-meta h3 { font-size:1rem; }
}

/* ============================================
   案例卡片（服务↔案例配对）
   ============================================ */
.case-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
}
.case-card {
  background:var(--bg-white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  transition:var(--transition);
}
.case-card:hover { box-shadow:var(--shadow-hover); transform:translateY(-3px); }
.case-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 18px;
  background:linear-gradient(135deg, var(--bg-soft), #fff);
  border-bottom:1px solid var(--line);
}
.case-service { display:flex; align-items:center; gap:12px; }
.case-icon {
  width:42px; height:42px;
  border-radius:10px;
  overflow:hidden;
  font-size:0;
  background:transparent;
  flex-shrink:0;
}
.case-icon img { width:100%; height:100%; display:block; }
.case-service-label { font-size:0.68rem; color:var(--ink-500); letter-spacing:0.04em; }
.case-service-name { font-size:0.95rem; font-weight:700; color:var(--ink-900); margin-top:2px; }
.case-tag {
  display:inline-block;
  font-size:0.7rem; font-weight:600;
  padding:4px 10px; border-radius:20px;
  white-space:nowrap;
}
.case-tag.tag-red { background:rgba(209,67,67,0.10); color:var(--brand-red); border:1px solid rgba(209,67,67,0.20); }
.case-tag.tag-gold { background:rgba(200,168,78,0.12); color:var(--accent-dark); border:1px solid rgba(200,168,78,0.30); }
.case-tag.tag-blue { background:rgba(42,90,140,0.10); color:var(--primary); border:1px solid rgba(42,90,140,0.20); }

.case-body { padding:18px; flex:1; }
.case-row {
  display:flex;
  align-items:flex-start;
  gap:8px;
  margin-bottom:12px;
  font-size:0.85rem;
  line-height:1.6;
}
.case-row:last-of-type { margin-bottom:0; }
.case-key {
  flex-shrink:0;
  width:42px;
  color:var(--accent-dark);
  font-weight:700;
  font-size:0.78rem;
}
.case-val { color:var(--ink-700); flex:1; }
.case-outcome {
  margin-top:16px;
  padding:12px 14px;
  background:linear-gradient(135deg, rgba(200,168,78,0.08), rgba(200,168,78,0.02));
  border:1px solid rgba(200,168,78,0.25);
  border-radius:8px;
  display:flex;
  align-items:baseline;
  gap:8px;
}
.case-outcome-num {
  font-size:1.3rem;
  font-weight:800;
  color:var(--accent-dark);
  font-variant-numeric:tabular-nums;
}
.case-outcome-text {
  font-size:0.78rem;
  color:var(--ink-700);
  line-height:1.5;
}

@media (max-width:992px) {
  .case-grid { grid-template-columns:1fr; }
}

/* ============================================
   预约咨询页（booking.html）
   ============================================ */
.booking-grid {
  display:grid;
  grid-template-columns:1.5fr 1fr;
  gap:32px;
  align-items:start;
}
.booking-form-card {
  background:var(--bg-white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:32px;
  box-shadow:var(--shadow-card);
}
.booking-form-card label { color:var(--ink-900); }
.booking-form-card .form-group { margin-bottom:18px; }

/* 服务选择（radio+label） */
.svc-pick {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px;
  margin-top:6px;
}
.contact-way {
  display:flex;
  gap:10px;
  margin-top:6px;
  flex-wrap:wrap;
}
.pick {
  cursor:pointer;
  display:block;
}
.pick input { position:absolute; opacity:0; pointer-events:none; }
.pick span {
  display:flex;
  align-items:center;
  gap:6px;
  padding:10px 14px;
  border:1px solid var(--line);
  border-radius:8px;
  font-size:0.85rem;
  font-weight:500;
  color:var(--ink-700);
  background:var(--bg-white);
  transition:var(--transition);
  user-select:none;
}
.pick:hover span { border-color:var(--primary-light); }
.pick input:checked + span {
  background:linear-gradient(135deg, rgba(27,58,92,0.06), rgba(27,58,92,0.02));
  border-color:var(--primary);
  color:var(--primary);
  font-weight:600;
  box-shadow:inset 0 0 0 1px var(--primary);
}

/* 侧边栏 */
.booking-aside { display:flex; flex-direction:column; gap:14px; }
.aside-block {
  background:var(--bg-white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:22px 24px;
}
.aside-block h4 {
  font-size:1rem; font-weight:700; color:var(--ink-900); margin-bottom:14px;
}
.aside-flow {
  list-style:none;
  padding:0;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.aside-flow li {
  display:flex; align-items:center; gap:10px;
  font-size:0.88rem;
  color:var(--ink-700);
}
.aside-flow li span {
  width:22px; height:22px;
  border-radius:50%;
  background:var(--primary);
  color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:0.7rem; font-weight:700;
  flex-shrink:0;
}
.aside-trust {
  list-style:none; padding:0;
  display:flex; flex-direction:column; gap:8px;
  font-size:0.85rem; color:var(--ink-700);
}
.aside-urgent {
  background:linear-gradient(135deg, rgba(209,67,67,0.04), rgba(209,67,67,0.01));
  border-color:rgba(209,67,67,0.20);
}

/* 联系方式单列（contact.html） */
.contact-grid-single { grid-template-columns:1fr; max-width:780px; margin:0 auto; }
.contact-info-list { display:flex; flex-direction:column; gap:12px; }

@media (max-width:992px) {
  .booking-grid { grid-template-columns:1fr; }
  .svc-pick { grid-template-columns:1fr; }
}

/* ============================================
   booking.html 紧凑化（首屏不滚动）
   ============================================ */
.page-header.compact-head { padding:88px 0 24px; }
.page-header.compact-head h1 { font-size:1rem; max-width:840px; line-height:1.4; }
.booking-form-card { padding:12px 16px !important; }
.booking-form-card > h3 { font-size:1.1rem !important; margin-bottom:4px !important; }
.booking-form-card > p { font-size:0.82rem !important; margin-bottom:14px !important; }
.booking-form-card .form-group { margin-bottom:8px !important; }
.booking-form-card .form-group label { font-size:0.85rem; margin-bottom:4px; }

/* 服务选择更紧凑：4列x2行，小chip */
.svc-pick { grid-template-columns:repeat(4,1fr) !important; gap:6px !important; }
.pick span { padding:7px 10px !important; font-size:0.78rem !important; }

/* 输入框加大 */
.booking-form-card input[type=text],
.booking-form-card input[type=tel],
.booking-form-card select,
.booking-form-card textarea {
  width:100%;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  font-size:0.95rem;
  font-family:var(--font-family);
  color:var(--ink-700);
  background:var(--bg-white);
  min-height:42px;
  transition:var(--transition);
}
.booking-form-card input:focus,
.booking-form-card select:focus,
.booking-form-card textarea:focus {
  outline:none; border-color:var(--primary);
  box-shadow:0 0 0 3px rgba(27,58,92,0.10);
}
.booking-form-card textarea { min-height:60px; resize:vertical; }

/* 期望联系方式：紧凑横向 */
.contact-way { gap:6px !important; }
.contact-way .pick span { padding:7px 12px !important; font-size:0.82rem !important; }

/* 提交按钮 */
.booking-form-card button[type=submit] {
  width:100%; justify-content:center;
  font-size:1rem !important; padding:12px !important;
  margin-top:4px;
}
.booking-form-card .form-foot { text-align:center; font-size:0.7rem; color:var(--ink-500); margin-top:4px; line-height:1.2; }

/* 侧边栏紧凑 */
.booking-aside { gap:12px !important; }
.aside-block { padding:8px 12px !important; }
.aside-block h4 { font-size:0.95rem !important; margin-bottom:10px !important; }
.aside-flow { gap:8px !important; }
.aside-flow li { font-size:0.82rem !important; gap:8px !important; }
.aside-flow li span { width:20px; height:20px; font-size:0.65rem; }
.aside-trust { gap:6px !important; font-size:0.82rem !important; }
.aside-urgent p { font-size:0.8rem !important; margin-bottom:8px !important; }

/* 左右高度对齐 */
.booking-grid { align-items:start; }

@media (max-width:992px) {
  .page-header.compact-head { padding:80px 0 20px; }
}

/* booking 标题窄屏保护 */
@media (max-width:768px) {
  .page-header.compact-head h1 { font-size:1rem; white-space:normal; line-height:1.4; }
}

/* compact-head 变体：多行标题（compliance等长标题用） */
.page-header.compact-head.multi-line h1 { white-space:normal; line-height:1.4; max-width:840px; font-size:1rem; }

/* ============================================
   contact.html 两列布局（联系项+地图并排）
   ============================================ */
.contact-layout {
  display:grid;
  grid-template-columns:1fr 1.5fr;
  gap:14px;
  align-items:start;
  min-width:0;
}
.contact-layout > * { min-width:0; }
.map-card {
  background:var(--bg-white);
  border:1px solid var(--line);
  border-radius:var(--radius-md);
  padding:16px 18px;
}
.map-card h4 {
  font-size:0.95rem; font-weight:700; color:var(--ink-900);
  margin-bottom:10px; display:flex; align-items:center; justify-content:space-between;
}
.map-north {
  font-size:0.7rem; font-weight:400; color:var(--ink-500);
}
.map-card svg {
  width:100%; height:auto; display:block; border-radius:8px;
}
@media (max-width:580px) {
  .contact-layout { grid-template-columns:1fr; }
}

/* booking 姓名+电话并排 */
.form-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}
.form-row .form-group { margin-bottom:0 !important; }
@media (max-width:580px) {
  .form-row { grid-template-columns:1fr; gap:12px; }
  .form-row .form-group:not(:last-child) { margin-bottom:12px !important; }
}

/* booking 联系方式+需求描述并排（左窄右宽） */
.form-row-asym { grid-template-columns:1fr 1.5fr; align-items:stretch; }
.form-group-grow { display:flex; flex-direction:column; }
.form-group-grow textarea { flex:1; min-height:0; }
@media (max-width:580px) {
  .form-row-asym { grid-template-columns:1fr; }
}

/* booking 左右两列等高（底部对齐） */
.booking-grid { align-items: stretch; }
.booking-aside {
  display:flex;
  flex-direction:column;
  height:100%;
}
.booking-aside .aside-block {
  flex:1 1 0;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

/* 黄色按钮贴右列底部、左列提交按钮贴form底部，两按钮顶部对齐 */
.booking-aside .aside-block:last-child {
  justify-content: flex-end;
}
.booking-aside .aside-block:last-child .btn {
  margin-top: auto;
}
.booking-form-card form {
  display: flex;
  flex-direction: column;
}
.booking-form-card button[type=submit] {
  margin-top: auto;
}

/* 金色按钮：flex布局 + 统一 padding + 等高蓝色按钮 */
.aside-urgent {
  padding: 14px 18px !important;
  position: relative;
}
.aside-urgent h4, .aside-urgent p { margin: 0 !important; }
  display: flex;
  flex-direction: column;
}
.aside-urgent h4 { margin: 0 0 6px 0 !important; }
.aside-urgent p { margin: 0 0 8px 0 !important; line-height: 1.5 !important; }
.aside-urgent .btn {
  margin-top: auto !important;
  margin-bottom: 0 !important;
  font-size: 1.05rem !important;
  padding: 14px 28px !important;
  line-height: 1.4 !important;
  width: 100%;
  box-sizing: border-box;
}

/* ---- 企业微信浮动按钮 ---- */
.fc-enterprise {
  color: var(--ink-900);
  background: var(--bg-white);
  border: 1px solid var(--line);
  box-shadow: 0 1px 3px rgba(15, 26, 46, 0.04);
  padding: 8px 18px;
}
.fc-enterprise:hover {
  background: var(--bg-soft);
  border-color: #1A6BFF;
  transform: translateX(-4px);
}
/* 企业微信组合图（logo+文字），按钮内只用图 */
.fc-enterprise .fc-icon {
  width: auto !important;
  height: 28px !important;
  font-size: 0 !important;
  padding: 0;
}
.fc-enterprise .fc-icon img {
  display: block;
  height: 28px;
  width: auto;
  max-width: 130px;
  object-fit: contain;
}
/* 按钮 layout 调整：左图片右无文字 */
.fc-enterprise { gap: 0 !important; }
.fc-enterprise-img { padding: 8px 18px !important; }
.fc-enterprise:hover {
  background: linear-gradient(135deg, #5A8AD9, #2F6599);
}

/* ---- 企业微信 QR 弹窗 ---- */
.fc-qr-enterprise {
  right: 90px;
  bottom: 210px;
  width: 266px !important;
  padding: 18px !important;
  border-color: rgba(79, 124, 201, 0.30);
  background: linear-gradient(135deg, #fff 0%, #F5F9FF 100%);
  text-align: center;
}
.fc-qr-enterprise img {
  width: 220px !important;
  height: 220px !important;
  margin: 0 auto;
  display: block;
}
.fc-qr-enterprise p {
  font-size: 0.78rem !important;
  line-height: 1.45;
  margin-top: 8px;
}


/* ---- 老板自查（首屏） ---- */
.self-check { padding: 28px 0 36px !important; }
.self-check .section-title { font-size: 1.6rem; font-weight: 800; color: var(--ink-900); margin-bottom: 8px; }
.self-check .section-subtitle { color: var(--accent-dark); font-weight: 600; margin-bottom: 18px; }
.self-check-list {
  background: var(--bg-white);
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  padding: 22px 28px;
  line-height: 1.95;
  font-size: 0.95rem;
  box-shadow: var(--shadow-card);
}
.self-check-list p {
  color: var(--ink-700);
  padding-left: 4px;
  border-bottom: 1px dashed var(--line);
  padding-bottom: 8px;
  margin-bottom: 8px;
}
.self-check-list p:last-of-type { border-bottom: none; margin-bottom: 16px; }
.self-check-list p:hover {
  color: var(--ink-900);
  background: linear-gradient(90deg, rgba(200,168,78,0.06), transparent);
  padding-left: 12px;
  transition: all 0.2s;
}
.self-check-cta {
  display: block;
  margin: 16px auto 0;
  text-align: center;
  font-size: 1rem !important;
  padding: 12px 32px !important;
  width: auto;
  max-width: 280px;
}
