/* =============================================================================
 * 朗慧AI网站统一设计系统 (LangHui AI Design System)
 * 版本: 1.0.0
 * 核心色彩: 主色 #E53E3E (品牌红) / 深蓝 #1A365D (信赖蓝)
 * 适用范围: 朗慧AI全站页面统一视觉规范
 * 引入方式: <link rel="stylesheet" href="design-system.css">
 * ========================================================================== */

/* ==========================================================================
   一、CSS 变量定义 (Design Tokens)
   ========================================================================== */
:root {
  /* —— 品牌主色 —— */
  --lh-primary: #E53E3E;            /* 品牌主色：朗慧红 */
  --lh-primary-dark: #C53030;       /* 主色深：悬停/按下 */
  --lh-primary-darker: #9B2C2C;     /* 主色更深：active 状态 */
  --lh-primary-light: #F56565;      /* 主色浅：辅助点缀 */
  --lh-primary-lighter: #FED7D7;    /* 主色更浅：背景色 */
  --lh-primary-bg: #FFF5F5;         /* 主色背景：极浅红 */

  /* —— 深蓝色系 —— */
  --lh-navy: #1A365D;               /* 深蓝：标题/重要文本 */
  --lh-navy-light: #2A4A7D;         /* 深蓝浅：次级文本 */
  --lh-navy-dark: #0F2440;          /* 深蓝深：footer/深色背景 */
  --lh-navy-bg: #EBF4FF;            /* 深蓝背景：极浅蓝 */

  /* —— 辅助色 —— */
  --lh-accent: #3182CE;             /* 辅助蓝：链接/信息提示 */
  --lh-success: #38A169;            /* 成功：绿色 */
  --lh-warning: #D69E2E;            /* 警告：橙色 */
  --lh-info: #319795;               /* 信息：青色 */
  --lh-gold: #B7791F;               /* 金色：尊享/专家 */

  /* —— 中性色 —— */
  --lh-text-primary: #1A202C;       /* 主文本 */
  --lh-text-secondary: #4A5568;     /* 次要文本 */
  --lh-text-muted: #718096;         /* 弱化文本 */
  --lh-text-placeholder: #A0AEC0;   /* 占位文本 */
  --lh-border: #E2E8F0;             /* 边框 */
  --lh-border-light: #EDF2F7;       /* 浅边框 */
  --lh-bg: #FFFFFF;                 /* 页面背景 */
  --lh-bg-alt: #F7FAFC;             /* 备用背景 */
  --lh-bg-dark: #0F2440;            /* 深色背景 */

  /* —— 渐变 —— */
  --lh-gradient-primary: linear-gradient(135deg, #E53E3E 0%, #C53030 100%);
  --lh-gradient-navy: linear-gradient(135deg, #1A365D 0%, #2A4A7D 100%);
  --lh-gradient-mix: linear-gradient(135deg, #1A365D 0%, #E53E3E 100%);
  --lh-gradient-gold: linear-gradient(135deg, #B7791F 0%, #D69E2E 100%);

  /* —— 阴影系统 —— */
  --lh-shadow-sm: 0 1px 2px 0 rgba(26, 54, 93, 0.05);
  --lh-shadow: 0 4px 6px -1px rgba(26, 54, 93, 0.08), 0 2px 4px -1px rgba(26, 54, 93, 0.04);
  --lh-shadow-md: 0 10px 15px -3px rgba(26, 54, 93, 0.10), 0 4px 6px -2px rgba(26, 54, 93, 0.05);
  --lh-shadow-lg: 0 20px 25px -5px rgba(26, 54, 93, 0.12), 0 10px 10px -5px rgba(26, 54, 93, 0.04);
  --lh-shadow-xl: 0 25px 50px -12px rgba(26, 54, 93, 0.25);
  --lh-shadow-primary: 0 10px 30px -10px rgba(229, 62, 62, 0.35);
  --lh-shadow-navy: 0 10px 30px -10px rgba(26, 54, 93, 0.35);

  /* —— 圆角 —— */
  --lh-radius-sm: 0.375rem;
  --lh-radius: 0.5rem;
  --lh-radius-md: 0.75rem;
  --lh-radius-lg: 1rem;
  --lh-radius-xl: 1.5rem;
  --lh-radius-full: 9999px;

  /* —— 间距系统 (4px 基准) —— */
  --lh-space-1: 0.25rem;   /* 4px */
  --lh-space-2: 0.5rem;    /* 8px */
  --lh-space-3: 0.75rem;   /* 12px */
  --lh-space-4: 1rem;      /* 16px */
  --lh-space-5: 1.5rem;    /* 24px */
  --lh-space-6: 2rem;      /* 32px */
  --lh-space-8: 3rem;      /* 48px */
  --lh-space-10: 4rem;     /* 64px */
  --lh-space-12: 6rem;     /* 96px */
  --lh-space-16: 8rem;     /* 128px */

  /* —— 字号系统 —— */
  --lh-text-xs: 0.75rem;
  --lh-text-sm: 0.875rem;
  --lh-text-base: 1rem;
  --lh-text-lg: 1.125rem;
  --lh-text-xl: 1.25rem;
  --lh-text-2xl: 1.5rem;
  --lh-text-3xl: 1.875rem;
  --lh-text-4xl: 2.25rem;
  --lh-text-5xl: 3rem;
  --lh-text-6xl: 3.75rem;

  /* —— 字重 —— */
  --lh-font-normal: 400;
  --lh-font-medium: 500;
  --lh-font-semibold: 600;
  --lh-font-bold: 700;
  --lh-font-extrabold: 800;

  /* —— 行高 —— */
  --lh-leading-tight: 1.25;
  --lh-leading-snug: 1.375;
  --lh-leading-normal: 1.5;
  --lh-leading-relaxed: 1.625;
  --lh-leading-loose: 2;

  /* —— 字体族 —— */
  --lh-font-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC',
                  'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
  --lh-font-mono: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;

  /* —— 过渡 —— */
  --lh-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --lh-transition-fast: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
  --lh-transition-slow: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);

  /* —— z-index 层级 —— */
  --lh-z-dropdown: 1000;
  --lh-z-sticky: 1020;
  --lh-z-fixed: 1030;
  --lh-z-modal-backdrop: 1040;
  --lh-z-modal: 1050;
  --lh-z-popover: 1060;
  --lh-z-tooltip: 1070;
  --lh-z-cta: 990;          /* 浮动 CTA */
  --lh-z-cookie: 1080;      /* Cookie 同意弹窗：最高优先级 */
}

/* ==========================================================================
   二、暗黑模式预备 (Dark Mode)
   ========================================================================== */
[data-theme="dark"] {
  --lh-text-primary: #F7FAFC;
  --lh-text-secondary: #CBD5E0;
  --lh-text-muted: #A0AEC0;
  --lh-text-placeholder: #718096;
  --lh-border: #2D3748;
  --lh-border-light: #1A202C;
  --lh-bg: #0F2440;
  --lh-bg-alt: #1A202C;
  --lh-bg-dark: #050D1A;
  --lh-primary-bg: #2D1A1A;
  --lh-navy-bg: #0F2440;
  --lh-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.3);
  --lh-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.4), 0 2px 4px -1px rgba(0, 0, 0, 0.3);
  --lh-shadow-md: 0 10px 15px -3px rgba(0, 0, 0, 0.5), 0 4px 6px -2px rgba(0, 0, 0, 0.3);
  --lh-shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.6), 0 10px 10px -5px rgba(0, 0, 0, 0.4);
  --lh-shadow-xl: 0 25px 50px -12px rgba(0, 0, 0, 0.8);
}

