/* ==========================================================================
   S2 Homes — Responsive overrides
   ========================================================================== */

@media (max-width: 1199px) {
  .gallery-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 991px) {
  .hero h1 { max-width: 100%; }
  .stat-item { padding: 14px; }
  .process-track { gap: 30px; }
  .contact-form-card { padding: 36px 26px; }
  .office-info-card { padding: 40px 30px; margin-top: 30px; }
  .hero-actions .btn-rh { padding: 14px 28px; }
}

@media (max-width: 767px) {
  :root { --header-height: 96px; }
  .rh-header { padding: 14px 0; }
  .rh-header::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(to bottom, rgba(6,14,38,0.55) 0%, rgba(6,14,38,0.15) 75%, transparent 100%);
    pointer-events: none;
  }
  .rh-header.scrolled::before { opacity: 0; }
  .rh-logo-mark { height: 38px; }
  .rh-header.scrolled .rh-logo-mark { height: 34px; }
  .section-pad { padding: 64px 0; }
  .section-pad-sm { padding: 44px 0; }
  .hero { min-height: 92vh; align-items: flex-start; }
  .hero-content { padding-top: calc(var(--header-height) + 20px); padding-bottom: 76px; }
  .hero-sub { font-size: 1rem; }
  .hero-actions { flex-direction: column; align-items: flex-start; }
  .hero-actions .btn-rh { width: 100%; justify-content: center; }
  .stats-section .row > div { margin-bottom: 24px; }
  .stats-section .row > div:last-child { margin-bottom: 0; }
  .why-card { padding: 32px 24px; }
  .project-card-img { height: 240px; }
  .cta-dark { padding: 70px 0; }
  .footer-col { margin-bottom: 40px; }
  .rh-footer { padding-top: 60px; }
  .detail-tabs { gap: 0; }
  .detail-tab { padding: 14px 16px; font-size: 0.74rem; }
  .project-meta-row { gap: 16px; }
  .floating-actions { bottom: 20px; right: 16px; }
  .floating-btn { width: 50px; height: 50px; font-size: 1.2rem; }
  #back-to-top { bottom: 20px; left: 16px; width: 44px; height: 44px; }
  .rh-popup { padding: 38px 26px; }
  .page-banner { min-height: 42vh; }
}

@media (max-width: 575px) {
  .container-xl { padding-left: 18px; padding-right: 18px; }
  .section-title { font-size: 1.7rem; }
  .gallery-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 140px; }
  .achieve-card .num { font-size: 1.9rem; }
  .contact-form-card { padding: 26px 18px; }
  .office-info-card { padding: 30px 22px; }
  .btn-rh { padding: 13px 26px; font-size: 0.78rem; }
}

/* Ultra-wide */
@media (min-width: 1600px) {
  .container-xl { max-width: 1400px; }
}
