/* ==========================================================================
   响应式适配（电脑 / 平板 / 手机）
   ========================================================================== */

/* ---------- 大屏桌面 (>1200px) 默认已适配 ---------- */

/* ---------- 笔记本 (1024-1200px) ---------- */
@media (max-width: 1200px) {
  :root { --container: 1080px; }
  .section { padding: 80px 0; }
  .footer-grid { grid-template-columns: 1.3fr 1fr 1fr 1.2fr; }
  .footer-grid .footer-col:nth-child(5) { grid-column: span 4; }
  .patch-grid { grid-template-columns: repeat(3, 1fr); }
  .partner-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ---------- 平板 (768-1023px) ---------- */
@media (max-width: 1023px) {
  :root { --container: 100%; }
  .container { padding: 0 24px; }

  /* 隐藏桌面导航，显示汉堡 */
  .main-nav, .nav-cta { display: none; }
  .nav-toggle { display: flex; }

  /* 锯齿四象限降级为上下两段 */
  .advantage-saw { grid-template-columns: 1fr; }
  .advantage-saw::before { display: none; }
  .advantage-saw::after {
    top: 50%; left: 0; right: 0; height: 3px;
  }
  .saw-quadrant { padding: 40px 32px; }

  .patch-grid { grid-template-columns: repeat(2, 1fr); }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .case-grid { grid-template-columns: repeat(2, 1fr); }
  .news-quilt, .news-list-layout { grid-template-columns: repeat(2, 1fr); }
  .team-grid { grid-template-columns: repeat(2, 1fr); }
  .price-grid { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
  .price-card.featured { transform: none; }
  .partner-grid { grid-template-columns: repeat(3, 1fr); }
  .sitemap-grid { grid-template-columns: repeat(2, 1fr); }

  .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }
  .footer-grid .footer-col:nth-child(1) { grid-column: span 2; }

  .page-hero { padding: 130px 0 56px; }

  /* 服务详情、案例详情、文章详情降级 */
  .service-detail-layout,
  .case-show-layout,
  .article-layout,
  .doc-layout,
  .kb-layout { grid-template-columns: 1fr; }
  .service-side-nav, .case-show-side, .article-side, .doc-tree { position: static; }

  /* 流程降级 */
  .process-track { grid-template-columns: repeat(2, 1fr); gap: 32px; }
  .process-step::before { display: none; }
  .stat-band { grid-template-columns: repeat(2, 1fr); gap: 24px; }
  .stat-band .stat-item:nth-child(2) { border-right: 0; }
  .stat-band .stat-item { border-bottom: 2px dashed var(--line); padding-bottom: 20px; }
  .stat-band .stat-item:nth-child(3), .stat-band .stat-item:nth-child(4) { border-bottom: 0; padding-bottom: 0; }

  .hero-home .hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .hero-quilt { height: 380px; }
  .about-story, .contact-layout, .solution-list .sol-row { grid-template-columns: 1fr; gap: 32px; }
  .solution-list .sol-row.reverse .sol-img { order: 0; }
  .feature-list { grid-template-columns: 1fr; }
  .job-grid { grid-template-columns: 1fr; }
  .cta-banner { grid-template-columns: 1fr; text-align: center; }
  .process-detail-item { grid-template-columns: 80px 1fr; gap: 20px; }
}

/* ---------- 手机 (<768px) ---------- */
@media (max-width: 767px) {
  body { font-size: 15px; }
  .container { padding: 0 18px; }
  .section { padding: 56px 0; }
  .section-tight { padding: 40px 0; }
  .section-head { margin-bottom: 36px; }

  .header-bar { height: 64px; }
  .brand { font-size: 1.05rem; }
  .brand img, .brand .brand-mark { width: 36px; height: 36px; }
  .mobile-drawer { top: 64px; height: calc(100vh - 64px); }

  h1 { font-size: 1.85rem; }
  h2 { font-size: 1.5rem; }
  h3 { font-size: 1.2rem; }

  .saw-quadrant { padding: 28px 22px; }
  .patch-cell { padding: 24px 20px; }
  .bevel-panel { padding: 28px 22px; }

  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; gap: 18px; }
  .patch-grid, .service-grid, .case-grid, .news-quilt, .news-list-layout, .team-grid { grid-template-columns: 1fr; }
  .partner-grid { grid-template-columns: repeat(2, 1fr); }
  .sitemap-grid { grid-template-columns: 1fr; gap: 28px; }

  .form-grid-2 { grid-template-columns: 1fr; }

  .footer-grid { grid-template-columns: 1fr; gap: 32px; padding-bottom: 40px; }
  .footer-grid .footer-col:nth-child(1) { grid-column: span 1; }
  .footer-bottom { flex-direction: column; text-align: center; }

  .page-hero { padding: 110px 0 44px; }
  .page-hero h1 { font-size: 1.7rem; }

  .btn-lg { padding: 14px 26px; font-size: 0.98rem; }
  .hero-stats { gap: 24px; flex-wrap: wrap; }
  .hero-stat .num { font-size: 1.6rem; }

  .reveal { transform: translateY(20px); }

  .article-main { padding: 28px 22px; }
  .contact-info-block, .contact-form-block { padding: 28px 22px; }
  .cta-banner { padding: 36px 24px; }
  .stat-band { grid-template-columns: 1fr; padding: 28px 22px; }
  .stat-band .stat-item { border-right: 0; border-bottom: 2px dashed var(--line); padding-bottom: 20px; }
  .stat-band .stat-item:last-child { border-bottom: 0; padding-bottom: 0; }
  .stat-band .stat-num { font-size: 2rem; }

  .process-track { grid-template-columns: 1fr; gap: 28px; }
  .process-detail-item { grid-template-columns: 1fr; gap: 12px; }
  .process-detail-item .pd-num { font-size: 2.2rem; }

  .about-story .story-img img { height: 320px; }
  .solution-list .sol-img img { height: 260px; }
  .case-show-main .case-hero-img img { height: 280px; }
  .hero-quilt { height: 320px; grid-template-columns: 1fr 1fr; }
  .hero-quilt .q1 { grid-row: span 1; grid-column: span 2; height: 180px; }
}

/* ---------- 小屏手机 (<400px) ---------- */
@media (max-width: 399px) {
  .container { padding: 0 14px; }
  h1 { font-size: 1.6rem; }
  .btn { padding: 10px 20px; font-size: 0.9rem; }
  .partner-grid { grid-template-columns: 1fr; }
}

/* ---------- 减少动画（无障碍） ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
  .reveal { opacity: 1; transform: none; }
}

/* ---------- 打印 ---------- */
@media print {
  .site-header, .site-footer, .nav-toggle, .mobile-drawer, .overlay, .back-to-top { display: none; }
  body { background: #fff; }
}
