/* =========================================================
   响应式断点（移动优先升级）
   设计稿断点：375 / 768 / 1024 / 1440（Qi-theme-plan.md §3.1）
   ========================================================= */

/* ---- ≥ 640px ---- */
@media (min-width: 640px) {
  .grid-2 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .about-grid { grid-template-columns: 1fr 1fr; }
  .contact-grid { grid-template-columns: 1fr 1fr; }
  .gallery { grid-template-columns: repeat(3, 1fr); }
  .footer-cols { grid-template-columns: repeat(2, 1fr); }
}

/* ---- ≥ 768px（平板/小桌面，显示桌面导航） ---- */
@media (min-width: 768px) {
  .grid-3 { grid-template-columns: repeat(3, 1fr); }
  .grid-4 { grid-template-columns: repeat(4, 1fr); }
  .nav-toggle { display: none; }
  .nav-primary { display: block; }
  .project-meta { grid-template-columns: repeat(4, 1fr); }
}

/* ---- ≥ 1024px（桌面） ---- */
@media (min-width: 1024px) {
  .footer-cols { grid-template-columns: 1.4fr 1fr 1fr 1fr; }
  .about-grid { grid-template-columns: 1.1fr 1fr; gap: var(--sp-8); }
  :root { --container: 1200px; }
}

/* ---- < 768px（移动端：汉堡菜单） ---- */
@media (max-width: 767px) {
  .nav-toggle { display: inline-flex; }
  .nav-primary {
    display: none; position: absolute; top: 72px; left: 0; right: 0;
    background: #fff; border-bottom: 1px solid var(--c-line); box-shadow: var(--sh-2);
  }
  .nav-primary.open { display: block; }
  .nav-primary ul { flex-direction: column; padding: var(--sp-3); gap: 0; }
  .nav-primary li { border-bottom: 1px solid var(--c-line); }
  .nav-primary a { display: block; }
  .nav-primary a::after { display: none; }
  .nav-tel { display: none; }
  .brand .brand-sub { display: none; }
  .hero { min-height: 60vh; }
  .gallery { grid-template-columns: 1fr; }
  .about-media { grid-template-columns: 1fr; }
  .about-media img:first-child { aspect-ratio: 4/3; }
}

/* ---- 超大屏 ---- */
@media (min-width: 1440px) {
  :root { --container: 1320px; }
}

/* ---- 移动端：多级菜单改为堆叠 ---- */
@media (max-width: 767px) {
  .nav-primary .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 14px; background: transparent; }
  .nav-primary .sub-menu a { padding: 10px 12px; color: var(--c-muted); }
  .topbar { display: none; }
  .scroll-progress { height: 2px; }
}

/* ---- 桌面端：避免子菜单悬停间隙 ---- */
@media (min-width: 768px) {
  .nav-primary .sub-menu { pointer-events: none; }
  .nav-primary li.menu-item-has-children:hover > .sub-menu,
  .nav-primary li.menu-item-has-children:focus-within > .sub-menu { pointer-events: auto; }
}
