/* =====================================================
   7. Mobile overflow protection + missing components
   Load AFTER existing responsive.css rules
   ===================================================== */
@media (max-width: 767px) {
  /* Global overflow guard */
  html, body { overflow-x: hidden; }
  body { position: relative; }

  /* Hero CTA stack */
  .hero-cta, .hero-actions, .hero-buttons, .hero-cta-row {
    flex-direction: column;
    align-items: stretch;
    gap: var(--space-3);
  }
  .hero-cta .btn, .hero-actions .btn, .hero-buttons .btn, .hero-cta-row .btn {
    width: 100%;
    justify-content: center;
  }
  .btn-text-hero-secondary { margin-left: 0; }

  /* Hero typography */
  .hero-eyebrow { font-size: 0.625rem; letter-spacing: 0.2em; }
  .hero-subtitle { font-size: 0.9375rem; line-height: 1.5; }

  /* Stats: 1 col on small screens */
  .stats, .stats-editorial, .stats-large {
    grid-template-columns: 1fr;
    gap: var(--space-8);
    text-align: left;
  }
  .stats .stat, .stats-editorial .stat, .stat {
    text-align: left;
  }

  /* Various grids: 1 col */
  .featured-story, .dual-section, .news-partners-grid, .program-themes,
  .programs-grid, .program-row, .involve-grid, .newsletter-band-content,
  .newsletter-band-inner, .newsletter-band-grid, .dual-header-flex,
  .feature-row, .story-detail-grid, .program-detail-grid, .contact-grid,
  .hero-grid, .exhibition-info {
    grid-template-columns: 1fr;
  }
  .featured-story-image, .featured-story-content { min-height: 0; }
  .featured-story-image { height: 280px; }

  /* Seal stack wrap */
  .seal-stack, .seal-row { flex-wrap: wrap; gap: var(--space-2); }
  .seal-stack .seal, .seal-stack > * { margin-bottom: var(--space-2); }

  /* Image constraints */
  .hero-image img, .featured-image img, .story-image img, .article-image img,
  .spotlight-image img, .exhibition-image img, .program-image img {
    width: 100%; height: auto; max-width: 100%;
  }

  /* Pull quote */
  .pull-quote { font-size: 1.125rem; padding: var(--space-6) var(--space-3); }

  /* Donation form */
  .donate-amount-grid { grid-template-columns: repeat(2, 1fr); }
  .donate-tiers, .donate-methods { grid-template-columns: 1fr; }

  /* Program card padding */
  .program-card { padding: var(--space-5); }

  /* Section padding tighter */
  .section { padding: var(--space-12) 0; }
  .section-sm { padding: var(--space-8) 0; }
}

/* Mobile: ≤480px — extra tight */
@media (max-width: 480px) {
  .donate-amount-grid { grid-template-columns: 1fr; }
  .seal-stack { flex-direction: column; align-items: flex-start; }
  .gallery { grid-template-columns: 1fr; }
  .gallery-item:nth-child(1) { grid-column: span 1; grid-row: span 1; }
  .hero-title { line-height: 1.1; word-wrap: break-word; }
  .section-title { line-height: 1.15; word-wrap: break-word; }

  /* Logo tighter on smallest screens */
  .logo-mark { width: 32px; height: 32px; font-size: 0.875rem; }
  .logo-text { font-size: 12px; }
}
