/* =========================================================
   ASVA TRANSPORT SOLUTIONS — Responsive Layer
   Breakpoints: 1200 / 992 / 768 / 576 / 400
   ========================================================= */

@media (max-width: 1300px) {
  .nav__menu { gap: 0; }
  .nav__menu > li > a { padding: 9px 9px; font-size: .86rem; }
  .nav__actions .nav__login { font-size: .85rem; }
  .nav__actions .btn { padding: 10px 16px; font-size: .85rem; }
}

@media (max-width: 1200px) {
  :root { --container: 1040px; }
}

@media (max-width: 1080px) {
  :root { --nav-h: 74px; }
  .section { padding: 72px 0; }

  /* Collapse the desktop menu into a drawer */
  .nav__toggle { display: grid; place-items: center; }
  .nav__menu, .nav__actions--desktop {
    position: fixed; top: 0; right: -320px; width: 300px; max-width: 84vw; height: 100vh;
    background: #fff; flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 0; padding: 90px 22px 30px;
    box-shadow: -14px 0 40px rgba(10,31,64,.18); z-index: 1100; transition: right .35s var(--ease);
    overflow-y: auto;
  }
  .nav__menu.open, .nav__actions--desktop.open { right: 0; }
  .nav__menu > li { border-bottom: 1px solid var(--line); }
  .nav__menu > li > a { padding: 15px 6px; font-size: 1rem; border-radius: 0; }
  .nav__menu > li > a::after { display: none; }
  .nav__drawer-actions { display: flex; flex-direction: column; gap: 12px; margin-top: 22px; }
  .nav__drawer-actions .btn { width: 100%; }
  .nav__actions--desktop { display: none; }

  /* Keep action visibility in sync with the drawer breakpoint (overrides Bootstrap d-lg-* which flips at 992px) */
  .nav__actions .nav__login,
  .nav__actions .btn-primary { display: none !important; }
  .nav__menu > li.d-lg-none { display: list-item !important; }
  .nav__menu > li.nav__drawer-actions { display: flex !important; }

  .hero { min-height: 78vh; text-align: left; }
  .hero__inner { padding: 60px 0; }
  .about-media { margin-bottom: 30px; }
  .steps-row::before { display: none; }
  .gps-metrics { grid-template-columns: repeat(2, 1fr); }
  .legal-toc { position: static; margin-bottom: 30px; }
}

@media (max-width: 768px) {
  body { font-size: 15.5px; }
  .section { padding: 60px 0; }
  .topbar { display: none; }
  .topbar--slim { display: block; height: auto; padding: 8px 0; }
  .topbar--slim .topbar__info { justify-content: center; gap: 16px; font-size: .78rem; flex-wrap: wrap; }
  .topbar--slim .topbar__cta { display: none; }

  .hero__stats { gap: 22px; }
  .hero__stat b { font-size: 1.5rem; }
  .hero__actions .btn { flex: 1 1 auto; }
  .sec-head { margin-bottom: 40px; }
  .cta-band { padding: 60px 0; }
  .cta-band .hero__actions .btn { flex: 1 1 100%; }

  .footer { padding-top: 56px; text-align: left; }
  .footer__bottom .container { flex-direction: column; text-align: center; }
  .card { padding: 28px 24px; }
  .form-card { padding: 26px; }
  .timeline::before { left: 18px; }
  .tl-item { padding-left: 56px; }
  .tl-item__dot { left: 6px; }
}

@media (max-width: 576px) {
  :root { --nav-h: 68px; }
  .nav__logo img { height: 40px; }
  h1 { font-size: 1.9rem; }
  .section-title { font-size: 1.65rem; }
  .hero h1 { font-size: 2rem; }
  .hero__sub { font-size: 1rem; }
  .gps-metrics { grid-template-columns: repeat(2, 1fr); }
  .counter b { font-size: 2.2rem; }
  .btn { padding: 12px 22px; font-size: .9rem; }
  .float-wa { width: 52px; height: 52px; font-size: 1.3rem; }
  .float-quote { left: 16px; bottom: 16px; padding: 13px 15px; font-size: 0; gap: 0; }
  .float-quote i { font-size: 1.3rem; }
}

@media (max-width: 400px) {
  .hero__actions { flex-direction: column; }
  .hero__actions .btn { width: 100%; }
  .topbar--slim .topbar__info span:nth-child(3) { display: none; }
}

/* Print — legal pages */
@media print {
  .header, .topbar, .footer, .float-wa, .back-top, .page-hero, .legal-toc, .cta-band { display: none !important; }
  body { color: #000; }
  .legal-body { max-width: 100%; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  [data-aos] { opacity: 1 !important; transform: none !important; }
}