/* ==========================================================================
   三、响应式断点
   说明：使用 min-width 移动优先策略
   --lh-bp-sm:  640px  (大手机/小平板)
   --lh-bp-md:  768px  (平板)
   --lh-bp-lg:  1024px (小桌面)
   --lh-bp-xl:  1280px (桌面)
   --lh-bp-2xl: 1536px (大桌面)
   ========================================================================== */
:root {
  --lh-bp-sm: 640px;
  --lh-bp-md: 768px;
  --lh-bp-lg: 1024px;
  --lh-bp-xl: 1280px;
  --lh-bp-2xl: 1536px;
}

/* ==========================================================================
   四、全局基础样式
   ========================================================================== */
* { box-sizing: border-box; }

html {
  scroll-behavior: smooth;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--lh-font-sans);
  font-size: var(--lh-text-base);
  font-weight: var(--lh-font-normal);
  line-height: var(--lh-leading-normal);
  color: var(--lh-text-primary);
  background-color: var(--lh-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

img, video { max-width: 100%; height: auto; display: block; }

a {
  color: var(--lh-accent);
  text-decoration: none;
  transition: var(--lh-transition-fast);
}
a:hover { color: var(--lh-primary); }

/* ==========================================================================
   五、选中文本样式
   ========================================================================== */
::selection {
  background-color: var(--lh-primary);
  color: #FFFFFF;
  text-shadow: none;
}
::-moz-selection {
  background-color: var(--lh-primary);
  color: #FFFFFF;
}

/* ==========================================================================
   六、滚动条美化
   ========================================================================== */
::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}
::-webkit-scrollbar-track {
  background: var(--lh-bg-alt);
  border-radius: var(--lh-radius-full);
}
::-webkit-scrollbar-thumb {
  background: var(--lh-navy-light);
  border-radius: var(--lh-radius-full);
  border: 2px solid var(--lh-bg-alt);
}
::-webkit-scrollbar-thumb:hover {
  background: var(--lh-navy);
}
::-webkit-scrollbar-corner {
  background: transparent;
}
/* Firefox 滚动条 */
html {
  scrollbar-width: thin;
  scrollbar-color: var(--lh-navy-light) var(--lh-bg-alt);
}

