/* ==========================================================================
   Responsive Stylesheet
   Mobile-first breakpoints
   ========================================================================== */

/* Tablet and below (≤992px) */
@media (max-width: 992px) {
  .grid-3 {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
  .sponsor-block,
  .sponsor-block.reverse {
    flex-direction: column;
    gap: 30px;
  }
  .footer-grid {
    grid-template-columns: 1fr 1fr 1fr;
  }
  .hero h1 { font-size: 32px; }
  .section-title h2 { font-size: 26px; }
}

/* Mobile (≤768px) */
@media (max-width: 768px) {
  .menu-toggle {
    display: block;
  }
  .main-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    box-shadow: 0 4px 12px rgba(0,0,0,.1);
    padding: 12px 0;
  }
  .main-nav.open { display: block; }
  .main-nav ul {
    flex-direction: column;
    gap: 0;
  }
  .main-nav a {
    padding: 12px 20px;
    border-radius: 0;
    border-bottom: 1px solid #f0f0f0;
  }
  .main-nav a.donate-btn {
    margin: 8px 20px;
    border-radius: 4px;
    text-align: center;
  }

  .header-inner { padding: 12px 20px; }
  .site-logo .logo-line1 { font-size: 16px; }
  .site-logo .logo-line2 { font-size: 13px; }
  .site-logo img { width: 42px; height: 42px; }

  .hero { min-height: 380px; }
  .hero h1 { font-size: 24px; letter-spacing: 1px; }
  .hero blockquote { font-size: 15px; }
  .hero-content { padding: 40px 20px; }
  .btn { padding: 12px 24px; font-size: 13px; }

  .section { padding: 48px 0; }
  .section-title { margin-bottom: 36px; }
  .section-title h2 { font-size: 22px; }
  .section-title p { font-size: 14px; }

  .grid-3 { grid-template-columns: 1fr; }

  .page-header { padding: 40px 0; }
  .page-header h1 { font-size: 26px; }
  .page-content { padding: 40px 0; }
  .page-content h2 { font-size: 22px; }
  .page-content .content-img-right {
    float: none;
    max-width: 100%;
    margin: 20px 0;
  }

  .contact-form { padding: 24px; }

  .newsletter-form {
    flex-direction: column;
    max-width: 100%;
  }
  .newsletter-form button { width: 100%; }

  .footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }
  .footer-about { grid-column: 1 / -1; }
  .cta-band h2 { font-size: 22px; }
  .cta-band .btn { margin: 6px 4px; display: inline-block; }
}

/* Small mobile (≤480px) */
@media (max-width: 480px) {
  .footer-grid { grid-template-columns: 1fr; }
  .hero h1 { font-size: 20px; }
  .site-logo .logo-line2 { display: none; }
  .badge-row { gap: 10px; }
  .badge-row .badge { font-size: 10px; padding: 6px 10px; }
}
