/* ==================== 平板與手機版集中設定 ==================== */
@media (max-width: 1000px) {
  .activity-grid { grid-template-columns: repeat(2,1fr); }
  .site-footer { grid-template-columns: 1fr; }
}
@media (max-width: 820px) {
  :root { --section-space: 80px; --page-gutter: 14px; --font-body: 16px; --font-card-title: 23px; }
  .site-header { height: 66px; }
  .brand img { width: calc(100vw - 92px); max-height: 38px; }
  .menu-button { display: block; flex: 0 0 auto; }
  .site-nav { position: absolute; top: 66px; right: 0; left: 0; display: none; align-items: stretch; flex-direction: column; gap: 0; padding: 8px 14px 18px; background: rgba(255,250,239,.98); box-shadow: 0 16px 30px rgba(60,30,20,.12); }
  .site-nav.open { display: flex; }
  .site-nav a, .site-nav .nav-signup { padding: 12px 10px; border-radius: 0; }
  .hero { min-height: calc(56.25vw + 142px); }
  .hero-image { height: 56.25vw; background-size: 100% 100%; }
  .hero-panel { padding-top: calc(56.25vw + 16px); }
  .quick-info { grid-template-columns: 1fr 1fr; }
  .quick-info > div:nth-child(2) { border-right: 0; }
  .gantt-chart { min-width: 1140px; grid-template-columns: 280px repeat(8,105px); }
  .swipe-hint { display: block; }
  .activity-grid, .signup-grid, .winner-grid { grid-template-columns: 1fr; }
  .about-section { grid-template-columns: 1fr; gap: 40px; }
  .modal { padding: 10px; }
  .modal-panel { max-height: calc(100svh - 20px); border-radius: 22px; }
  .modal-head { padding: 38px 24px 26px; }
  .modal-content { padding: 28px 24px 42px; font-size: 16px; }
}
@media (max-width: 520px) {
  .hero-actions { flex-direction: column; }
  .button { width: 100%; }
  .footer-organizers p { grid-template-columns: 1fr; gap: 3px; }
  .modal-actions { display: grid; }
  .modal-register a { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
