/* ============================================================
   AGGARWAL TAXI — RESPONSIVE.CSS
   360 → 414 mobile, tablets, laptops, large monitors.
   ============================================================ */

/* ---------- Scroll-snap swipe rows (mobile destination cards) ---------- */
@media (max-width: 767.98px) {
  .swipe-row {
    display: grid; grid-auto-flow: column; grid-auto-columns: 82%;
    overflow-x: auto; scroll-snap-type: x mandatory; gap: 16px;
    padding-bottom: 10px; margin-inline: -6px; padding-inline: 6px;
    -webkit-overflow-scrolling: touch; scrollbar-width: none;
  }
  .swipe-row::-webkit-scrollbar { display: none; }
  .swipe-row > * { scroll-snap-align: center; }
  .swipe-row .dest-body p { min-height: 0; }
}

/* ---------- Tablet & below ---------- */
@media (max-width: 991.98px) {
  .sec { padding: 72px 0; }
  .bc-grid { grid-template-columns: repeat(2, 1fr); }
  .bc-third { grid-column: span 1; }
  .booking-float { margin-top: -80px; }
  .hero { padding: 70px 0 140px; min-height: 0; }
  .ov-strip { grid-template-columns: repeat(2, 1fr); }
  .ov-cell:nth-child(5) { grid-column: span 2; }
  .route-facts { display: none !important; }
  .route-hero { padding: 120px 0 90px; }
  .cta-inner { flex-direction: column; align-items: flex-start; }
}

/* ---------- Phones ---------- */
@media (max-width: 767.98px) {
  body { font-size: .97rem; }
  .sec { padding: 58px 0; }
  .sec-tight { padding: 46px 0; }
  .sec-head { margin-bottom: 34px; }

  .hero { padding: 52px 0 130px; }
  .hero h1 { font-size: clamp(2rem, 8.4vw, 2.6rem); }
  .hero-sub { font-size: 1rem; margin: 16px 0 24px; }
  .hero-ctas .btn { flex: 1 1 auto; justify-content: center; display: inline-flex; }
  .hero-mini { gap: 14px; margin-top: 24px; }
  .hero-visual { margin-top: 40px; }
  .float-b, .float-c { display: none; }
  .float-a { top: -18px; right: -6px; }
  .scene-photo { transform: none; }
  .scene-photo img { aspect-ratio: 16/10; }

  .booking-float { margin-top: -70px; }
  .booking-card { padding: 22px 18px; border-radius: 20px; }
  .bc-grid { grid-template-columns: 1fr; gap: 12px; }
  .bc-half, .bc-third { grid-column: span 1; }
  .bc-actions .btn { width: 100%; justify-content: center; }

  .route-card { flex-wrap: wrap; }
  .route-meta { align-items: flex-start; }

  .ov-strip { grid-template-columns: 1fr 1fr; border-radius: var(--radius-md); }
  .ov-cell { padding: 14px 16px; }
  .ov-cell:nth-child(5) { grid-column: span 2; }

  .dest-ctas .btn { flex: 1 1 auto; justify-content: center; display: inline-flex; }

  .cta-inner { gap: 20px; }
  .cta-actions { width: 100%; }
  .cta-actions .btn { flex: 1 1 100%; justify-content: center; display: inline-flex; }

  .site-footer { padding: 60px 0 90px; }
  .f-bottom { flex-direction: column; align-items: flex-start; }

  .fab-stack { display: none !important; }

  .explorer { padding: 24px 18px; }
  .explorer .col-md-1 { text-align: center; }

  .modal-full-xs { margin: 0; }
}

/* ---------- Small phones (360-390) ---------- */
@media (max-width: 414px) {
  .brand-tag { display: none; }
  .hero h1 { font-size: clamp(1.85rem, 8.6vw, 2.2rem); }
  .btn-gold, .btn-navy, .btn-ghost, .btn-outline-gold, .btn-wa { padding: .7rem 1.1rem; font-size: .93rem; }
  .sec-title { font-size: 1.45rem; }
  .stat-num { font-size: 1.3rem; }
  .step-ghost { font-size: 2.6rem; }
}

/* ---------- Large monitors ---------- */
@media (min-width: 1400px) {
  .container { max-width: 1240px; }
  .hero { min-height: 86vh; }
}

/* ---------- Print ---------- */
@media print {
  .site-nav, .site-topbar, .fab-stack, .mobile-bar, .hero-visual, .cta-band { display: none !important; }
  body { background: #fff; }
}
