/* ==========================================================================
   HomeDosthi — Responsive rules (mobile-first overrides by breakpoint)
   ========================================================================== */

/* ---------- Large desktops (≥1600px): let the layout breathe ---------- */
@media (min-width: 1600px) {
  :root { --hd-max: 1560px; }
}

/* ---------- Below xl (<1200px) ---------- */
@media (max-width: 1199.98px) {
  .site-header .nav-link { padding: .5rem .6rem !important; font-size: .9rem; }
  .float-card.fc-1 { left: -2%; }
  .float-card.fc-2 { right: -2%; }
}

/* ---------- Below lg (<992px): collapsed navbar, stacked layouts ---------- */
@media (max-width: 991.98px) {
  .site-header .navbar-collapse {
    background: #fff; border-radius: var(--hd-radius); box-shadow: var(--hd-shadow);
    padding: 1rem; margin-top: .85rem; max-height: calc(100vh - 100px); overflow-y: auto;
  }
  .site-header .nav-link { padding: .75rem 1rem !important; font-size: 1rem; }
  .header-actions { border-top: 1px solid var(--hd-line); padding-top: 1rem; margin-top: .5rem; }
  .header-actions .btn { width: 100%; }

  .hero { text-align: center; }
  .hero-lead { margin-inline: auto; }
  .hero .cta-row, .trust-row { justify-content: center; }
  .hero-visual { margin-top: 3rem; max-width: 480px; }
  .hero-photo { aspect-ratio: 4 / 4.1; }

  .steps-row::before { display: none; }
  .step-card { margin-top: 1.5rem; }

  .booking-aside { border-radius: 0; }
  .map-embed { aspect-ratio: 4 / 3; }
}

/* ---------- Below md (<768px): phones & small tablets ---------- */
@media (max-width: 767.98px) {
  html { scroll-padding-top: 76px; }
  /* keep row gutters within the 16px page gutter (prevents sideways scroll) */
  .row.g-5 { --bs-gutter-x: 1.5rem; }
  .site-header .navbar { padding-block: .3rem; }
  .brand img { height: 46px; }
  .brand-mark { width: 40px; height: 40px; font-size: 1.2rem; }
  .brand-name { font-size: 1.25rem; }
  .brand-sub { display: none; }

  .hero h1 .hl { white-space: normal; }
  .hero .cta-row .btn { flex: 1 1 100%; }
  .trust-row { gap: 1rem 1.5rem; }
  .trust-item { flex: 0 0 calc(50% - .75rem); text-align: left; }

  .float-card { padding: .65rem .8rem; }
  .float-card .ic { width: 36px; height: 36px; font-size: 1rem; }
  .float-card strong { font-size: .85rem; }
  .float-card.fc-1 { left: 0; top: 4%; }
  .float-card.fc-2 { right: 0; }
  .float-card.fc-3 { display: none; }
  .hero-photo { aspect-ratio: 4 / 4.6; }

  .why-stat strong { font-size: 1.25rem; }
  .stats-strip .stat + .stat { margin-top: 0; }

  .service-card .card-foot { flex-wrap: wrap; }

  .final-cta .btn, .provider-cta .btn { width: 100%; }

  .timeline li { padding-left: 4rem; }

  .footer-bottom { text-align: center; }

  /* Sticky call / WhatsApp bar on phones */
  body { padding-bottom: 68px; }
  .mobile-cta-bar {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 1045;
    background: #fff; box-shadow: 0 -6px 20px rgba(16, 33, 58, .1); padding: .6rem .75rem;
    gap: .6rem;
  }
  .mobile-cta-bar .btn { flex: 1; padding: .7rem 1rem; font-size: .92rem; }
  .float-actions { bottom: 84px; right: 1rem; }
  .float-btn.wa { display: none; }
}

/* ---------- Very small phones (<400px) ---------- */
@media (max-width: 399.98px) {
  .trust-item { flex: 0 0 100%; }
  .time-slots .btn-check + label { flex: 1 1 calc(50% - .5rem); text-align: center; }
}

/* ---------- Print ---------- */
@media print {
  .site-header, .topbar, .float-actions, .mobile-cta-bar, .site-footer { display: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}
