@media (max-width: 1024px) {
    .admin-sidebar {
        transform: translateX(-105%);
        transition: transform 180ms ease;
    }

    .admin-sidebar.is-open {
        transform: translateX(0);
    }

    .admin-workspace {
        margin-left: 0;
    }

    .admin-menu-toggle {
        display: block;
    }

    .admin-overlay {
        position: fixed;
        inset: 0;
        z-index: 40;
        border: 0;
        background: rgba(6, 61, 45, 0.5);
    }

    .admin-overlay.is-visible {
        display: block;
    }

    .admin-body.admin-drawer-open {
        overflow: hidden;
    }
}

@media (max-width: 980px) {
    .site-nav {
        min-height: 76px;
        gap: 14px;
        padding: 12px 0;
    }

    .site-brand img {
        width: 160px;
    }

    .nav-toggle {
        display: block;
        margin-left: auto;
    }

    .public-navigation,
    .site-nav > .language-switcher {
        display: none;
    }

    .hero-grid,
    .card-grid,
    .footer-grid,
    .admin-card-grid {
        grid-template-columns: 1fr;
    }

    .foundation-hero {
        padding: 64px 0;
    }

    .hero-grid {
        gap: 40px;
    }

    .hero-panel {
        min-height: 230px;
    }

    .footer-grid {
        gap: 22px;
    }

    .admin-notification {
        display: none;
    }
}

@media (max-width: 520px) {
    .container {
        width: min(var(--cai-container), calc(100% - 28px));
    }

    .foundation-hero h1 {
        font-size: 38px;
    }

    .hero-lead {
        font-size: 16px;
    }

    .button-group,
    .button {
        width: 100%;
    }

    .foundation-status {
        padding: 60px 0;
    }

    .hero-panel,
    .auth-card {
        padding: 26px;
    }

    .admin-topbar {
        gap: 12px;
        padding: 12px 14px;
    }

    .admin-user > span:last-child {
        display: none;
    }

    .admin-content {
        width: calc(100% - 28px);
        padding-top: 28px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        transition: none !important;
    }
}