/* ==========================================================================
   七、统一标题样式
   ========================================================================== */
.lh-h1,
.lh-h2,
.lh-h3,
.lh-h4,
.lh-h5,
.lh-h6 {
  margin: 0 0 var(--lh-space-4);
  font-weight: var(--lh-font-bold);
  line-height: var(--lh-leading-tight);
  color: var(--lh-navy);
  letter-spacing: -0.02em;
}

.lh-h1 {
  font-size: clamp(2rem, 5vw, var(--lh-text-6xl));
  font-weight: var(--lh-font-extrabold);
  letter-spacing: -0.03em;
}

.lh-h2 {
  font-size: clamp(1.75rem, 4vw, var(--lh-text-4xl));
  font-weight: var(--lh-font-bold);
}

.lh-h3 {
  font-size: clamp(1.5rem, 3vw, var(--lh-text-3xl));
  font-weight: var(--lh-font-semibold);
}

.lh-h4 { font-size: var(--lh-text-xl); }
.lh-h5 { font-size: var(--lh-text-lg); }
.lh-h6 { font-size: var(--lh-text-base); color: var(--lh-text-secondary); }

/* 标题装饰：底部红色短横 */
.lh-h1::after,
.lh-h2.has-underline::after {
  content: '';
  display: block;
  width: 64px;
  height: 4px;
  margin-top: var(--lh-space-3);
  background: var(--lh-gradient-primary);
  border-radius: var(--lh-radius-full);
}

/* 渐变文字标题 */
.lh-gradient-text {
  background: var(--lh-gradient-mix);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}

/* ==========================================================================
   八、间距系统
   ========================================================================== */
.lh-container {
  width: 100%;
  max-width: 1280px;
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--lh-space-4);
  padding-right: var(--lh-space-4);
}

@media (min-width: 768px) {
  .lh-container { padding-left: var(--lh-space-6); padding-right: var(--lh-space-6); }
}

.lh-section {
  padding-top: var(--lh-space-12);
  padding-bottom: var(--lh-space-12);
}

@media (min-width: 768px) {
  .lh-section {
    padding-top: var(--lh-space-16);
    padding-bottom: var(--lh-space-16);
  }
}

