/* ==========================================================================
   PrintPro — Responsive Overrides
   Breakpoints follow Bootstrap 5: >=1200 desktop, >=992 laptop, >=768 tablet,
   <768 mobile.
   ========================================================================== */

/* Laptop */
@media (max-width: 1199.98px) {
  :root { --section-pad: 80px; }
  .hero { min-height: 90vh; }
}

/* Tablet */
@media (max-width: 991.98px) {
  :root { --section-pad: 70px; }
  .hero { min-height: auto; padding: 160px 0 100px; }
  .hero-btns { flex-direction: column; align-items: flex-start; }
  .about-preview-img { margin-bottom: 60px; }
  .about-preview-img .exp-badge { right: 10px; }
  .process-step { margin-bottom: 40px; }
  .contact-form-wrap { padding: 30px; }
  .footer-map { margin-top: 30px; }
}

/* Small tablet / large mobile */
@media (max-width: 767.98px) {
  .section, .cta-section { padding: 60px 0; }
  .section-head { margin-bottom: 36px; }
  .stat-card { margin-bottom: 24px; }
  .stats-section .row > div:last-child .stat-card { margin-bottom: 0; }
  .page-banner { padding: 160px 0 70px; }
  .hero-eyebrow { font-size: 0.72rem; padding: 6px 14px; }
  .hero-sub { font-size: 1rem; }
  .timeline-vert { padding-left: 30px; }
  .masonry-grid { column-count: 1; }
  .contact-form-wrap { padding: 24px; }
  #backToTop { width: 42px; height: 42px; bottom: 18px; right: 18px; }
}

/* Mobile */
@media (max-width: 575.98px) {
  .btn-brand, .btn-outline-brand, .btn-primary-solid, .btn-dark-outline {
    padding: 12px 22px; font-size: 0.88rem; width: 100%; justify-content: center;
  }
  .hero-btns { width: 100%; }
  .about-preview-img .exp-badge { padding: 16px 18px; bottom: -20px; }
  .about-preview-img .exp-badge strong { font-size: 1.6rem; }
  .service-card, .why-card { padding: 28px 20px; }
  .cta-section .btn-brand { width: auto; }
  .cta-section { text-align: center; }
  .lightbox-overlay { padding: 16px; }
  .lightbox-nav { width: 40px; height: 40px; }
  .lightbox-close { top: 12px; right: 12px; width: 40px; height: 40px; }
}

/* Avoid layout breaking on very small screens */
@media (max-width: 360px) {
  .hero h1 { font-size: 1.9rem; }
  .navbar-brand-text { font-size: 1.2rem; }
}

/* Print styles: keep it clean if a page is printed */
@media print {
  .site-header, .hero-shapes, #backToTop, .site-footer .social-icons { display: none !important; }
}
