/* 基础布局与配色（原型规范） */
:root {
  --primary-blue: #2F80FF;
  --blue-soft: #A6C8FF;
  --accent-orange: #FF7A00;
  --accent-yellow: #FFC107;
  --yellow-soft: #FFF9E6;
  --bg-light: #F5F7FA;
  --line-light: #E5E7EB;
  --text-dark: #111827;
  --text-gray: #6B7280;
  --line-blue: #D8E8FF;
}

* { box-sizing: border-box; }
html, body { margin:0; padding:0; font-family: "PingFang SC", Roboto, system-ui, -apple-system, Segoe UI, Arial; color: var(--text-dark); background:#fff; }
html { scroll-behavior: smooth; }
/* 解决锚点跳转被顶部导航遮挡问题 */
#consult { scroll-margin-top: 80px; }
.container { width: min(1200px, 92vw); margin: 0 auto; }
.section { padding: 28px 0 40px; }
.card { background:#fff; border:1px solid var(--line-light); border-radius:8px; box-shadow:0 2px 8px rgba(0,0,0,.08); }

/* 按钮规范 */
.btn { display:inline-flex; align-items:center; justify-content:center; height:40px; padding:0 16px; border-radius:4px; border:1px solid transparent; text-decoration:none; font-weight:600; cursor:pointer; }
.btn.orange { background: var(--accent-orange); color:#fff; }
.btn.primary { background: var(--primary-blue); color:#fff; }
.btn.yellow { background: var(--accent-yellow); color: var(--text-dark); }
.btn.full { width:100%; }
.btn:hover { filter: brightness(1.05); }

/* Navbar 原型 */
.proto-navbar { position: sticky; top:0; z-index: 1000; background:#fff; border-bottom:1px solid var(--line-light); }
.proto-inner { display:flex; align-items:center; justify-content:flex-start; gap:18px; padding:10px 0; }
.proto-logo img { display:block; width:120px; height:40px; }
.proto-logo { display:inline-block; font-weight:800; font-size:22px; color: var(--accent-orange); text-decoration:none; letter-spacing:0.5px; }
/* Logo 无选中/悬停状态变化，保持黄 */
.proto-logo:hover { color: var(--accent-orange); }
.proto-nav-links { display:flex; align-items:center; gap:18px; margin-left:auto; }
.proto-link { color: var(--text-dark); text-decoration:none; position:relative; padding:6px 2px; }
.proto-link:hover::after { content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background: var(--accent-yellow); }
/* 选中态：黄色文字与黄色下划线 */
.proto-link.active { color: var(--accent-orange); font-weight:700; }
.proto-link.active::after { content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background: var(--accent-orange); }
.has-dropdown { position:relative; cursor:pointer; }
.has-dropdown .dropdown { position:absolute; top:100%; left:0; display:none; background:#fff; border:1px solid var(--line-light); border-radius:8px; box-shadow:0 8px 24px rgba(0,0,0,.12); min-width:180px; }
.has-dropdown:hover .dropdown { display:block; }
.has-dropdown .dropdown a { display:block; padding:10px 12px; color: var(--text-dark); text-decoration:none; }
.has-dropdown .dropdown a:hover { background: var(--bg-light); }
.nav-toggle { display:none; font-size:22px; border:none; background:none; cursor:pointer; }

/* 服务卡片原型 */
.service-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:18px; }
.service-card { background:#fff; border:1px solid var(--line-light); border-radius:8px; box-shadow:0 2px 8px rgba(0,0,0,.08); padding:16px; transition: transform .2s ease, box-shadow .2s ease; }
.service-card:hover { transform: translateY(-5px); box-shadow:0 4px 12px rgba(0,0,0,.12); }
.svc-head { display:flex; align-items:center; gap:10px; }
.svc-title { font-weight:700; font-size:20px; color: var(--text-dark); }
.label-hot { display:inline-flex; align-items:center; justify-content:center; height:20px; min-width:40px; padding:0 8px; background: var(--accent-orange); color:#fff; border-radius:12px; font-size:12px; margin-left:8px; }
.svc-img { width:100%; max-width:300px; height:auto; border:1px solid var(--line-light); border-radius:8px; display:block; }
.svc-adv { margin:12px 0; padding-left:18px; color: var(--text-gray); font-size:14px; }
.svc-adv li { margin-bottom:6px; }
.detail-link { color: var(--text-gray); text-decoration:none; }
.detail-link:hover { color: var(--primary-blue); }

/* 联系咨询区原型 */
.consult-layout { display:grid; grid-template-columns: 0.4fr 0.6fr; gap:24px; }
.consult-title { font-size:24px; font-weight:700; margin:0 0 8px; color: var(--text-dark); }
.consult-top { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.consult-phone { display:flex; align-items:center; gap:8px; font-weight:600; color: var(--accent-orange); text-decoration:none; }
.consult-phone .icon { width:22px; height:22px; color: var(--accent-orange); }
/* 弹框标题下方的分隔线 */
.consult-divider { border-top:1px solid var(--line-light); margin:8px 0 14px; }
.consult-actions { display:flex; justify-content:flex-start; align-items:center; margin:6px 0 12px; }
.consult-card { background:#fff; border:1px solid var(--line-light); border-radius:12px; box-shadow:0 8px 24px rgba(0,0,0,.08); padding:16px; }
.consult-form { display:block; }
.form-grid { display:grid; grid-template-columns: repeat(2, 1fr); gap:14px; }
.form-group { display:flex; flex-direction:column; gap:6px; }
.form-group label { font-size:14px; color: var(--text-dark); }
.form-group .req { color:#E11D48; margin-right:4px; }
.consult-form input[type="text"],
.consult-form input[type="tel"],
.consult-form textarea { width:100%; height:38px; padding:8px 10px; border:1px solid var(--line-light); border-radius:6px; font-size:14px; }
.consult-form textarea { height:auto; }
.option-group { display:flex; flex-wrap:wrap; gap:12px 16px; padding:6px 0; }
.option-group.invalid { outline:1px solid #EF4444; outline-offset:4px; border-radius:8px; padding:10px; }
.option-group label { display:inline-flex; align-items:center; gap:6px; font-size:14px; color: var(--text-gray); }
.form-agree { margin:10px 0 12px; color: var(--text-gray); font-size:13px; }
.form-agree a { color: var(--primary-blue); text-decoration:none; }
.form-agree a:hover { text-decoration:underline; }
@media (max-width: 860px) {
  .form-grid { grid-template-columns: 1fr; }
}
.muted { color: var(--text-gray); }
.consult-form { padding:16px; }
.consult-form form label { display:grid; gap:6px; margin-bottom:10px; }
.consult-form input, .consult-form textarea, #floatForm input, #floatForm textarea { border:1px solid var(--line-light); border-radius:4px; padding:10px 12px; color: var(--text-dark); }
.consult-form input:focus, .consult-form textarea:focus, #floatForm input:focus, #floatForm textarea:focus { outline:none; border-color: var(--primary-blue); }
.invalid { border-color:#EF4444 !important; }
.consult-form .error { display:none; color:#EF4444; }
.success-tip { display:none; background:#e6f7eb; color:#0b7a36; border:1px solid #b7e3c4; border-radius:8px; padding:8px 12px; margin-top:8px; }
.contact-inline { display:flex; align-items:center; gap:18px; }
.qr img { border:1px dashed var(--line-light); border-radius:8px; }
/* 提交按钮向下移动增加上间距 */
.consult-form .btn.full { margin-top:20px; }
/* 机构类型块向下移动 */
.enterprise-group { margin-top:20px; }

/* 悬浮咨询按钮与弹窗表单 */
.float-btn { position:fixed; right:20px; bottom:20px; width:60px; height:60px; border-radius:50%; background: var(--accent-orange); color:#fff; border:none; box-shadow:0 8px 24px rgba(0,0,0,.18); cursor:pointer; }
.float-btn span { display:block; font-weight:700; }
.modal { position:fixed; inset:0; background: rgba(0,0,0,.45); display:none; align-items:center; justify-content:center; padding:20px; }
.modal.open { display:flex; }
.modal-box { width:min(560px, 92vw); background:#fff; border-radius:12px; box-shadow:0 12px 36px rgba(0,0,0,.2); padding:18px; }
.modal-box .close { float:right; border:none; background:none; cursor:pointer; color: var(--text-gray); }
.modal .ok-icon { display:block; margin:0 auto; color:#1677ff; }
.modal-box .close { font-size:22px; padding:8px; line-height:1; }
.modal-box .close:hover { color:#1677ff; }

/* 滚动渐入动画 */
.reveal-up { opacity:0; transform: translateY(14px); }
.reveal-up.in { opacity:1; transform: translateY(0); transition: opacity .3s ease, transform .3s ease; }

/* 移动端适配 */
@media (max-width: 980px) {
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .consult-layout { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
  .nav-toggle { display:block; }
  .proto-nav-links { position:absolute; top:58px; right:4vw; flex-direction:column; background:#fff; border:1px solid var(--line-light); border-radius:12px; padding:12px; display:none; }
  .proto-nav-links.open { display:flex; }
}
/* 首页：轮播图 */
.home-hero { background: #ffffff; padding: 24px 0; }
.hero-static { display:flex; align-items:center; justify-content:space-between; gap:24px; height:360px; border-radius:12px; background:#ffffff; overflow:hidden; }
.hero-text { flex:1; }
.hero-title { margin:0 0 10px; font-size:36px; font-weight:800; line-height:1.2; color: var(--text-dark); }
.hero-subtitle { margin:0; font-size:18px; color: var(--text-gray); }
.hero-image { flex:1; display:flex; align-items:center; justify-content:flex-end; overflow:hidden; }

/* 商务合作联系方式 */
.coop-contact { background:#0b0f1a; color:#e6e9ef; padding:14px 0; border-top:1px solid #1f2433; }
.coop-contact h2 { color:#e6e9ef; }
.coop-contact .muted { color:#a6adbb; }
.coop-grid { display:flex; justify-content:center; align-items:flex-start; gap:4px; margin-top:8px; flex-wrap:wrap; }
.qr-card { background:transparent; border:none; border-radius:10px; padding:0; text-align:center; margin:0; }
.qr-image { width:min(120px, 40vw); height:auto; background:#fff; padding:6px; border-radius:6px; box-shadow:0 4px 14px rgba(0,0,0,.22); }
.qr-caption { margin-top:6px; color:#a6adbb; font-size:13px; }

@media (max-width: 720px) {
  .coop-row { flex-direction:column; align-items:flex-start; gap:8px; }
  .qr-image { width:min(128px, 44vw); padding:4px; }
  .qr-caption { font-size:12px; }
}
.hero-image img { display:block; transform: scale(0.85); transform-origin: right center; }
.carousel .slides { position: relative; height: 360px; }
.carousel .slide { position:absolute; inset:0; opacity:0; transition: opacity .5s ease; }
.carousel .slide.active { opacity:1; }
.carousel .slide img { width:100%; height:100%; object-fit: cover; }
.carousel .caption { position:absolute; left:24px; bottom:24px; background: rgba(255,255,255,.75); backdrop-filter: blur(6px); border-radius:8px; padding:10px 14px; }
.carousel .caption h2 { margin:0; font-size:24px; color: var(--text-dark); }
.carousel .caption p { margin:4px 0 0; color: var(--text-gray); }
.carousel .arrow { position:absolute; top:50%; transform: translateY(-50%); width:40px; height:40px; border-radius:50%; border:none; background: rgba(255,255,255,.9); box-shadow:0 2px 8px rgba(0,0,0,.12); cursor:pointer; }
.carousel .arrow.prev { left:10px; }
.carousel .arrow.next { right:10px; }
.carousel .dots { position:absolute; left:50%; bottom:10px; transform: translateX(-50%); display:flex; gap:8px; }
.carousel .dots button { width:8px; height:8px; border-radius:50%; border:1px solid var(--line-light); background:#fff; opacity:.6; cursor:pointer; }
.carousel .dots button.active { background: var(--primary-blue); opacity:1; }

/* 首页：产品展示区 */
.products-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap:18px; align-items: stretch; }
.products-grid a.product-card-link { display:block; text-decoration:none; color:inherit; height:100%; }
.product-card { border:1px solid var(--line-light); border-radius:8px; box-shadow:0 2px 8px rgba(0,0,0,.08); padding:12px; background:#fff; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background-color .2s ease; display:flex; flex-direction:column; cursor:pointer; height:100%; }
.product-card:hover { transform: translateY(-4px); box-shadow:0 4px 12px rgba(0,0,0,.12); border-color: var(--primary-blue); background:#f8fbff; }
/* 选中/激活态保持与悬浮一致的蓝色视觉 */
.product-card:focus,
.product-card.active,
.product-card.selected { border-color: var(--primary-blue); background:#f8fbff; box-shadow:0 4px 12px rgba(47,128,255,.12); }
.product-card img { width:100%; height:200px; border-radius:6px; border:none; object-fit:contain; object-position:center; background:#fff; }
.product-card h3 { margin:10px 0 6px; font-size:18px; line-height:1.4; height:28px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
/* 统一产品卡片文字区域占位高度 */
.product-card p.muted { line-height:1.6; }
.product-card .hint { margin-top:auto; color: var(--primary-blue); font-weight:500; opacity:0; transform: translateY(6px); transition: opacity .2s ease, transform .2s ease; }
.product-card:hover .hint { opacity:1; transform: translateY(-2px); }

/* 首页：底部图片内容 */
.home-gallery { background: #fff; }
.gallery-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:12px; }
.gallery-grid img { width:100%; height:auto; border-radius:8px; border:1px solid var(--line-light); }

@media (max-width: 980px) {
  .hero-static { height:280px; flex-direction:column; }
  .hero-title { font-size:28px; }
  .hero-subtitle { font-size:16px; }
  .hero-image img { transform: scale(0.65); }
  .products-grid { grid-template-columns: repeat(2, 1fr); }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); }
}

/* 指标条 */
.metrics { display:grid; grid-template-columns: repeat(4, 1fr); gap:18px; }
.metric { background:#fff; border:1px solid var(--blue-soft); border-radius:12px; padding:12px; text-align:center; box-shadow:0 2px 8px rgba(0,0,0,.06); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background-color .2s ease; }
.metric:hover { transform: translateY(-2px); box-shadow:0 6px 16px rgba(47,128,255,.16); border-color: var(--primary-blue); background:#f8fbff; }
.metric .f-icon { display:block; width:32px; height:32px; margin:0 auto 8px; border:none; }
.metric .f-title { margin:0 0 4px; font-size:18px; font-weight:700; color: var(--primary-blue); }
.metric .f-desc { margin:0; font-size:14px; color: var(--text-gray); }

/* 解决方案分类 */
.solutions-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap:12px; }
.solution-card { display:block; padding:16px; border:1px solid var(--line-light); border-radius:8px; background:#fff; text-decoration:none; color: var(--text-dark); box-shadow:0 2px 8px rgba(0,0,0,.06); transition: transform .2s ease, box-shadow .2s ease; min-width:0; }
.solution-card img.sol-icon { width:64px; height:64px; object-fit: cover; border-radius:12px; margin-bottom:8px; }
.solution-card .sol-cover { width:100%; height:220px; object-fit: cover; border-radius:8px; border:1px solid var(--line-light); margin-bottom:10px; }
.solution-card .sol-cover.contain { object-fit: contain; background:#fff; object-position: center; }
.solution-card:hover { transform: translateY(-4px); box-shadow:0 6px 16px rgba(0,0,0,.12); }
.solution-card .sol-icon { width:64px !important; height:64px !important; object-fit: cover; border-radius:16px; border:1px solid var(--line-light); margin-bottom:8px; }
.solution-card h3 { margin:0 0 8px; font-size:20px; line-height:28px; height:28px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.solution-card .muted { font-size:14px; line-height:1.6; }
.solution-card .sol-list { list-style:none; padding:0; margin:10px 0 0; }
.solution-card .sol-list li { position:relative; padding-left:22px; margin:8px 0; font-size:14px; color: var(--text-dark); }
.solution-card .sol-list li::before { content:""; position:absolute; left:0; top:6px; width:12px; height:12px; border-radius:50%; background: var(--primary-blue); box-shadow:0 0 0 2px rgba(47,128,255,.2); }

/* 优势栅格 */
.adv-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap:12px; }
.adv-card { background:#fff; border:1px solid var(--line-blue); border-radius:8px; padding:16px; box-shadow:0 2px 8px rgba(0,0,0,.06); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease, background-color .2s ease; }
.adv-card:hover { transform: translateY(-4px); box-shadow:0 4px 12px rgba(0,0,0,.12); border-color: var(--primary-blue); background:#f8fbff; }
.adv-card:focus,
.adv-card.active,
.adv-card.selected { border-color: var(--primary-blue); background:#f8fbff; box-shadow:0 4px 12px rgba(47,128,255,.12); }
.advantages .adv-grid { display:grid; grid-template-columns: repeat(4, 1fr); gap:16px; }
.advantages .adv-card { text-align:center; }
.adv-card h3 { margin:8px 0 6px; color: var(--primary-blue); }
.adv-icon { width:40px; height:40px; object-fit:contain; display:inline-block; }
@media (max-width: 900px) {
  .advantages .adv-grid { grid-template-columns: repeat(2, 1fr); }
}
.adv-card h3 { margin:0 0 4px; font-size:18px; color: var(--primary-blue); }

/* 热门方案水平滑块 */
.slider { position:relative; }
.s-track { display:flex; overflow:hidden; scroll-behavior: smooth; gap:12px; }
.s-item { min-width: 260px; padding:10px; }
.s-item img { width:100%; border-radius:8px; border:1px solid var(--line-light); }
.s-arrow { position:absolute; top:50%; transform: translateY(-50%); width:36px; height:36px; border:none; border-radius:50%; background:#fff; box-shadow:0 2px 8px rgba(0,0,0,.12); cursor:pointer; }
.s-arrow.left { left:-10px; }
.s-arrow.right { right:-10px; }

/* 底部导航 */
.site-footer { background:#0b0f1a; color:#e6e9ef; padding:14px 0; }
.site-footer a { color:#a6adbb; text-decoration:none; }
.site-footer a:hover { color:#fff; }
.footer-cols { display:grid; grid-template-columns: repeat(5, 1fr); gap:18px; border-bottom:1px solid #1f2433; padding-bottom:14px; }
.f-col h4 { margin:0 0 8px; font-size:16px; color:#fff; }
.f-col a { display:block; margin:6px 0; font-size:14px; }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; padding-top:14px; }
.socials a { margin-right:10px; background:#121726; padding:6px 8px; border-radius:6px; font-size:12px; }
.lang { position:relative; }
.lang button { background:#121726; color:#e6e9ef; border:1px solid #1f2433; border-radius:8px; padding:8px 10px; cursor:pointer; }
.lang-menu { position:absolute; right:0; top:120%; background:#121726; border:1px solid #1f2433; border-radius:8px; padding:6px; display:none; }
.lang-menu a { display:block; padding:6px 8px; }
.lang.open .lang-menu { display:block; }
/* 页脚版权与备案信息 */
.footer-legal { border-top:1px solid #1f2433; margin-top:8px; padding-top:8px; display:flex; align-items:center; justify-content:space-between; font-size:12px; color:#a6adbb; }
.footer-legal a { color:#a6adbb; text-decoration:none; }
.footer-legal a:hover { color:#fff; }
.footer-legal .sep { margin:0 8px; color:#384057; }

@media (max-width: 980px) {
  .solutions-grid, .adv-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-cols { grid-template-columns: repeat(2, 1fr); }
.solution-card .sol-cover { height:200px; }
}

@media (max-width: 720px) {
  .products-grid { grid-template-columns: 1fr; }
  .solutions-grid, .adv-grid { grid-template-columns: 1fr; }
.solution-card .sol-cover { height:180px; }
  .footer-legal { flex-direction:column; align-items:flex-start; gap:8px; }
}
.ai-gallery { display:grid; grid-template-columns: 1fr; gap:16px; }
.ai-gallery img { width:100%; height:auto; display:block; border-radius:8px; border:1px solid var(--line-light); background:#fff; }

/* 关于我们页面样式 */
.about-section { margin:18px 0 24px; }
.about-title { margin:0; font-size:28px; font-weight:800; }
.about-lead { font-size:16px; color: var(--text-dark); margin:10px 0 0; }
.about-block { background:#fff; border:1px solid var(--line-light); border-radius:12px; padding:16px; box-shadow:0 2px 8px rgba(0,0,0,.06); }
.about-block-head { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.about-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap:16px; }
.about-card { background:#fff; border:1px solid var(--line-light); border-radius:12px; padding:16px; box-shadow:0 2px 8px rgba(0,0,0,.06); }
.about-card h3 { margin:8px 0 6px; font-size:18px; }
.about-icon { width:28px; height:28px; color: var(--primary-blue); }
.about-card .about-icon { color: var(--accent-orange); }
.case-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap:16px; }
.case-card { background:#fff; border:1px solid var(--line-light); border-radius:12px; padding:16px; box-shadow:0 2px 8px rgba(0,0,0,.06); }
.case-head { display:flex; align-items:center; gap:10px; margin-bottom:8px; }

@media (max-width: 900px) {
  .about-grid, .case-grid { grid-template-columns: 1fr; }
}

@media (max-width: 980px) {
  .ai-gallery { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .ai-gallery { grid-template-columns: 1fr; }
}
.coop-row { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.coop-text { flex:1; min-width:240px; }
.coop-grid { flex:none; }