﻿/* ============================================================
   菇小二 · 首页样式（Home）
   从 templates/home_new.html 抽离，保持页面结构与行为不变
   ============================================================ */


/* ============================================================
     菇小二 · 自然菌物风首页
     绿色品牌体系 #20A53A + 有机曲线 + 孢子漂浮动效
     ============================================================ */
  .gx-pub-topbar, .gx-pub-footer, #footer { display: none !important; }
  body { background: #F6F7F3 !important; }
  .fx-page {
    --gx-home-stats-overlap: -32px;
    --gx-home-divider-height: 56px;
    --gx-home-section-space: 68px;
    --gx-home-section-space-tight: 56px;
    --gx-home-section-space-compact: 44px;
    --gx-home-section-bottom: 64px;
    --gx-home-section-header-gap: 44px;
    --gx-home-more-gap: 28px;
    --gx-home-more-section-bottom: 24px;
    --gx-home-cta-top: 56px;
    --gx-home-cta-bottom: 36px;
  }

  .fx-page * { box-sizing: border-box; }
  .fx-page html { scroll-behavior: smooth; }
  @media (prefers-reduced-motion: reduce) {
    .fx-page * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  }
  .fx-page a { color: inherit; text-decoration: none; }
  .fx-page img { max-width: 100%; display: block; }

  /* ===== 孢子背景 ===== */
  .gx-spores {
    position: fixed; inset: 0; pointer-events: none; z-index: 0; overflow: hidden;
  }
  .gx-spore {
    position: absolute; border-radius: 50%; background: rgba(32, 165, 58, 0.18);
    animation: floatSpore linear infinite;
  }
  @keyframes floatSpore {
    0% { transform: translateY(110vh) translateX(0) scale(0.8); opacity: 0; }
    10% { opacity: 0.6; }
    90% { opacity: 0.6; }
    100% { transform: translateY(-10vh) translateX(30px) scale(1.2); opacity: 0; }
  }

  /* ===== 顶栏 ===== */
  .gx-pub-topbar-new {
    position: sticky; top: 0; z-index: 300; background: rgba(255,255,255,0.92);
    backdrop-filter: blur(12px); border-bottom: 1px solid rgba(32,165,58,0.10);
    transition: box-shadow var(--gx-transition-base), background var(--gx-transition-base);
  }
  .gx-pub-topbar-new.is-scrolled { box-shadow: var(--gx-shadow-sm); background: rgba(255,255,255,0.98); }
  .gx-pub-topbar-inner {
    max-width: 1200px; margin: 0 auto; padding: 0 24px; height: 68px;
    display: flex; align-items: center; justify-content: space-between; gap: 24px;
  }
  .gx-pub-brand {
    display: inline-flex; align-items: center; gap: 10px; font-size: 20px;
    font-weight: 800; color: var(--gx-text-primary); flex-shrink: 0;
  }
  .gx-pub-brand-icon {
    width: 38px; height: 38px; border-radius: var(--gx-radius-xl);
    background: #fff; display: flex;
    align-items: center; justify-content: center;
    box-shadow: 0 4px 10px rgba(32,165,58,0.18); overflow: hidden;
  }
  .gx-pub-brand-icon img { width: 100%; height: 100%; object-fit: cover; }
  .gx-pub-nav-links { display: flex; align-items: center; gap: 6px; }
  .gx-pub-nav-link {
    padding: 8px 14px; border-radius: var(--gx-radius-button); font-size: 14px;
    font-weight: 500; color: var(--gx-text-secondary); transition: all var(--gx-transition-fast);
  }
  .gx-pub-nav-link:hover, .gx-pub-nav-link.is-active { color: var(--gx-primary); background: var(--gx-primary-bg-faint); }
  .gx-pub-nav-link.is-primary { color: #fff; background: var(--gx-primary); }
  .gx-pub-nav-link.is-primary:hover { background: var(--gx-primary-dark); }
  .gx-pub-menu-btn {
    display: none; width: 40px; height: 40px; border: none; border-radius: var(--gx-radius-sm);
    background: var(--gx-bg-moss); color: var(--gx-primary); font-size: 22px; cursor: pointer;
  }
  @media (max-width: 992px) {
    .gx-pub-nav-links { display: none; }
    .gx-pub-menu-btn { display: inline-flex; align-items: center; justify-content: center; }
  }

  /* ===== 移动端菜单 ===== */
  .gx-pub-mobile-overlay {
    position: fixed; inset: 0; background: rgba(23, 60, 30, 0.45); z-index: 998;
    opacity: 0; visibility: hidden; transition: all var(--gx-transition-base);
  }
  .gx-pub-mobile-overlay.is-open { opacity: 1; visibility: visible; }
  .gx-pub-mobile-menu {
    position: fixed; top: 0; right: 0; bottom: 0; width: min(320px, 85vw);
    background: linear-gradient(180deg, #fff 0%, #f8fbf6 100%); z-index: 1000; transform: translateX(100%);
    transition: transform var(--gx-transition-base); display: flex; flex-direction: column;
    box-shadow: -4px 0 24px rgba(0,0,0,0.08);
  }
  .gx-pub-mobile-menu.is-open { transform: translateX(0); }
  .gx-pub-mobile-head {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 20px; border-bottom: 1px solid var(--gx-border-light);
  }
  .gx-pub-mobile-close {
    width: 36px; height: 36px; border: none; border-radius: var(--gx-radius-sm);
    background: var(--gx-bg-moss); font-size: 22px; cursor: pointer; color: var(--gx-primary);
  }
  .gx-pub-mobile-links { flex: 1; overflow-y: auto; padding: 12px 16px; }
  .gx-pub-mobile-link {
    display: flex; align-items: center; gap: 12px; padding: 14px 12px;
    border-radius: var(--gx-radius-md); color: var(--gx-text-primary); font-weight: 500;
    transition: background var(--gx-transition-fast);
  }
  .gx-pub-mobile-link:hover { background: var(--gx-primary-bg-faint); color: var(--gx-primary); }
  .gx-pub-mobile-link i { font-size: 18px; color: var(--gx-primary); }

  /* 按钮使用全局 .gx-btn（components.css），此处仅覆盖首页 CTA 区特殊样式 */

  /* ===== Hero ===== */
  .gx-hero {
    position: relative; min-height: 92vh; display: flex; align-items: center;
    background: linear-gradient(160deg, #f6fbf4 0%, #edf5e8 40%, #e8f3e3 100%);
    overflow: hidden; padding: 100px 0 80px;
  }
  .gx-hero-blob {
    position: absolute; border-radius: 50%; filter: blur(60px); opacity: 0.55; pointer-events: none;
  }
  .gx-hero-blob-1 { width: 500px; height: 500px; background: rgba(32,165,58,0.18); top: -120px; right: -80px; }
  .gx-hero-blob-2 { width: 380px; height: 380px; background: rgba(77,191,98,0.16); bottom: -80px; left: -60px; }
  .gx-hero-blob-3 { width: 260px; height: 260px; background: rgba(255,136,0,0.10); top: 40%; right: 18%; }
  .gx-hero-inner {
    position: relative; z-index: 2; display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 60px;
    align-items: center; max-width: 1200px; margin: 0 auto; padding: 0 24px; width: 100%;
  }
  .gx-hero-content { max-width: 560px; }
  .gx-hero-badge {
    display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px;
    background: rgba(255,255,255,0.8); color: var(--gx-primary); border-radius: var(--gx-radius-pill);
    font-size: 13px; font-weight: 700; margin-bottom: 24px; border: 1px solid rgba(32,165,58,0.15);
  }
  .gx-hero-badge-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--gx-primary); animation: pulse 2s infinite; }
  @keyframes pulse { 0%,100% { opacity: 1; } 50% { opacity: 0.5; } }
  .gx-hero-title { font-size: clamp(38px, 5.5vw, 58px); font-weight: 800; line-height: 1.12; margin: 0 0 20px; color: var(--gx-text-primary); }
  .gx-hero-title .hl { color: var(--gx-primary); position: relative; display: inline-block; }
  .gx-hero-title .hl::after {
    content: ''; position: absolute; bottom: 4px; left: -4px; right: -4px; height: 12px;
    background: rgba(32,165,58,0.15); border-radius: 4px; z-index: -1;
  }
  .gx-hero-desc { font-size: 18px; color: var(--gx-text-secondary); margin: 0 0 32px; line-height: 1.7; }
  .gx-hero-search {
    display: flex; background: #fff; border: 1px solid rgba(32,165,58,0.2);
    border-radius: var(--gx-radius-md); box-shadow: var(--gx-shadow-md); overflow: hidden;
    transition: box-shadow var(--gx-transition-fast), border-color var(--gx-transition-fast);
  }
  .gx-hero-search:focus-within { box-shadow: 0 0 0 4px var(--gx-primary-bg-faint), var(--gx-shadow-md); border-color: var(--gx-primary); }
  .gx-hero-search input { flex: 1; border: none; padding: 16px 20px; font-size: 15px; outline: none; color: var(--gx-text-primary); background: transparent; }
  .gx-hero-search input::placeholder { color: var(--gx-text-placeholder); }
  .gx-hero-search button { border-radius: 0 var(--gx-radius-xl) var(--gx-radius-xl) 0; padding: 0 24px; }
  .gx-hero-illustration {
    position: relative; display: flex; align-items: center; justify-content: center;
    min-height: 420px;
  }
  .gx-hero-logo {
    width: 100%; max-width: 320px; filter: drop-shadow(0 20px 40px rgba(32,165,58,0.18));
    animation: gentleFloat 6s ease-in-out infinite;
    border-radius: var(--gx-radius-2xl);
  }
  .gx-hero-logo img { width: 100%; height: auto; border-radius: var(--gx-radius-2xl); }
  @keyframes gentleFloat {
    0%,100% { transform: translateY(0) rotate(-1deg); }
    50% { transform: translateY(-12px) rotate(1deg); }
  }
  .gx-hero-ring {
    position: absolute; border: 1.5px dashed rgba(32,165,58,0.25); border-radius: 50%;
    animation: spinSlow 30s linear infinite;
  }
  @keyframes spinSlow { 100% { transform: rotate(360deg); } }
  @media (max-width: 992px) {
    .gx-hero-inner { grid-template-columns: 1fr; text-align: center; gap: 40px; }
    .gx-hero-content { max-width: 100%; }
    .gx-hero-illustration { min-height: 300px; }
    .gx-hero-logo { max-width: 240px; }
  }
  @media (max-width: 576px) {
    .gx-hero { padding: 80px 0 60px; min-height: auto; }
    .gx-hero-search { flex-direction: column; border-radius: var(--gx-radius-md); }
    .gx-hero-search button { border-radius: 0 0 var(--gx-radius-md) var(--gx-radius-md); padding: 14px; }
  }

  /* ===== 平台数据条 ===== */
  .gx-stats-bar {
    position: relative; z-index: 2; background: #fff;
    margin-top: var(--gx-home-stats-overlap); margin-left: auto; margin-right: auto; max-width: 1000px;
    border-radius: var(--gx-radius-card); box-shadow: var(--gx-shadow-lg);
    border: 1px solid rgba(32,165,58,0.10); padding: 32px 40px;
  }
  .gx-stats-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
  .gx-stat-item { text-align: center; padding: 12px; position: relative; }
  .gx-stat-item:not(:last-child)::after {
    content: ''; position: absolute; right: 0; top: 20%; bottom: 20%; width: 1px; background: var(--gx-border-light);
  }
  .gx-stat-num { font-size: 34px; font-weight: 800; color: var(--gx-text-primary); line-height: 1; margin-bottom: 6px; }
  .gx-stat-num small { font-size: 16px; color: var(--gx-primary); margin-left: 2px; }
  .gx-stat-label { font-size: 13px; color: var(--gx-text-secondary); font-weight: 500; }
  @media (max-width: 768px) {
    .fx-page {
      --gx-home-stats-overlap: -24px;
      --gx-home-divider-height: 40px;
      --gx-home-section-space: 56px;
      --gx-home-section-space-tight: 48px;
      --gx-home-section-space-compact: 36px;
      --gx-home-section-bottom: 52px;
      --gx-home-section-header-gap: 36px;
      --gx-home-more-gap: 24px;
      --gx-home-more-section-bottom: 20px;
      --gx-home-cta-top: 48px;
      --gx-home-cta-bottom: 32px;
    }
    .gx-stats-bar { margin: var(--gx-home-stats-overlap) 16px 0; padding: 24px; }
    .gx-stats-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
    .gx-stat-item:nth-child(2)::after { display: none; }
    .gx-stat-item::after { top: 10%; bottom: 10%; }
  }

  /* ===== 波浪分隔线 ===== */
  .gx-wave-divider {
    display: block; width: 100%; height: var(--gx-home-divider-height); background: var(--gx-bg-page); position: relative;
  }
  .gx-wave-divider svg { position: absolute; bottom: 0; width: 100%; height: var(--gx-home-divider-height); }
  .gx-wave-divider.light { background: var(--gx-bg-card); }
  .gx-wave-divider.warm { background: var(--gx-bg-card-warm); }
  .gx-wave-divider.moss { background: var(--gx-bg-moss); }

  /* ===== 通用区块 ===== */
  .gx-section { padding: var(--gx-home-section-space) 0 var(--gx-home-section-bottom); position: relative; }
  .gx-section-light { background: var(--gx-bg-card); }
  .gx-section-warm { background: var(--gx-bg-card-warm); }
  .gx-section-moss { background: var(--gx-bg-moss); }
  .gx-section-header { margin-bottom: var(--gx-home-section-header-gap); }
  .gx-section-header.center { text-align: center; }
  .gx-section-eyebrow {
    display: inline-flex; align-items: center; gap: 8px; font-size: 12px; font-weight: 700; color: var(--gx-primary);
    text-transform: uppercase; letter-spacing: 1.5px; margin-bottom: 10px;
  }
  .gx-section-eyebrow::before {
    content: ''; width: 20px; height: 2px; background: var(--gx-primary); border-radius: 2px;
  }
  .fx-page .gx-section-title { font-size: clamp(28px, 4vw, 36px); font-weight: 800; margin: 0 0 12px; color: var(--gx-text-primary); display: block; }
  .gx-section-desc { font-size: 17px; color: var(--gx-text-secondary); margin: 0; }
  /* 居中区块标题：重置 components.css 中 .gx-section-title 的 flex 布局，使文本真正居中 */
  .gx-section-header.center .gx-section-title { display: block; justify-content: center; text-align: center; }
  .gx-section-header.center .gx-section-eyebrow { display: inline-flex; }
  #wanted.gx-section { padding-top: var(--gx-home-section-space-compact); }
  #specimens.gx-section { padding-bottom: 0; }
  #marketplace.gx-section { padding-bottom: var(--gx-home-more-section-bottom); }

  /* ===== 功能卡 ===== */
  .gx-features-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
  .gx-feature-card {
    background: var(--gx-bg-card); border-radius: var(--gx-radius-2xl); padding: 32px 26px;
    border: 1px solid rgba(32,165,58,0.08); transition: all var(--gx-transition-base);
    position: relative; overflow: hidden;
  }
  .gx-feature-card::before {
    content: ''; position: absolute; top: -40px; right: -40px; width: 100px; height: 100px;
    border-radius: 50%; opacity: 0; transition: opacity var(--gx-transition-base);
  }
  .gx-feature-card:hover { transform: translateY(-6px); box-shadow: var(--gx-shadow-card-hover); border-color: transparent; }
  .gx-feature-card:hover::before { opacity: 1; }
  .gx-feature-icon {
    width: 56px; height: 56px; border-radius: 18px; display: flex;
    align-items: center; justify-content: center; font-size: 26px; margin-bottom: 22px;
    position: relative; z-index: 1;
  }
  .gx-feature-card:nth-child(1) .gx-feature-icon { background: var(--gx-primary-bg-faint); color: var(--gx-primary); }
  .gx-feature-card:nth-child(1)::before { background: var(--gx-primary-bg-faint); }
  .gx-feature-card:nth-child(2) .gx-feature-icon { background: rgba(21,101,192,0.08); color: var(--gx-info); }
  .gx-feature-card:nth-child(2)::before { background: rgba(21,101,192,0.06); }
  .gx-feature-card:nth-child(3) .gx-feature-icon { background: var(--gx-tertiary-bg-faint); color: var(--gx-tertiary); }
  .gx-feature-card:nth-child(3)::before { background: var(--gx-tertiary-bg-faint); }
  .gx-feature-card:nth-child(4) .gx-feature-icon { background: rgba(52,199,89,0.10); color: var(--gx-success); }
  .gx-feature-card:nth-child(4)::before { background: rgba(52,199,89,0.08); }
  .gx-feature-title { font-size: 18px; font-weight: 700; margin-bottom: 10px; color: var(--gx-text-primary); }
  .gx-feature-desc { font-size: 14px; color: var(--gx-text-secondary); line-height: 1.65; margin: 0; }
  @media (max-width: 992px) { .gx-features-grid { grid-template-columns: repeat(2, 1fr); } }
  @media (max-width: 576px) { .gx-features-grid { grid-template-columns: 1fr; } }

  /* ===== 分析/查询区 ===== */
  .gx-analysis-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
  .gx-analysis-card {
    background: var(--gx-bg-card); border-radius: var(--gx-radius-card); padding: 32px;
    border: 1px solid rgba(32,165,58,0.08); transition: all var(--gx-transition-base);
    position: relative; top: 0;
  }
  .gx-analysis-card:hover { top: -6px; box-shadow: var(--gx-shadow-card-hover); border-color: transparent; }
  .gx-analysis-card i { font-size: 32px; color: var(--gx-primary); margin-bottom: 18px; display: inline-block; }
  .gx-analysis-card h4 { font-size: 18px; font-weight: 700; margin: 0 0 10px; }
  .gx-analysis-card p { font-size: 14px; color: var(--gx-text-secondary); margin: 0 0 18px; line-height: 1.65; }
  .gx-analysis-link { font-size: 14px; font-weight: 600; color: var(--gx-primary); display: inline-flex; align-items: center; gap: 6px; }
  .gx-analysis-link:hover { gap: 10px; }
  @media (max-width: 768px) { .gx-analysis-grid { grid-template-columns: 1fr; } }

  /* ===== 标本/交易卡片 ===== */
  .gx-cards-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
  .gx-landing-card {
    background: var(--gx-bg-card); border-radius: var(--gx-radius-xl); overflow: hidden;
    border: 1px solid rgba(32,165,58,0.08); transition: all var(--gx-transition-base);
    text-decoration: none; color: inherit; display: flex; flex-direction: column;
  }
  .gx-landing-card:hover { transform: translateY(-6px); box-shadow: var(--gx-shadow-card-hover); border-color: transparent; }
  .gx-landing-card-img { aspect-ratio: 1/1; overflow: hidden; background: var(--gx-bg-moss); position: relative; }
  .gx-landing-card-img img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.5s ease; }
  .gx-landing-card:hover .gx-landing-card-img img { transform: scale(1.06); }
  .gx-landing-card-placeholder {
    width: 100%; height: 100%; display: flex; align-items: center; justify-content: center;
    font-size: 56px; background: var(--gx-primary-bg-faint);
  }
  .gx-landing-card-tag {
    position: absolute; top: 14px; left: 14px; background: var(--gx-primary); color: #fff;
    font-size: 11px; font-weight: 700; padding: 5px 12px; border-radius: var(--gx-radius-pill);
  }
  .gx-landing-card-genus {
    position: absolute; top: 14px; right: 14px; background: rgba(29,33,41,0.75); color: #fff;
    font-size: 11px; font-weight: 600; padding: 5px 12px; border-radius: var(--gx-radius-pill);
  }
  .gx-landing-card-body { padding: 20px; flex: 1; display: flex; flex-direction: column; }
  .gx-landing-card-name { font-size: 16px; font-weight: 700; color: var(--gx-text-primary); margin-bottom: 4px; }
  .gx-landing-card-latin { font-size: 12px; color: var(--gx-text-secondary); font-style: italic; margin-bottom: 10px; }
  .gx-landing-card-meta { font-size: 12px; color: var(--gx-text-muted); margin-bottom: 14px; display: flex; align-items: center; gap: 4px; }
  .gx-landing-card-foot { margin-top: auto; display: flex; justify-content: space-between; align-items: center; padding-top: 14px; border-top: 1px solid var(--gx-border-light); }
  .gx-landing-card-price { font-size: 18px; font-weight: 800; color: var(--gx-text-price); }
  @media (max-width: 1100px) { .gx-cards-grid { grid-template-columns: repeat(3, 1fr); } }
  @media (max-width: 768px) { .gx-cards-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; } }
  @media (max-width: 400px) { .gx-cards-grid { grid-template-columns: 1fr; } }

  /* ===== 求购区 ===== */
  .gx-wanted-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
  .gx-wanted-card {
    background: var(--gx-bg-card); border-radius: var(--gx-radius-card); padding: 26px;
    border: 1px solid rgba(32,165,58,0.08); transition: all var(--gx-transition-base);
  }
  .gx-wanted-card:hover { transform: translateY(-4px); box-shadow: var(--gx-shadow-card-hover); border-color: transparent; }
  .gx-wanted-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 14px; }
  .gx-wanted-badge { background: var(--gx-tertiary-bg-faint); color: var(--gx-tertiary); font-size: 12px; font-weight: 700; padding: 4px 12px; border-radius: var(--gx-radius-pill); }
  .gx-wanted-date { font-size: 12px; color: var(--gx-text-muted); }
  .gx-wanted-title { font-size: 17px; font-weight: 700; color: var(--gx-text-primary); margin-bottom: 8px; }
  .gx-wanted-desc { font-size: 13px; color: var(--gx-text-secondary); line-height: 1.55; margin-bottom: 16px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
  .gx-wanted-foot { display: flex; justify-content: space-between; align-items: center; }
  .gx-wanted-label { font-size: 12px; color: var(--gx-text-muted); }
  .gx-wanted-budget { font-size: 20px; font-weight: 800; color: var(--gx-text-price); }
  @media (max-width: 768px) { .gx-wanted-grid { grid-template-columns: 1fr; } }

  /* ===== CTA ===== */
  .gx-cta {
    position: relative;
    padding: var(--gx-home-cta-top) 0 var(--gx-home-cta-bottom);
    background: #f4f7f1;
    border-top: 1px solid rgba(31, 54, 36, 0.08);
  }
  .gx-cta::before {
    display: none;
  }
  .gx-cta-inner {
    position: relative;
    z-index: 1;
    max-width: 720px;
    margin: 0 auto;
    padding: 0 24px;
    text-align: center;
  }
  .gx-cta-title {
    font-size: clamp(30px, 4vw, 40px);
    line-height: 1.15;
    font-weight: 800;
    margin: 0 0 12px;
    color: #193423;
    letter-spacing: -0.025em;
  }
  .gx-cta-desc {
    max-width: 520px;
    margin: 0 auto 22px;
    font-size: 16px;
    color: #66786a;
    line-height: 1.7;
  }
  .gx-cta-actions {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
  }
  .gx-cta .gx-btn-primary {
    background: var(--gx-primary);
    color: #fff;
    border-color: transparent;
    box-shadow: 0 8px 18px rgba(32, 165, 58, 0.16);
  }
  .gx-cta .gx-btn-primary:hover {
    background: var(--gx-primary-dark);
  }
  .gx-cta .gx-btn-outline {
    background: transparent;
    color: #245c35;
    border-color: rgba(36, 92, 53, 0.16);
  }
  .gx-cta .gx-btn-outline:hover {
    background: rgba(255,255,255,0.72);
    border-color: rgba(36, 92, 53, 0.28);
  }
  .gx-cta-footer {
    margin-top: 24px;
    padding-top: 14px;
    border-top: 1px solid rgba(25, 52, 35, 0.08);
  }
  .gx-cta-meta {
    margin: 0;
    font-size: 13px;
    line-height: 1.7;
    color: #7a8a7c;
  }
  .gx-cta-meta + .gx-cta-meta {
    margin-top: 4px;
  }
  .gx-cta-meta a {
    color: #4d7159;
    text-decoration: none;
  }
  .gx-cta-meta a:hover {
    text-decoration: underline;
  }
  @media (max-width: 768px) {
    .gx-cta-inner {
      padding: 0 22px;
    }
    .gx-cta-title {
      font-size: clamp(26px, 8vw, 34px);
    }
    .gx-cta-desc {
      font-size: 15px;
      margin-bottom: 20px;
    }
  }
  @media (max-width: 576px) {
    .gx-cta-inner {
      padding: 0 18px;
    }
    .gx-cta-actions {
      flex-direction: column;
      align-items: stretch;
    }
    .gx-cta-actions .gx-btn {
      width: 100%;
      justify-content: center;
    }
    .gx-cta-meta {
      line-height: 1.7;
    }
  }

  /* ===== 页脚 ===== */
  .gx-pub-footer-new { background: #152619; color: rgba(255,255,255,0.65); padding: 24px 0; position: relative; }
  .gx-pub-footer-new::before {
    content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px;
    background: var(--gx-primary);
  }
  .gx-pub-footer-inner {
    max-width: 1200px; margin: 0 auto; padding: 0 24px;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
  }
  .gx-pub-footer-copy { font-size: 13px; line-height: 1.6; margin: 0; }
  .gx-pub-footer-copy a { color: rgba(255,255,255,0.65); transition: color var(--gx-transition-fast); }
  .gx-pub-footer-copy a:hover { color: #fff; }
  @media (max-width: 768px) {
    .gx-pub-footer-inner { flex-direction: column; text-align: center; gap: 6px; }
  }

  /* ===== Skip link ===== */
  .gx-skip-link {
    position: absolute; top: -40px; left: 0; background: var(--gx-primary); color: #fff;
    padding: 8px 16px; z-index: 9999; border-radius: 0 0 var(--gx-radius-sm) 0;
    transition: top var(--gx-transition-fast);
  }
  .gx-skip-link:focus { top: 0; }

  /* ===== 通用工具 ===== */
  .gx-pub-container { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 24px; }
  @media (max-width: 576px) { .gx-pub-container { padding: 0 16px; } }
  .gx-more { text-align: center; margin-top: var(--gx-home-more-gap); }
  .gx-reveal { opacity: 1; transform: translateY(0); }
  .gx-reveal.animate { opacity: 0; transform: translateY(24px); transition: opacity 0.5s ease, transform 0.5s ease; }
  .gx-reveal.animate.is-visible { opacity: 1; transform: translateY(0); }

  /* ===== 加载骨架 ===== */
  .gx-landing-skeleton { background: linear-gradient(90deg, #f0f0f0 25%, #e8e8e8 50%, #f0f0f0 75%); background-size: 200% 100%; animation: gx-skeleton 1.2s infinite; border-radius: var(--gx-radius-sm); }
  @keyframes gx-skeleton { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }

  /* ===== 错误/空状态 ===== */
  .gx-landing-empty { text-align: center; padding: 40px 20px; color: var(--gx-text-secondary); grid-column: 1 / -1; }
  .gx-landing-empty i { font-size: 40px; color: var(--gx-border); margin-bottom: 12px; display: block; }

.fx-inline-feature-row { display: flex; align-items: center; gap: 12px; }
.gx-hero-ring--lg { width: 460px; height: 460px; }
.gx-hero-ring--md { width: 360px; height: 360px; animation-direction: reverse; }


