/* =====================================================
   media-acmw.css  -  responsive rules for acmw.html
   Breakpoints: 1200 / 992 / 768 / 560 / 400
   (Navbar / hamburger behaviour is left to media.css
   and media-style.css so the rules don't fight.)
   ===================================================== */

/* ---------- Large laptops ---------- */
@media (max-width: 1200px) {

    .hero h1 {
        font-size: 3.2rem;
    }

    .team-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* ---------- Tablets ---------- */
@media (max-width: 992px) {

    section {
        padding: 70px 0;
    }

    .hero-container,
    .about-container,
    .join-container {
        grid-template-columns: 1fr;
        gap: 40px;
        text-align: center;
    }

    /* Hero */
    .hero {
        min-height: auto;
        padding: 110px 0 70px;
    }

    .hero-content {
        order: 1;
    }

    .hero-image {
        order: 2;
        padding-top: 0;          /* desktop had padding-top: 30% */
    }

    .hero-image img {
        width: 70%;
        max-width: 480px;
        height: auto;
        margin: 0 auto;
    }

    .hero p,
    .join-container p {
        margin-left: auto;
        margin-right: auto;
    }

    .hero-buttons {
        justify-content: center;
    }

    /* About */
    .about-image img {
        width: 85%;
        max-width: 400px;
        height: auto;
        aspect-ratio: 4 / 5;
    }

    .about-features div {
        justify-content: center;
    }

    /* Events / Team */
    .event-grid {
        grid-template-columns: 1fr;
    }

    .team-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    /* Join */
    .join-container img {
        width: 70%;
        max-width: 480px;
        margin: 0 auto;
    }

    /* Footer */
    .footer-alignment {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 30px;
    }

    .all-links {
        grid-template-columns: 1fr 1fr;
        text-align: center;
    }

    .college-handles {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 25px;
    }

    .student-chapter img {
        width: 120px;
        margin: 0 auto 15px;
    }

    .connect-block .social-icons {
        justify-content: center;
    }

    .location-link {
        flex-direction: column;
        align-items: center;
        gap: 8px;
    }

    .location-text {
        max-width: 100%;
    }
}

/* ---------- Large phones ---------- */
@media (max-width: 768px) {

    .hero h1 {
        font-size: 2.6rem;
    }

    .title {
        margin-bottom: 40px;
    }

    .title h2,
    .about-content h2,
    .join-container h2 {
        font-size: 2rem;
    }

    .about-features {
        grid-template-columns: 1fr;
    }

    .hero-buttons {
        flex-direction: column;
        align-items: center;
    }

    /* the buttons in acmw.html use .btn, .primary-btn, .secondary-btn */
    .hero-buttons .btn,
    .hero-buttons .primary-btn,
    .hero-buttons .secondary-btn {
        width: 100%;
        max-width: 280px;
        text-align: center;
    }

    .all-links {
        grid-template-columns: 1fr;
        gap: 25px;
    }
}

/* ---------- Small phones ---------- */
@media (max-width: 560px) {

    .team-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 400px) {

    section {
        padding: 55px 0;
    }

    .hero {
        padding: 100px 0 55px;
    }

    .hero h1 {
        font-size: 2.1rem;
    }

    .badge {
        font-size: .8rem;
        padding: 7px 14px;
    }

    .hero-image img,
    .join-container img {
        width: 95%;
    }

    .about-image img {
        width: 100%;
    }

    .about-image h2 {
        font-size: 1.2rem;
    }

    .title h2,
    .about-content h2,
    .join-container h2 {
        font-size: 1.7rem;
    }

    .event-card,
    .team-card {
        padding: 25px;
    }

    .location-text {
        font-size: .9rem;
        line-height: 1.5;
    }
}