@media (max-width: 1050px) {
    .main-nav { gap: 15px; }
    .main-nav > a:not(.nav-apply) { font-size: .82rem; }
    .hero-grid { gap: 30px; }
    .welcome-grid { gap: 40px; }
    .footer-main { grid-template-columns: 1.2fr 1fr 1fr; }
    .footer-about { grid-column: span 3; }
}

@media (max-width: 850px) {
    .section { padding: 75px 0; }

    .menu-toggle { display: flex; }

    .main-nav {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        position: fixed;
        top: var(--nav-top, 125px);
        left: 0;
        right: 0;
        max-height: 0;
        overflow: hidden;
        padding: 0 25px;
        background: var(--white);
        box-shadow: none;
        opacity: 0;
        visibility: hidden;
        transition: max-height .35s ease, opacity .25s, padding .3s, visibility .3s;
    }

    .main-nav.open {
        max-height: calc(100dvh - var(--nav-top, 125px));
        overflow-y: auto;
        padding: 16px 25px 25px;
        opacity: 1;
        visibility: visible;
        box-shadow: 0 20px 30px rgba(37,41,95,.12);
    }

    .main-nav > a:not(.nav-apply) { padding: 14px 0; border-bottom: 1px solid var(--border); }
    .main-nav > a:not(.nav-apply)::after { display: none; }
    .nav-apply { justify-content: center; margin-top: 15px; }

    .hero-grid, .welcome-grid, .feature-grid { grid-template-columns: 1fr; }
    .hero-grid { gap: 45px; }
    .hero-copy { max-width: 720px; }
    .hero-visual { max-width: 650px; width: 100%; margin-inline: auto; }
    .hero-photo-main { width: 88%; }
    .welcome-visual { max-width: 650px; }
    .welcome-visual img { height: 390px; }

    .program-grid, .event-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .campus-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .campus-card:first-child { grid-row: auto; min-height: 350px; }
    .feature-copy { padding: 65px 24px; }
    .feature-image, .feature-image img { min-height: 360px; height: 360px; }
    .footer-cta-inner { align-items: flex-start; flex-direction: column; }
    .footer-main { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 35px; }
    .footer-about { grid-column: span 2; }
}

@media (max-width: 560px) {
    .container { width: min(100% - 32px, var(--container)); }
    .section { padding: 60px 0; }
    .announcement-inner { min-height: 42px; font-size: .68rem; }
    .announcement-inner a { display: none; }
    .nav-container { min-height: 74px; }
    .brand-symbol { width: 41px; height: 41px; font-size: 1.35rem; }
    .brand-copy strong { font-size: .97rem; }
    .brand-copy small { font-size: .5rem; }

    .home-hero { padding: 55px 0 50px; }
    .hero-copy h1 { font-size: clamp(2.5rem, 12vw, 4rem); }
    .hero-copy > p { font-size: .94rem; }
    .hero-actions { flex-direction: column; align-items: stretch; }
    .hero-actions .btn { width: 100%; }
    .hero-visual { min-height: 350px; }
    .hero-photo-main { height: 315px; width: 90%; border-radius: 140px 140px 20px 20px; }
    .hero-photo-small { height: 125px; width: 43%; }
    .hero-note { right: 0; bottom: 3px; max-width: 145px; padding: 12px; }
    .hero-note strong { font-size: 1.2rem; }
    .hero-note span { font-size: .68rem; }

    .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 20px 0; }
    .stat-item:nth-child(2) { border-right: 0; }
    .stat-item:nth-child(3), .stat-item:nth-child(4) { border-top: 1px solid rgba(255,255,255,.16); padding-top: 20px; }
    .stat-item span { font-size: .75rem; }

    .welcome-visual img { height: 300px; }
    .welcome-points { grid-template-columns: 1fr; gap: 16px; }
    .program-grid, .event-list, .campus-grid { grid-template-columns: 1fr; }
    .program-image { height: 215px; }
    .campus-card, .campus-card:first-child { min-height: 300px; }
    .testimonial-wrap { padding: 30px 20px; }
    .footer-cta { padding: 48px 0; }
    .footer-main { grid-template-columns: 1fr 1fr; gap: 30px 20px; padding-top: 50px; padding-bottom: 45px; }
    .footer-about { grid-column: span 2; }
    .footer-bottom-inner { flex-direction: column; gap: 8px; }
    .footer-bottom p, .footer-bottom a { font-size: .72rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
    }

    .reveal { opacity: 1; transform: none; }
}