@media (min-width: 600px) {
  .card-grid { grid-template-columns: repeat(2, 1fr); }
  .cities-grid { grid-template-columns: repeat(2, 1fr); }
  .nav-toggle { display: none; }
  .main-nav { display: block; }
}

@media (min-width: 900px) {
  .card-grid { grid-template-columns: repeat(3, 1fr); }
  .cities-grid { grid-template-columns: repeat(2, 1fr); }
  .theater-card { grid-template-columns: 280px 1fr; }
}

@media (min-width: 1200px) {
  .cities-grid { grid-template-columns: repeat(4, 1fr); }
  .city-card { flex: 0 0 calc(20% - 0.8rem); }
}

@media (max-width: 899px) {
  .nav-toggle { display: flex; flex-direction: column; gap: 5px; padding: 0.5rem; }
  .nav-toggle span { display: block; width: 24px; height: 2px; background: var(--color-text); }
  .main-nav {
    position: fixed; inset: 0; top: 60px;
    background: var(--color-bg); transform: translateX(100%);
    transition: transform var(--transition); padding: 2rem;
  }
  .main-nav.open { transform: translateX(0); }
  .main-nav ul { flex-direction: column; font-size: 1.5rem; }
  .search-toggle { display: block; }
  .opera-map { height: 280px; }
  .chatbot-drawer { width: calc(100vw - 2rem); right: -0.5rem; }
  .banner-slide { flex-direction: column; text-align: center; }
  .partner-card { grid-template-columns: 1fr; }
  .program-table { font-size: 0.85rem; }
  .program-table .hide-mobile { display: none; }
}

@media (min-width: 1600px) {
  :root { --max-width: 1400px; }
}
