/**
 * Responsive CSS & Breakpoint Rules
 * Ensures flawless mobile-first responsiveness across phones, tablets, laptops, and desktops.
 */

/* Medium Desktops & Tablets (Max 1024px) */
@media (max-width: 1024px) {
  .nsm-services-grid,
  .nsm-features-grid,
  .nsm-testimonials-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .nsm-gallery-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .nsm-trust-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .nsm-footer-grid {
    grid-template-columns: 1fr 1fr;
    gap: 30px;
  }

  .nsm-hero-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .nsm-hero-card-media img {
    height: 340px;
  }

  .nsm-service-area-box {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}

/* Tablets & Mobile Phones (Max 768px) */
@media (max-width: 768px) {
  body {
    padding-bottom: 70px; /* Space for mobile sticky bottom bar */
  }

  .nsm-mobile-toggle {
    display: block;
  }

  .nsm-nav-menu {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--nsm-white);
    flex-direction: column;
    padding: 24px;
    box-shadow: 0 15px 30px rgba(0,0,0,0.1);
    border-bottom: 2px solid var(--nsm-warm-bronze);
    gap: 16px;
    align-items: flex-start;
  }

  .nsm-nav-menu.is-active {
    display: flex;
  }

  .nsm-nav-menu li {
    width: 100%;
  }

  .nsm-nav-menu li a {
    display: block;
    padding: 8px 0;
    border-bottom: 1px solid var(--nsm-border-color);
  }

  .nsm-header-actions .nsm-btn {
    display: none; /* Call action moves to mobile sticky bar & header icon */
  }

  .nsm-services-grid,
  .nsm-features-grid,
  .nsm-testimonials-grid,
  .nsm-gallery-grid {
    grid-template-columns: 1fr;
  }

  .nsm-trust-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .nsm-footer-grid {
    grid-template-columns: 1fr;
  }

  .nsm-hero {
    padding: 50px 0 60px;
  }

  .nsm-section {
    padding: 60px 0;
  }

  .nsm-mobile-sticky-bar {
    display: block;
  }

  .nsm-topbar-inner {
    justify-content: center;
    text-align: center;
  }

  .nsm-topbar-item:not(:first-child) {
    display: none;
  }

  .nsm-cta-group {
    flex-direction: column;
    width: 100%;
  }

  .nsm-cta-group .nsm-btn {
    width: 100%;
  }
}

/* Small Mobile Phones (Max 480px) */
@media (max-width: 480px) {
  .nsm-container {
    padding-left: 18px;
    padding-right: 18px;
  }

  .nsm-card,
  .nsm-feature-card,
  .nsm-testimonial-card,
  .nsm-service-area-box {
    padding: 22px;
  }

  .nsm-hero-title {
    font-size: 1.95rem;
  }

  .nsm-hero-subtitle {
    font-size: 1rem;
  }

  .nsm-hero-ctas .nsm-btn {
    width: 100%;
  }
}
