@media (max-width: 980px) {
  .nav-toggle { display: block; }
  .menu {
    position: fixed; top: 78px; left: 0; right: 0;
    display: none; flex-direction: column; align-items: stretch;
    background: var(--white); border-bottom: 1px solid var(--line); padding: 18px;
  }
  .menu.open { display: flex; }
  .menu-item { padding: 0; }
  .mega { position: static; transform: none; width: 100%; opacity: 1; pointer-events: auto; box-shadow: none; margin-top: 10px; grid-template-columns: 1fr; display: none; }
  .menu-item:hover .mega, .menu-item:focus-within .mega { display: grid; }
  .grid.two, .grid.three, .testimonials, .footer-grid { grid-template-columns: 1fr; }
  .room-page-layout {
    grid-template-columns: 1fr;
    gap: 34px;
  }
  .room-reservation-panel {
    position: static;
    margin-top: 0;
  }
  .room-title-row {
    grid-template-columns: 1fr;
  }
  .room-capacity-pill {
    justify-self: start;
  }
  .home-room-search {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .filters {
    position: relative;
    padding: 16px;
    margin-top: -18px;
  }
  .filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }
  .filter-grid input,
  .filter-grid select,
  #clearFilters {
    min-width: 0;
  }
  .filter-grid input {
    min-width: 0;
  }
  .filter-grid select {
    min-width: 0;
  }
  #clearFilters {
    min-width: 0;
  }
  .popup-card { grid-template-columns: 1fr; max-height: calc(100vh - 28px); overflow-y: auto; }
  .popup-card img { width: 100%; height: auto; max-height: 52vh; object-fit: contain; }
  .popup-poster img { max-height: calc(100vh - 28px); }
}

@media (max-width: 640px) {
  .container { width: min(100% - 22px, 1160px); }
  .section { padding: 58px 0; }
  .room-page-section {
    padding: 50px 0 54px;
  }
  .hero-content { padding-bottom: 58px; }
  .room-detail-section {
    padding-top: 34px;
  }
  .room-summary .meta,
  .room-summary .services {
    gap: 8px;
  }
  .reservation-section {
    padding-top: 48px;
  }
  .hero-actions, .subscribe { flex-direction: column; }
  .room-section-title {
    font-size: clamp(2rem, 12vw, 3rem);
  }
  .room-services-list {
    grid-template-columns: 1fr;
    gap: 14px;
    margin-bottom: 38px;
  }
  .room-gallery-grid {
    grid-template-columns: 1fr;
  }
  .room-booking-card {
    padding: 18px;
  }
  .room-booking-card .form-grid {
    grid-template-columns: 1fr;
  }
  .room-booking-card .field input,
  .room-booking-card .field textarea {
    min-height: 42px;
  }
  .room-booking-card .field textarea {
    min-height: 86px;
  }
  .home-room-search {
    grid-template-columns: 1fr;
    padding: 12px;
    margin-top: 20px;
  }
  .home-room-search select,
  .home-room-search .btn {
    min-height: 46px;
    font-size: .9rem;
  }
  .filter-grid, .form-grid { grid-template-columns: 1fr; }
  .filters {
    padding: 14px;
    border-radius: 8px;
  }
  .filters::before {
    margin-bottom: 10px;
    font-size: .78rem;
  }
  .filter-grid input,
  .filter-grid select,
  #clearFilters {
    width: 100%;
    min-height: 46px;
    padding-left: 12px;
    font-size: .9rem;
    transform: none;
  }
  .filter-grid input:hover,
  .filter-grid select:hover {
    transform: none;
  }
  .brand small { display: none; }
  .brand-mark { width: 40px; height: 40px; }
  .brand-logo {
    width: 136px;
    height: 45px;
  }
}
