@media (max-width: 1024px) {
  .opw-card-grid, .opw-card-grid--4, .opw-card-grid--3 { grid-template-columns: repeat(2, 1fr); }
  .opw-footer__grid { grid-template-columns: repeat(2, 1fr); }
  .opw-post-grid, .opw-catalog-grid { grid-template-columns: repeat(2, 1fr); }
  .opw-faq-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  .opw-nav-toggle { display: block; }
  .opw-nav {
    position: fixed;
    inset: 0 0 0 auto;
    width: min(300px, 85vw);
    background: var(--opw-white);
    transform: translateX(100%);
    transition: transform 0.3s ease;
    padding: 5rem 1.5rem 2rem;
    box-shadow: -4px 0 20px rgba(0,0,0,0.1);
    z-index: 200;
  }
  .opw-nav.is-open { transform: translateX(0); }
  .opw-nav__list { flex-direction: column; gap: 1rem; }
  .opw-header__actions { gap: 0.5rem; }
  .opw-header__actions .opw-btn { padding: 0.45rem 0.75rem; font-size: 0.8rem; }
  .opw-header__actions .opw-btn--primary { display: none; }
  .opw-sticky-cta {
    display: block;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom, 0px));
    background: rgba(255,255,255,0.98);
    border-top: 1px solid var(--opw-border);
    z-index: 90;
    box-shadow: 0 -8px 24px rgba(12,14,18,0.08);
  }
  .opw-hero__grid, .opw-split-grid { grid-template-columns: 1fr; }
  .opw-card-grid, .opw-card-grid--4, .opw-card-grid--3,
  .opw-post-grid, .opw-catalog-grid, .opw-form-grid { grid-template-columns: 1fr; }
  .opw-footer__grid { grid-template-columns: 1fr; }
  body { padding-bottom: calc(5rem + env(safe-area-inset-bottom, 0px)); }
  .page-template-page-apply-for-access-php .opw-sticky-cta,
  .page-template-page-access-login-php .opw-sticky-cta { display: none; }
  .page-template-page-apply-for-access-php,
  .page-template-page-access-login-php { padding-bottom: 0; }
  .opw-page, .opw-home, .opw-portal { scroll-margin-bottom: 5rem; }
}

@media (max-width: 480px) {
  .opw-hero { padding: 3.5rem 0 2.75rem; }
  .opw-section { padding: 3.5rem 0; }
  .opw-btn-group .opw-btn { width: 100%; }
  .opw-btn-group { flex-direction: column; }
}

/* onyx-theme:responsive.css */
