:root {
  --max-width: 1260px;
}

@media (max-width: 1100px) {
  .amenities-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .footer-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .contact-card,
  .intro-grid,
  .experience-grid,
  .faq-grid,
  .location-grid {
    grid-template-columns: 1fr;
  }
  .contact-actions {
    flex-direction: row;
    flex-wrap: wrap;
  }
}

@media (max-width: 860px) {
  .nav-toggle {
    display: flex;
  }
  .nav-links {
    position: fixed;
    inset: 70px 16px auto 16px;
    display: none;
    flex-direction: column;
    align-items: flex-start;
    padding: 20px;
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 20px;
    background: rgba(17,17,17,0.95);
    backdrop-filter: blur(24px);
    box-shadow: var(--shadow);
  }
  .nav-links.open {
    display: flex;
  }
  .bungalow-grid {
    grid-template-columns: 1fr;
  }
  .amenities-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .masonry-gallery {
    columns: 2 280px;
  }
  .review-slider {
    grid-template-columns: 1fr;
  }
  .slider-btn {
    display: none;
  }
  .review-track {
    min-height: 320px;
  }
  .floating-actions {
    right: 12px;
    bottom: 12px;
  }
}

@media (max-width: 640px) {
  .section {
    padding: 90px 0;
  }
  .hero-content {
    padding-top: 120px;
  }
  .hero-logo {
    width: 180px;
  }
  .hero-subtitle {
    font-size: 0.95rem;
  }
  .intro-media img {
    min-height: 280px;
  }
  .amenities-grid,
  .footer-grid,
  .stat-row {
    grid-template-columns: 1fr;
  }
  .masonry-gallery {
    columns: 1;
  }
  .contact-card,
  .card-body,
  .amenity-card {
    padding: 22px;
  }
  .contact-actions {
    flex-direction: column;
  }
  .site-footer {
    padding-top: 70px;
  }
  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
  }
  .floating-btn {
    width: 48px;
    height: 48px;
  }
}