.lh-section-sm { padding-top: var(--lh-space-10); padding-bottom: var(--lh-space-10); }
.lh-section-lg { padding-top: var(--lh-space-16); padding-bottom: var(--lh-space-16); }

/* ==========================================================================
   九、统一按钮样式
   ========================================================================== */
.lh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--lh-space-2);
  padding: 0.75rem 1.75rem;
  font-family: inherit;
  font-size: var(--lh-text-base);
  font-weight: var(--lh-font-semibold);
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  user-select: none;
  border: 1px solid transparent;
  border-radius: var(--lh-radius);
  background: transparent;
  transition: var(--lh-transition);
  -webkit-tap-highlight-color: transparent;
}
.lh-btn:focus-visible {
  outline: 2px solid var(--lh-accent);
  outline-offset: 2px;
}
.lh-btn:disabled,
.lh-btn.is-disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

/* —— 主按钮：品牌红 —— */
.lh-btn-primary {
  background: var(--lh-gradient-primary);
  color: #FFFFFF;
  box-shadow: var(--lh-shadow-primary);
}
.lh-btn-primary:hover {
  background: linear-gradient(135deg, #C53030 0%, #9B2C2C 100%);
  color: #FFFFFF;
  transform: translateY(-2px);
  box-shadow: 0 14px 36px -10px rgba(229, 62, 62, 0.5);
}
.lh-btn-primary:active { transform: translateY(0); }

/* —— 次要按钮：深蓝实心 —— */
.lh-btn-secondary {
  background: var(--lh-gradient-navy);
  color: #FFFFFF;
  box-shadow: var(--lh-shadow-navy);
}
.lh-btn-secondary:hover {
  background: linear-gradient(135deg, #2A4A7D 0%, #1A365D 100%);
  color: #FFFFFF;
  transform: translateY(-2px);
}

/* —— 幽灵按钮：透明边框 —— */
.lh-btn-ghost {
  background: transparent;
  color: var(--lh-navy);
  border-color: var(--lh-navy);
}
.lh-btn-ghost:hover {
  background: var(--lh-navy);
  color: #FFFFFF;
  transform: translateY(-2px);
}

/* —— 玻璃拟态按钮 —— */
.lh-btn-glass {
  background: rgba(255, 255, 255, 0.12);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-color: rgba(255, 255, 255, 0.25);
  color: #FFFFFF;
}
.lh-btn-glass:hover {
  background: rgba(255, 255, 255, 0.22);
  color: #FFFFFF;
  transform: translateY(-2px);
}

/* —— 按钮尺寸 —— */
.lh-btn-sm { padding: 0.5rem 1.25rem; font-size: var(--lh-text-sm); }
.lh-btn-lg { padding: 1rem 2.25rem; font-size: var(--lh-text-lg); }
.lh-btn-block { display: flex; width: 100%; }

/* ==========================================================================
   十、统一卡片样式
   ========================================================================== */
.lh-card {
  background: var(--lh-bg);
  border: 1px solid var(--lh-border);
  border-radius: var(--lh-radius-lg);
  padding: var(--lh-space-6);
  box-shadow: var(--lh-shadow);
  transition: var(--lh-transition);
}

.lh-card-hover:hover {
  transform: translateY(-6px);
  box-shadow: var(--lh-shadow-lg);
  border-color: var(--lh-primary-lighter);
}

/* —— 强调卡片：左侧色条 —— */
.lh-card-accent {
  border-left: 4px solid var(--lh-primary);
}

/* —— 深色卡片 —— */
.lh-card-dark {
  background: var(--lh-gradient-navy);
  color: #FFFFFF;
  border-color: var(--lh-navy-dark);
}

/* —— 玻璃卡片 —— */
.lh-card-glass {
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid rgba(255, 255, 255, 0.12);
  color: #FFFFFF;
}

/* ==========================================================================
   十一、徽章 / 标签
   ========================================================================== */
.lh-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--lh-space-1);
  padding: 0.25rem 0.75rem;
  font-size: var(--lh-text-xs);
  font-weight: var(--lh-font-semibold);
  line-height: 1.4;
  border-radius: var(--lh-radius-full);
  background: var(--lh-primary-bg);
  color: var(--lh-primary-dark);
  border: 1px solid var(--lh-primary-lighter);
}

