/**
 * cloudesign 官方网站 — 公共基础样式
 * 部署路径：/assets/css/base.css
 * ------------------------------------------------------------
 * 仅包含在 14 个页面中【逐一核对、数值完全一致】的部分：
 *   - Reset & 全局字体
 *   - CSS 变量（--blue / --gray-xxx 等设计令牌）
 *   - 导航栏（#nav / .nav-hidden / .nav-inner / .nav-logo / .nav-links / .btn-cta-nav）
 *   - 通用滚动显现 Reveal（.reveal / .reveal.in / .reveal-d1 / .reveal-d2）
 *   - FAQ 手风琴（.faq-item / .faq-q / .faq-icon / .faq-ans）
 *   - 表单反馈提示位（.form-note-box / .ff-note 及状态 class）
 *   - 分类过滤工具类（.is-hidden）
 *
 * 页面独有的版式（Hero、卡片网格、价格表等）暂保留在各页面内联 <style> 中，
 * 未来如需要继续拆分为 /assets/css/pages/*.css，建议按页面逐一核对差异后再迁移，
 * 避免因为把"看起来一样但其实有细微差异"的规则合并后引发跨页面样式回归。
 */

/* ── RESET & BASE ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: 'Barlow', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Noto Sans SC', sans-serif;
  color: #0A0A0A;
  background: #fff;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
a { text-decoration: none; color: inherit; }

/* ── CSS 变量 / 设计令牌 ── */
:root {
  --blue:      #004BFF;
  --blue-dk:   #0040E0;
  --black:     #0A0A0A;
  --gray-900:  #1A1A1A;
  --gray-700:  #3A3A3A;
  --gray-500:  #666666;
  --gray-400:  #9A9A9A;
  --gray-200:  #E8E8E8;
  --gray-100:  #F3F3F3;
  --gray-50:   #F9F9F9;
}

/* ── 导航栏 ── */
#nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 100;
  height: 64px;
  background: rgba(255,255,255,0.97);
  border-bottom: 1px solid var(--gray-200);
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}
.nav-hidden { transform: translateY(-100%); }
.nav-inner { padding: 0 80px; height: 100%; display: flex; align-items: center; justify-content: space-between; }
.nav-logo { display: flex; align-items: center; height: 100%; }
.nav-logo img, .nav-logo-img { height: 29px; width: auto; display: block; }
.nav-logo em {
  font-style: normal; font-family: 'PingFang SC', 'Microsoft YaHei', sans-serif;
  font-weight: 700; font-size: 19px; letter-spacing: 0.06em; color: var(--black); margin-left: 12px;
}
.nav-links { display: flex; align-items: center; gap: 36px; list-style: none; }
.nav-links a { font-size: 15px; font-weight: 400; color: #555; transition: color 0.15s; }
.nav-links a:hover { color: var(--blue); }
.btn-cta-nav {
  padding: 9px 20px; background: var(--blue); color: #fff !important;
  font-size: 13.5px; font-weight: 600; letter-spacing: 0.06em; transition: background .2s;
}
.btn-cta-nav:hover { background: var(--blue-dk); }

@media (max-width: 900px) {
  .nav-inner { padding: 0 20px; }
}

/* ── 通用滚动显现 Reveal ── */
.reveal { opacity: 0; transform: translateY(18px); transition: opacity .75s ease, transform .75s ease; }
.reveal.in { opacity: 1; transform: translateY(0); }
.reveal-d1 { transition-delay: .1s; }
.reveal-d2 { transition-delay: .2s; }
.reveal-d3 { transition-delay: .3s; }

/* ── FAQ 手风琴 ── */
.faq-item { border-bottom: 1px solid var(--gray-200); }
.faq-q {
  display: flex; justify-content: space-between; align-items: flex-start; gap: 12px;
  padding: 20px 0; font-size: 16px; font-weight: 500; color: var(--black);
  cursor: pointer; user-select: none; line-height: 1.55; transition: color .15s;
}
.faq-q:hover { color: var(--blue); }
.faq-icon {
  width: 20px; height: 20px; flex-shrink: 0; border: 1.5px solid #C8C8C8; border-radius: 2px;
  display: flex; align-items: center; justify-content: center; font-size: 16px; line-height: 1;
  color: #B0B0B0; transition: transform .3s, border-color .2s, color .2s; margin-top: 2px;
}
.faq-item.open .faq-icon { transform: rotate(45deg); border-color: var(--blue); color: var(--blue); }
.faq-ans { max-height: 0; overflow: hidden; transition: max-height .45s cubic-bezier(.16,1,.3,1); }
.faq-item.open .faq-ans { max-height: 320px; }
.faq-ans p { font-size: 15px; color: #666; line-height: 1.85; padding-bottom: 20px; }

/* ── 表单反馈提示位（配合 /assets/js/app.js 的 initAjaxForms） ── */
.form-note-box, .ff-note {
  font-size: 12.5px; color: var(--gray-400); text-align: center; margin-top: 14px; line-height: 1.6;
}
.form-note-box.err-style, .ff-note.err-style, .ff-note.err { color: #D02; }
.form-note-box.ok-style, .ff-note.ok-style, .ff-note.ok { color: #0A8F3C; }
.form-note-box.info-style, .ff-note.info-style { color: var(--blue); }

/* 提交按钮 loading 态（由 app.js 的 setLoading() 切换） */
.btn-submit.is-loading, .ff-submit.is-loading, button.is-loading {
  opacity: .6; cursor: not-allowed; pointer-events: none;
}

/* ── 分类过滤工具类（案例 / 资讯页使用，取代内联 style.display） ── */
.is-hidden { display: none !important; }
