/* =========================================
   RESPONSIVE STYLES
========================================= */

/* Tablets & Small Laptops */
@media (max-width: 1185px) {
    .site-header {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: space-between;
        padding: 1rem;
    }

    .mobile-toggle {
        display: block;
    }

    .main-nav {
        display: none;
        width: 100%;
        margin-top: 20px;
        padding-top: 20px;
        border-top: 1px solid #EAEAEA;
    }

    .main-nav.is-active {
        display: block;
        animation: fadeIn 0.3s ease;
    }

    .custom-nav {
        flex-direction: column;
        width: 100%;
        gap: 12px;
    }

    .custom-nav li,
    .custom-nav .custom-btn {
        width: 100%;
        text-align: center;
    }

    /* Shrinks staff cards from 3-per-row to 2-per-row */
    .team-card {
        width: calc(50% - 20px) !important;
        max-width: 500px;
    }

    @keyframes fadeIn {
        from {
            opacity: 0;
            transform: translateY(-10px);
        }

        to {
            opacity: 1;
            transform: translateY(0);
        }
    }
}

/* Mobile Phones (Standard Layout Stack) */
@media (max-width: 768px) {

    /* Collapse All 2-Column Grids to Single Column */
    .hero-section,
    .mission-grid,
    .donate-grid,
    .contact-grid,
    .story-grid,
    .steps-grid {
        grid-template-columns: 1fr;
        text-align: center;
    }

    /* Hero Buttons Fix */
    .hero-buttons {
        flex-direction: column;
        align-items: center;
        width: 100%;
        gap: 12px;
    }

    .hero-buttons .custom-btn {
        width: 100%;
        max-width: 280px;
        text-align: center;
    }

    /* Footer Layout Fix */
    .footer-content {
        display: flex;
        flex-direction: column;
        align-items: center;
        text-align: center;
        gap: 24px;
    }

    .footer-info,
    .footer-nav {
        justify-self: center;
        width: 100%;
    }

    .footer-nav ul {
        flex-wrap: wrap;
        justify-content: center;
        gap: 10px 15px;
    }

    /* Padding Adjustments */
    .support-section,
    .sponsors-section {
        padding: 60px 20px;
    }

    .sponsors-grid {
        display: flex;
        flex-wrap: wrap;
        justify-content: center; /* Keeps odd leftover items centered */
        gap: 16px;
        width: 100%;
        max-width: 500px;
        margin: 0 auto;
    }

    .sponsor-card {
        /* Calculates exact width for 2 columns minus gap; drops to 100% on tiny screens */
        width: calc(50% - 8px); 
        min-width: 140px; 
        height: 100px;
        padding: 12px;
        box-sizing: border-box;
    }

    .sponsor-card img {
        max-width: 100%;
        max-height: 100%;
        object-fit: contain;
    }

    .modal-content,
    .custom-form {
        padding: 25px;
    }

    /* Component Resets */
    .brand-link {
        max-width: 80%;
        gap: 10px;
    }

    .header-image {
        width: 50px;
        margin-right: 0;
    }

    .brand-title {
        font-size: 1.1rem;
    }

    .sponsor-card {
        width: 140px;
        height: 100px;
    }

    .team-grid {
        flex-direction: column;
        align-items: center;
        gap: 40px;
    }

    .team-card,
    .course-card {
        width: 100% !important;
        max-width: 100% !important;
    }

    .modal-header {
        flex-direction: column;
        gap: 15px;
    }

    .steps-grid::before {
        display: none;
    }

    .mission-card.course-card {
        width: 100% !important;
        max-width: 100% !important;
    }

    .faq-summary {
        padding: 15px;
    }

    .faq-title {
        font-size: 1.05rem;
    }

    .faq-content {
        padding: 0 15px 15px 15px;
    }
}