/* ============================================================
   responsive.css — tablet & mobile breakpoints
   ============================================================ */

/* ---------- Tablet ---------- */
@media (max-width: 980px) {
  .hero__grid { grid-template-columns: 1fr; gap: var(--s5); }
  .hero__visual { max-width: 460px; margin: 0 auto; }
  .grid-4 { grid-template-columns: repeat(2, 1fr); }
  .grid-3 { grid-template-columns: repeat(2, 1fr); }
  .steps { grid-template-columns: repeat(2, 1fr); }
  .split, .footer__grid { grid-template-columns: 1fr; gap: var(--s5); }
  .footer__grid { grid-template-columns: 1fr 1fr; }

  /* Mobile nav */
  .nav__menu, .nav__phone, .nav__cta { display: none; }
  .burger { display: block; }
  .nav__mobile {
    display: block; position: fixed; inset: 76px 0 auto 0;
    background: #fff; border-bottom: 1px solid var(--line);
    box-shadow: var(--shadow-lg); padding: var(--s2) var(--s3) var(--s4);
    transform: translateY(-120%); transition: transform .35s var(--ease);
    max-height: calc(100vh - 76px); overflow-y: auto; z-index: 55;
  }
  .nav__mobile.open { transform: translateY(0); }
  .nav__mobile ul { list-style: none; padding: 0; margin: 0; }
  .nav__mobile > ul > li > a, .nav__mobile .m-group > span {
    display: block; font-family: var(--font-display); font-weight: 600;
    padding: 14px 8px; color: var(--navy); border-bottom: 1px solid var(--line);
  }
  .nav__mobile .m-sub { padding-left: var(--s2); }
  .nav__mobile .m-sub a { display: block; padding: 10px 8px; color: var(--muted); font-size: .95rem; }
  .nav__mobile .btn { width: 100%; justify-content: center; margin-top: var(--s2); }
}

/* ---------- Mobile ---------- */
@media (max-width: 620px) {
  body { font-size: 16px; }
  .section { padding: var(--s8) 0; }
  .section--tight { padding: var(--s7) 0; }
  .container { padding: 0 var(--s2); }
  .grid-4, .grid-3, .grid-2, .steps { grid-template-columns: 1fr; }
  .footer__grid { grid-template-columns: 1fr; }
  .form .row { grid-template-columns: 1fr; }
  .hero { padding: var(--s7) 0 var(--s8); }
  .hero__actions .btn { width: 100%; justify-content: center; }
  .cta-band { padding: var(--s5) var(--s3); }
  .cta-band__actions .btn { width: 100%; justify-content: center; }
  .hero__badge { display: none; }
  .section-head { margin-bottom: var(--s5); }
  .float-actions { right: 14px; bottom: 14px; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* ---------- Print ---------- */
@media print {
  .header, .announce, .float-actions, .footer, .cta-band { display: none; }
  body { background: #fff; }
}
