@media (min-width: 640px) {
  .booking-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .booking-panel .button { grid-column: span 2; }
  .room-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .place-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 900px) {
  .nav-toggle { display: none; }
  .main-nav {
    position: static;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 34px;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
  }
  .main-nav a { padding: 0; }
  .main-nav .button { color: #fff; padding: 12px 18px; }
  .booking-panel {
    grid-template-columns: 1fr 1fr .8fr auto;
    align-items: end;
    padding: 20px 22px;
  }
  .booking-panel .button { grid-column: auto; min-width: 220px; }
  .room-detail .booking-panel { grid-template-columns: 1fr; }
  .room-detail .booking-panel .button { min-width: 0; }
  .split { grid-template-columns: .9fr 1.1fr; }
  .palazzo-band { grid-template-columns: .75fr 1.25fr; }
  .map-section { grid-template-columns: .82fr 1.18fr; }
  .room-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .place-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .tour-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .room-detail { grid-template-columns: 1.25fr .75fr; }
  .footer-grid { grid-template-columns: 1.1fr 1fr 1fr 1fr; align-items: start; }
}

@media (min-width: 1400px) {
  .container { width: min(1280px, calc(100% - 72px)); }
  .hero { min-height: 700px; }
  .hero.compact { min-height: 500px; }
  .room-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 420px) {
  .brand img { width: 188px; }
  .header-inner { min-height: 68px; }
  .main-nav { inset: 68px 0 auto 0; }
  .hero { min-height: 620px; }
  .hero-content { padding-bottom: 112px; }
  .hero .booking-panel { margin-top: -96px; margin-bottom: 28px; }
  .section { padding: 78px 0 62px; }
  .service-grid { grid-template-columns: 1fr; }
}
