/* ============================================================
   VELVET DRIVE GOA — Responsive layer
   Desktop-first refinements down to small phones.
   ============================================================ */

/* ---------- Large laptop ---------- */
@media (max-width: 1180px) {
  .fleet-grid { grid-template-columns: repeat(2, 1fr); }
  .why-grid { grid-template-columns: repeat(3, 1fr); }
  .loc-grid { grid-template-columns: repeat(4, 1fr); }
  .footer-grid { grid-template-columns: 1.6fr 1fr 1fr; }
}

/* ---------- Tablet / iPad ---------- */
@media (max-width: 1020px) {
  .nav { display: none; }
  .hamburger { display: flex; }

  .hero-search { grid-template-columns: 1fr 1fr; }
  .hs-field { border-bottom: 1px solid var(--line-soft); }
  .hs-field:nth-child(2n) { border-right: 0; }
  .hs-btn { grid-column: 1 / -1; padding-block: 1.1rem; }

  .how-steps { grid-template-columns: repeat(2, 1fr); row-gap: 2.6rem; }
  .how-step:nth-child(2)::before { display: none; }

  .chauffeur-grid { grid-template-columns: 1fr; }
  .chauffeur-media img { aspect-ratio: 16 / 10; }

  .faq-grid, .booking-grid { grid-template-columns: 1fr; }
  .faq-intro { position: static; }

  .cm-grid { grid-template-columns: 1fr; }
  .cm-specs { grid-template-columns: repeat(3, 1fr); }
}

/* ---------- Large phones ---------- */
@media (max-width: 760px) {
  :root { --fs-body: 0.98rem; }

  .header-inner { height: 68px; }
  .mobile-nav { clip-path: circle(0% at calc(100% - 40px) 34px); }
  .mobile-nav.is-open { clip-path: circle(160% at calc(100% - 40px) 34px); }

  .hero { padding-top: 68px; min-height: 100svh; }
  .hero-content { padding-top: 3.5vh; }
  .hero-sub { font-size: 1rem; }
  .hero-actions .btn { flex: 1 1 auto; text-align: center; }
  .hero-scroll { display: none; }

  .hero-search { grid-template-columns: 1fr; translate: 0 1.6rem; }
  .hs-field { border-right: 0; padding: 0.95rem 1.2rem; }

  .stats-grid { grid-template-columns: repeat(2, 1fr); gap: 0; }
  .stat { border-left: 0; border-top: 1px solid var(--line-soft); padding: 1.3rem 0.5rem; }
  .stat:nth-child(-n+2) { border-top: 0; }

  .fleet-grid { grid-template-columns: 1fr; gap: 1.3rem; }
  .fleet-tools select { flex: 1 1 45%; }
  .section-head.split { flex-direction: column; align-items: flex-start; gap: 1.2rem; }

  .feat-card { flex-basis: 88vw; aspect-ratio: 16 / 12.5; }
  .feat-info { max-width: 100%; }
  .feat-specs { gap: 0.7rem; }

  .why-grid { grid-template-columns: repeat(2, 1fr); gap: 0.9rem; }
  .why-card { padding: 1.4rem 1.2rem; }

  .loc-grid { grid-template-columns: repeat(2, 1fr); gap: 0.8rem; }

  .how-steps { grid-template-columns: 1fr; row-gap: 2.2rem; }
  .how-step::before { display: none; }

  .experience { min-height: 78vh; }

  .review-card { flex-basis: 86vw; padding: 1.6rem 1.4rem; }

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

  .cta-actions .btn { width: 100%; }

  .footer-grid { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .f-brand { grid-column: 1 / -1; }
  .footer { padding-bottom: 84px; }
  .footer-bottom { justify-content: center; text-align: center; }

  /* floating stack: bar visible, fabs raised above it */
  .mobile-book-bar { display: flex; }
  .fab-wa { bottom: calc(84px + env(safe-area-inset-bottom)); width: 50px; height: 50px; }
  .fab-call { bottom: calc(84px + 60px + env(safe-area-inset-bottom)); width: 50px; height: 50px; }
  .back-top { left: auto; right: 1.4rem; bottom: calc(84px + 120px + env(safe-area-inset-bottom)); width: 44px; height: 44px; }

  .cm-specs { grid-template-columns: repeat(2, 1fr); }
  .cm-hero { aspect-ratio: 16 / 10; }
  .modal { padding: 0.6rem; align-items: end; }
  .modal-panel { max-height: 94svh; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }

  .success-card { padding: 2.2rem 1.8rem; margin-inline: 1rem; }
}

/* ---------- Small phones ---------- */
@media (max-width: 420px) {
  :root { --gutter: 1rem; }

  .logo-text { font-size: 1rem; }

  .why-grid { grid-template-columns: 1fr; }
  .loc-grid { grid-template-columns: 1fr 1fr; }
  .chip { padding: 0.48rem 1rem; font-size: 0.74rem; }

  .car-actions { flex-direction: column; }
  .fleet-tools select { flex: 1 1 100%; }

  .feat-card { aspect-ratio: 4 / 4; }
  .review-card { flex-basis: 92vw; }

  .cm-specs { grid-template-columns: 1fr 1fr; gap: 0.6rem; }
  .footer-grid { grid-template-columns: 1fr; }

  .mbb-info span { display: none; }
}

/* ---------- Short landscape phones ---------- */
@media (max-height: 500px) and (orientation: landscape) {
  .hero { min-height: 140vh; }
  .mobile-nav { justify-content: flex-start; overflow-y: auto; padding-top: 5rem; }
  .m-link { font-size: 1.3rem; }
}

/* ---------- Touch devices: disable custom cursor & magnetic ---------- */
@media (hover: none) {
  .cursor-dot, .cursor-ring { display: none !important; }
}
