/* ============================================
   TRIMULIA NUGRAHA — responsive.css
   Mobile-first breakpoints
   ============================================ */

/* ---------- Large Desktop / Small Desktop ---------- */
@media (max-width: 1200px) {
  .products-grid { grid-template-columns: repeat(3, 1fr); }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
}

/* ---------- Tablet Landscape ---------- */
@media (max-width: 992px) {
  .section { padding: 68px 0; }

  /* Header: hamburger */
  .nav-toggle { display: flex; }
  .main-nav {
    position: fixed;
    inset: 0;
    background: rgba(255,255,255,.98);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: var(--transition);
    z-index: 1050;
  }
  .main-nav.open { opacity: 1; visibility: visible; }
  .main-nav ul { flex-direction: column; gap: 26px; }
  .main-nav a { color: var(--primary); font-size: 1.3rem; }
  .header-phone { display: none; }
  .header-cta .btn { display: none; }
  .brand span { color: var(--primary); }
  .site-header:not(.scrolled) .brand span { color: var(--white); }
  .site-header:not(.scrolled) .nav-toggle:not(.open) span { background: var(--white); }

  /* Hero */
  .hero { min-height: auto; padding-bottom: 64px; }
  .hero .container { grid-template-columns: 1fr; gap: 48px; }
  .hero-sub { max-width: 100%; }
  .hero-media { max-width: 560px; margin: 0 auto; }
  .hero-media .float-card { left: 10px; bottom: -20px; }

  /* Grids */
  .why-grid { grid-template-columns: repeat(2, 1fr); }
  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 40px 24px; }
  .process-grid { grid-template-columns: repeat(2, 1fr); }
  .contact-grid { grid-template-columns: 1fr; }
  .about-split { grid-template-columns: 1fr; gap: 40px; }
  .vm-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 36px; }

  /* Testimonials: 2 per view */
  .testi-card { flex: 0 0 calc(50% - 13px); }

  /* CTA */
  .cta-banner { padding: 52px 40px; }
}

/* ---------- Tablet Portrait / Mobile Landscape ---------- */
@media (max-width: 768px) {
  .products-grid { grid-template-columns: repeat(2, 1fr); }
  .trust-bar .container { justify-content: center; text-align: center; }
  .trust-logos { gap: 28px; }
  .trust-logos img { height: 32px; }
  .hero-proof { gap: 28px; }
  .cta-banner .cta-inner { flex-direction: column; text-align: center; justify-content: center; }
  .cta-banner p { margin: 0 auto; }
}

/* ---------- Mobile ---------- */
@media (max-width: 576px) {
  .container { padding: 0 18px; }
  .section { padding: 56px 0; }
  .section-head { margin-bottom: 40px; }

  .services-grid,
  .why-grid,
  .products-grid,
  .process-grid { grid-template-columns: 1fr; }

  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 32px 16px; }

  .hero { padding-top: calc(var(--header-h) + 32px); }
  .hero-actions .btn { width: 100%; justify-content: center; }
  .hero-proof { flex-wrap: wrap; gap: 22px; }
  .hero-media .frame img { height: 280px; }
  .hero-media .float-card { position: static; margin-top: 16px; }

  .form-row { grid-template-columns: 1fr; }
  .contact-form, .contact-info-card { padding: 30px 24px; }

  .testi-card { flex: 0 0 100%; }

  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .footer-bottom { justify-content: center; text-align: center; }

  .cta-banner { padding: 44px 26px; }
  .map-embed iframe { height: 300px; }

  .wa-float { right: 18px; bottom: 18px; width: 52px; height: 52px; }
  .to-top { right: 18px; bottom: 84px; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  html { scroll-behavior: auto; }
}