.lh-badge-primary { background: var(--lh-primary); color: #FFFFFF; border-color: var(--lh-primary); }
.lh-badge-navy { background: var(--lh-navy); color: #FFFFFF; border-color: var(--lh-navy); }
.lh-badge-success { background: #C6F6D5; color: #22543D; border-color: #9AE6B4; }
.lh-badge-warning { background: #FEEBC8; color: #744210; border-color: #FBD38D; }
.lh-badge-gold { background: var(--lh-gradient-gold); color: #FFFFFF; border-color: transparent; }

/* —— 标签 tag：稍小、轻量 —— */
.lh-tag {
  display: inline-flex;
  align-items: center;
  padding: 0.125rem 0.625rem;
  font-size: var(--lh-text-xs);
  font-weight: var(--lh-font-medium);
  color: var(--lh-text-secondary);
  background: var(--lh-bg-alt);
  border: 1px solid var(--lh-border);
  border-radius: var(--lh-radius-sm);
  transition: var(--lh-transition-fast);
}
.lh-tag:hover {
  color: var(--lh-primary);
  border-color: var(--lh-primary-lighter);
  background: var(--lh-primary-bg);
}

/* ==========================================================================
   十二、动画效果
   ========================================================================== */
@keyframes lh-fadeInUp {
  from { opacity: 0; transform: translateY(24px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes lh-fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes lh-slideInLeft {
  from { opacity: 0; transform: translateX(-32px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes lh-slideInRight {
  from { opacity: 0; transform: translateX(32px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes lh-slideIn {
  from { opacity: 0; transform: translateY(100%); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes lh-pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.05); opacity: 0.85; }
}
@keyframes lh-pulseGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(229, 62, 62, 0.5); }
  50% { box-shadow: 0 0 0 12px rgba(229, 62, 62, 0); }
}
@keyframes lh-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}
@keyframes lh-rotate {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
@keyframes lh-bounce {
  0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8, 0, 1, 1); }
  50% { transform: translateY(0); animation-timing-function: cubic-bezier(0, 0, 0.2, 1); }
}
@keyframes lh-shimmer {
  0% { background-position: -1000px 0; }
  100% { background-position: 1000px 0; }
}

/* —— 动画工具类 —— */
.lh-animate-fadeInUp { animation: lh-fadeInUp 0.8s ease-out both; }
.lh-animate-fadeIn { animation: lh-fadeIn 0.6s ease-out both; }
.lh-animate-slideInLeft { animation: lh-slideInLeft 0.7s ease-out both; }
.lh-animate-slideInRight { animation: lh-slideInRight 0.7s ease-out both; }
.lh-animate-slideIn { animation: lh-slideIn 0.4s ease-out both; }
.lh-animate-pulse { animation: lh-pulse 2s ease-in-out infinite; }
.lh-animate-pulseGlow { animation: lh-pulseGlow 2s ease-in-out infinite; }
.lh-animate-float { animation: lh-float 6s ease-in-out infinite; }
.lh-animate-rotate { animation: lh-rotate 1s linear infinite; }

/* —— 动画延迟 —— */
.lh-delay-1 { animation-delay: 0.1s; }
.lh-delay-2 { animation-delay: 0.2s; }
.lh-delay-3 { animation-delay: 0.3s; }
.lh-delay-4 { animation-delay: 0.4s; }
.lh-delay-5 { animation-delay: 0.5s; }

/* —— 尊重用户偏好：减少动画 —— */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   十三、浮动 CTA 组件
   ========================================================================== */
.floating-cta {
  position: fixed;
  right: 1.5rem;
  bottom: 1.5rem;
  z-index: var(--lh-z-cta);
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: flex-end;
  pointer-events: none;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.floating-cta.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.floating-cta > * { pointer-events: auto; }

/* —— 单个浮动按钮 —— */
.floating-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: var(--lh-radius-full);
  background: var(--lh-gradient-primary);
  color: #FFFFFF;
  border: none;
  cursor: pointer;
  box-shadow: var(--lh-shadow-lg);
  transition: var(--lh-transition);
  -webkit-tap-highlight-color: transparent;
}
.floating-cta__btn:hover {
  transform: scale(1.08);
  box-shadow: var(--lh-shadow-xl);
}
.floating-cta__btn svg { width: 24px; height: 24px; fill: currentColor; }

.floating-cta__btn--navy { background: var(--lh-gradient-navy); }
.floating-cta__btn--green { background: linear-gradient(135deg, #38A169 0%, #2F855A 100%); }

/* —— 主按钮带脉冲提示 —— */
.floating-cta__btn--main {
  width: 64px;
  height: 64px;
  position: relative;
}
.floating-cta__btn--main::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background: var(--lh-primary);
  animation: lh-pulseGlow 2.5s ease-in-out infinite;
  z-index: -1;
}

/* —— 展开面板 —— */
.floating-cta__panel {
  position: absolute;
  right: 0;
  bottom: 76px;
  width: 280px;
  background: var(--lh-bg);
  border: 1px solid var(--lh-border);
  border-radius: var(--lh-radius-lg);
  box-shadow: var(--lh-shadow-xl);
  padding: var(--lh-space-5);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px) scale(0.96);
  transition: var(--lh-transition);
  transform-origin: bottom right;
}
.floating-cta__panel.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}
.floating-cta__panel-title {
  margin: 0 0 var(--lh-space-3);
  font-size: var(--lh-text-base);
  font-weight: var(--lh-font-bold);
  color: var(--lh-navy);
}
.floating-cta__panel-item {
  display: flex;
  align-items: center;
  gap: var(--lh-space-3);
  padding: var(--lh-space-3) 0;
  border-bottom: 1px solid var(--lh-border-light);
  color: var(--lh-text-secondary);
  font-size: var(--lh-text-sm);
  transition: var(--lh-transition-fast);
}
.floating-cta__panel-item:last-child { border-bottom: none; }
.floating-cta__panel-item:hover { color: var(--lh-primary); }
.floating-cta__panel-item svg { width: 18px; height: 18px; flex-shrink: 0; }

/* —— 移动端适配 —— */
@media (max-width: 767px) {
  .floating-cta { right: 1rem; bottom: 1rem; gap: 0.5rem; }
  .floating-cta__btn { width: 48px; height: 48px; }
  .floating-cta__btn--main { width: 56px; height: 56px; }
  .floating-cta__panel { width: calc(100vw - 2rem); right: 0; }
}

/* ==========================================================================
   十四、Cookie 同意弹窗
   ========================================================================== */
.cookie-consent {
  position: fixed;
  left: 1rem;
  right: 1rem;
  bottom: 1rem;
  z-index: var(--lh-z-cookie);
  max-width: 720px;
  margin: 0 auto;
  background: var(--lh-bg);
  border: 1px solid var(--lh-border);
  border-radius: var(--lh-radius-lg);
  box-shadow: var(--lh-shadow-xl);
  padding: var(--lh-space-5);
  opacity: 0;
  visibility: hidden;
  transform: translateY(20px);
  transition: opacity 0.4s ease, transform 0.4s ease, visibility 0.4s ease;
}
.cookie-consent.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.cookie-consent__header {
  display: flex;
  align-items: center;
  gap: var(--lh-space-3);
  margin-bottom: var(--lh-space-3);
}
.cookie-consent__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--lh-radius);
  background: var(--lh-primary-bg);
  color: var(--lh-primary);
  flex-shrink: 0;
}
.cookie-consent__title {
  margin: 0;
  font-size: var(--lh-text-lg);
  font-weight: var(--lh-font-bold);
  color: var(--lh-navy);
}

.cookie-consent__body {
  color: var(--lh-text-secondary);
  font-size: var(--lh-text-sm);
  line-height: var(--lh-leading-relaxed);
}
.cookie-consent__body a {
  color: var(--lh-primary);
  text-decoration: underline;
}

/* —— 自定义选项区 —— */
.cookie-consent__options {
  margin: var(--lh-space-4) 0;
  padding: var(--lh-space-4);
  background: var(--lh-bg-alt);
  border-radius: var(--lh-radius);
  display: none;
}
.cookie-consent__options.is-open { display: block; }

.cookie-consent__option {
  display: flex;
  align-items: flex-start;
  gap: var(--lh-space-3);
  padding: var(--lh-space-3) 0;
  border-bottom: 1px solid var(--lh-border-light);
}
.cookie-consent__option:last-child { border-bottom: none; }

.cookie-consent__switch {
  position: relative;
  flex-shrink: 0;
  width: 40px;
  height: 22px;
}
.cookie-consent__switch input {
  opacity: 0;
  width: 0;
  height: 0;
}
.cookie-consent__slider {
  position: absolute;
  inset: 0;
  background: #CBD5E0;
  border-radius: var(--lh-radius-full);
  cursor: pointer;
  transition: var(--lh-transition);
}
.cookie-consent__slider::before {
  content: '';
  position: absolute;
  top: 2px;
  left: 2px;
  width: 18px;
  height: 18px;
  background: #FFFFFF;
  border-radius: 50%;
  transition: var(--lh-transition);
}
.cookie-consent__switch input:checked + .cookie-consent__slider {
  background: var(--lh-primary);
}
.cookie-consent__switch input:checked + .cookie-consent__slider::before {
  transform: translateX(18px);
}
.cookie-consent__switch input:disabled + .cookie-consent__slider {
  background: var(--lh-primary);
  opacity: 0.6;
  cursor: not-allowed;
}
.cookie-consent__option-content { flex: 1; }
.cookie-consent__option-title {
  font-size: var(--lh-text-sm);
  font-weight: var(--lh-font-semibold);
  color: var(--lh-navy);
}
.cookie-consent__option-desc {
  font-size: var(--lh-text-xs);
  color: var(--lh-text-muted);
  margin-top: 2px;
}

/* —— 按钮组 —— */
.cookie-consent__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--lh-space-2);
  margin-top: var(--lh-space-4);
}
.cookie-consent__actions .lh-btn { flex: 1; min-width: 120px; }

/* —— 移动端适配 —— */
@media (max-width: 640px) {
  .cookie-consent {
    left: 0.5rem;
    right: 0.5rem;
    bottom: 0.5rem;
    padding: var(--lh-space-4);
  }
  .cookie-consent__actions .lh-btn { flex: 1 1 100%; }
}

/* ==========================================================================
   十五、辅助工具类
   ========================================================================== */
.lh-text-center { text-align: center; }
.lh-text-left { text-align: left; }
.lh-text-right { text-align: right; }
.lh-text-primary { color: var(--lh-primary) !important; }
.lh-text-navy { color: var(--lh-navy) !important; }
.lh-text-white { color: #FFFFFF !important; }
.lh-bg-primary { background-color: var(--lh-primary) !important; }
.lh-bg-navy { background-color: var(--lh-navy) !important; }
.lh-bg-alt { background-color: var(--lh-bg-alt) !important; }
.lh-rounded { border-radius: var(--lh-radius) !important; }
.lh-rounded-full { border-radius: var(--lh-radius-full) !important; }
.lh-shadow { box-shadow: var(--lh-shadow) !important; }
.lh-shadow-lg { box-shadow: var(--lh-shadow-lg) !important; }
.lh-hidden { display: none !important; }
.lh-mt-0 { margin-top: 0 !important; }
.lh-mb-0 { margin-bottom: 0 !important; }

/* —— 响应式显示/隐藏 —— */
.lh-hide-mobile { display: inherit; }
.lh-hide-desktop { display: none; }
@media (max-width: 767px) {
  .lh-hide-mobile { display: none !important; }
  .lh-hide-desktop { display: inherit; }
}
