/* AICRA site-wide responsive overrides (2026-08-17)
 * Loaded after main.css. Keep forms/layout structure; fix overflow & mobile UX.
 */

html,
body {
  overflow-x: clip;
}

img,
video,
iframe,
svg,
canvas {
  max-width: 100%;
  height: auto;
}

table {
  max-width: 100%;
}

/* Safer card grids on narrow viewports */
.posts-grid {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr));
}

@media (max-width: 992px) {
  .container,
  .nav-container,
  .footer-container {
    padding-left: var(--space-4, 16px);
    padding-right: var(--space-4, 16px);
  }

  .posts-grid {
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  }
}

@media (max-width: 768px) {
  .nav-container {
    padding: 0 var(--space-4, 16px);
    gap: var(--space-2, 8px);
  }

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

  .nav-toggle {
    display: block;
    min-width: 44px;
    min-height: 44px;
    margin-left: auto;
  }

  .nav-menu {
    max-height: calc(100vh - var(--header-height, 64px));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    align-items: stretch;
    z-index: 200;
  }

  .nav-item,
  .nav-auth-item {
    width: 100%;
  }

  .nav-link {
    min-height: 44px;
    display: flex;
    align-items: center;
  }

  .dark-mode-btn {
    min-width: 44px;
    min-height: 44px;
  }

  .home-content,
  .blog-page {
    padding: var(--space-8, 32px) var(--space-4, 16px);
  }

  .page-content {
    padding: var(--space-8, 32px) var(--space-4, 16px);
    max-width: 100%;
  }

  .page-content h1 {
    font-size: clamp(1.6rem, 6vw, 2rem);
    line-height: 1.25;
    word-break: keep-all;
  }

  .page-content h2 {
    font-size: 1.25rem;
    margin-top: var(--space-6, 24px);
  }

  .hero-section {
    padding: var(--space-16, 64px) var(--space-4, 16px) var(--space-12, 48px);
  }

  .hero-title {
    font-size: clamp(1.75rem, 7vw, 2.25rem);
  }

  .hero-subtitle {
    font-size: 1rem;
  }

  .hero-cta .btn-primary,
  .btn-primary {
    min-height: 44px;
    padding: 0.7rem 1.2rem;
  }

  .posts-grid,
  .about-section .about-card,
  .post-card.featured .post-card-link {
    grid-template-columns: 1fr;
  }

  .section-header {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-2, 8px);
  }

  .post-header {
    padding: var(--space-6, 24px) var(--space-4, 16px);
  }

  .post-body {
    padding: 0 var(--space-4, 16px);
  }

  .post-content-wrapper,
  .post-content,
  .post-hero {
    max-width: 100%;
  }

  .cite-formats,
  .search-filters,
  .pagination {
    flex-wrap: wrap;
    gap: var(--space-2, 8px);
  }

  .search-filters .filter-btn {
    flex: 1 1 auto;
  }

  .search-input-wrapper {
    width: 100%;
  }

  .pagination {
    justify-content: center;
  }

  .post-body table,
  .page-content table,
  .aicra-activity-table {
    display: block;
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .post-body pre,
  .page-content pre {
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .post-body img,
  .page-content img,
  .post-hero-image {
    width: 100%;
    height: auto;
  }

  .footer-main {
    grid-template-columns: 1fr;
    gap: var(--space-8, 32px);
  }
}

@media (max-width: 576px) {
  .category-grid,
  .footer-links {
    grid-template-columns: 1fr;
  }

  .hero-section {
    padding: var(--space-12, 48px) var(--space-4, 16px) var(--space-8, 32px);
  }

  .footer-bottom {
    flex-direction: column;
    text-align: center;
  }
}

@media (max-width: 480px) {
  .category-card {
    padding: var(--space-6, 24px) var(--space-4, 16px);
  }

  .nav-logo {
    height: 28px;
  }

  .container {
    padding-left: var(--space-3, 12px);
    padding-right: var(--space-3, 12px);
  }
}
