/* ============================================================
   AquaPro Plumbing — responsive.css
   Breakpoints: 320 | 375 | 425 | 768 | 1024 | 1440 | 4K
   ============================================================ */

/* ---------- 1440px — Large Desktop ---------- */
@media (min-width: 1440px) {
  :root { --container-max: 1360px; }
  .hero-headline { font-size: 4.5rem; }
  .section-title { font-size: 3.25rem; }
}

/* ---------- 4K ---------- */
@media (min-width: 2560px) {
  :root { --container-max: 1600px; font-size: 20px; }
}

/* ---------- 1024px — Tablet Landscape ---------- */
@media (max-width: 1024px) {
  :root { --section-py: 80px; }

  .hamburger { display: flex; }
  .nav-links, .nav-actions .btn-primary { display: none; }
  .nav-phone { font-size: 0; padding: 8px 12px; border: none; }
  .nav-phone i { font-size: 1rem; }

  .hero-container { grid-template-columns: 1fr; text-align: center; gap: 40px; }
  .hero-content { display: flex; flex-direction: column; align-items: center; }
  .hero-sub { margin-left: auto; margin-right: auto; }
  .hero-actions { justify-content: center; }
  .hero-stats { justify-content: center; }
  .hero-visual { max-width: 400px; margin: 0 auto; }

  .about-grid { grid-template-columns: 1fr; gap: 40px; }
  .services-grid { grid-template-columns: repeat(2, 1fr); }
  .why-grid { grid-template-columns: repeat(2, 1fr); }
  .pricing-grid { grid-template-columns: 1fr; max-width: 480px; margin: 0 auto; }
  .pricing-featured { transform: none; }
  .pricing-featured:hover { transform: translateY(-6px); }
  .contact-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .lightbox-content { grid-template-columns: 1fr; }
  .lightbox-img-wrap { aspect-ratio: 16/9; }
}

/* ---------- 768px — Tablet Portrait ---------- */
@media (max-width: 768px) {
  :root { --section-py: 64px; }

  #navbar { width: calc(100% - 32px); top: 12px; }

  .hero { padding-top: 100px; }
  .hero-headline { font-size: clamp(2rem, 8vw, 3rem); }
  .hero-card-main { width: 240px; padding: 28px; }
  .hero-icon-main { font-size: 3.5rem; }
  .float-1, .float-2 { display: none; }

  .about-features { grid-template-columns: 1fr; }
  .services-grid { grid-template-columns: 1fr 1fr; }
  .portfolio-grid { grid-template-columns: 1fr 1fr; }

  .testimonial-card { min-width: calc(100% - 0px); }

  .form-row { grid-template-columns: 1fr; }

  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom-inner { flex-direction: column; text-align: center; }

  .back-to-top { bottom: 20px; right: 20px; }

  .modal-panel { padding: 28px 20px; }

  .section-header { margin-bottom: 40px; }
  .about-badge { position: static; margin-top: 16px; }
  .about-progress-block { margin-top: 24px; }
}

/* ---------- 425px — Large Mobile ---------- */
@media (max-width: 425px) {
  :root { --section-py: 56px; --container-px: 16px; }

  .hero-headline { font-size: clamp(1.8rem, 9vw, 2.5rem); }
  .hero-actions { flex-direction: column; width: 100%; }
  .btn-hero { width: 100%; justify-content: center; }
  .hero-stats { gap: 10px; }
  .stat-card { min-width: 100px; padding: 12px 14px; }
  .stat-number { font-size: 1.5rem; }

  .services-grid { grid-template-columns: 1fr; }
  .why-grid { grid-template-columns: 1fr; }
  .portfolio-grid { grid-template-columns: 1fr; }

  .section-title { font-size: clamp(1.7rem, 7vw, 2.2rem); }

  .pricing-card { padding: 28px 20px; }
  .pricing-price span { font-size: 3rem; }

  .faq-question { font-size: 0.875rem; padding: 16px; }
  .faq-answer { padding: 16px; }

  .lightbox-content { grid-template-columns: 1fr; }
  .lightbox-info { padding: 24px 20px; }
  .lightbox-nav { display: none; }

  .footer-grid { grid-template-columns: 1fr; }
  .newsletter-form { flex-direction: column; }
  .newsletter-form .btn-primary { width: 100%; }
}

/* ---------- 375px — Standard Mobile ---------- */
@media (max-width: 375px) {
  :root { --container-px: 14px; }
  .nav-container { padding: 12px 16px; }
  .hero { padding-top: 90px; }
  .hero-card-main { width: 200px; padding: 20px; }
  .about-feature { flex-direction: column; text-align: center; }
  .hero-badge { font-size: 0.72rem; text-align: center; }
}

/* ---------- 320px — Small Mobile ---------- */
@media (max-width: 320px) {
  :root { --container-px: 12px; }
  .section-title { font-size: 1.6rem; }
  .hero-headline { font-size: 1.75rem; }
  .btn-hero { padding: 13px 20px; font-size: 0.875rem; }
  .stat-card { min-width: 86px; padding: 10px 10px; }
  .stat-number { font-size: 1.3rem; }
}
