/* =====================================================================
   Responsive layers for VasaPMS marketing site.
   Loaded after style.css.
   ===================================================================== */

/* ---- tablet / small desktop ---- */
@media (max-width: 980px) {
  .hero-grid { grid-template-columns: 1fr; }
  .mockup { max-width: 520px; margin-inline: auto; }
  .grid-cards { grid-template-columns: repeat(2, 1fr); }
  .split { grid-template-columns: 1fr; }
  .feature-block .fb-grid,
  .feature-block.reverse .fb-grid { grid-template-columns: 1fr; }
  .feature-block.reverse .fb-head { order: 0; }
  .price-grid { grid-template-columns: 1fr; max-width: 460px; margin-inline: auto; }
  .plan.featured { order: -1; }
  .pillars { grid-template-columns: 1fr; max-width: 460px; margin-inline: auto; }
  .calc { grid-template-columns: 1fr; }
  .compare-row { grid-template-columns: 130px 1fr; gap: 0.8rem; }
  .ap-grid { grid-template-columns: 1fr; }
  .ap-mock { max-width: 480px; margin-inline: auto; width: 100%; }
  .tgrid { grid-template-columns: 1fr; max-width: 520px; margin-inline: auto; }
  .contact-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .stats .container { grid-template-columns: repeat(2, 1fr); gap: 2rem; }
}

/* ---- mobile ---- */
@media (max-width: 720px) {
  .nav-toggle { display: flex; }

  .nav-links {
    position: fixed;
    inset: 72px 0 auto 0;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    background: var(--canvas);
    border-bottom: 1px solid var(--line);
    padding: 0.5rem var(--gutter) 1.2rem;
    transform: translateY(-120%);
    transition: transform 0.35s var(--ease), visibility 0.35s var(--ease);
    box-shadow: var(--shadow);
    /* visibility:hidden guarantees no sliver peeks above the header when closed */
    visibility: hidden;
  }
  .nav-links.open { transform: translateY(0); visibility: visible; }
  .nav-links li { width: 100%; }
  .nav-links a { display: block; width: 100%; padding: 0.9rem 0; border-bottom: 1px solid var(--line); }
  .nav-links a::after { display: none; }

  .nav-actions .btn { display: none; }
  .nav-actions .btn.always { display: inline-flex; padding: 0.65rem 1.1rem; font-size: 0.85rem; }

  .grid-cards { grid-template-columns: 1fr; }
  .tcard { grid-template-columns: 1fr; }
  .tcard img { height: 220px; }
  .fb-list { columns: 1; }
  .field-row { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; gap: 1.6rem; }
  .footer-bottom { flex-direction: column; align-items: flex-start; }
  .stats .container { grid-template-columns: 1fr 1fr; }
  .hero .cta-row .btn { flex: 1; justify-content: center; }
}

@media (max-width: 400px) {
  .stats .container { grid-template-columns: 1fr; }
}
