/* ============================================================
   RM AXIS — responsive.css
   Breakpoints: 1080 (small desktop) · 900 (tablet) · 640 (mobile)
   ============================================================ */

/* ---------- Wide desktop tuning ---------- */
@media (max-width: 1180px) {
  .footer__top { grid-template-columns: 1.3fr 1fr 1.3fr; }
  .footer__col--nav2 { display: none; }
}

/* ---------- Small desktop / large tablet ---------- */
@media (max-width: 1080px) {
  :root { --shell: min(1240px, 100% - 2.5rem); --shell-wide: min(1440px, 100% - 2.5rem); }

  .process { grid-template-columns: repeat(2, 1fr); gap: 2rem 1.6rem; }
  .step__connector { display: none; }

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

/* ---------- Tablet ---------- */
@media (max-width: 900px) {
  :root { --section-y: clamp(3.5rem, 8vw, 6rem); }

  /* Header → mobile nav */
  .nav__toggle { display: block; }
  .nav__menu {
    position: fixed;
    inset: 78px 0 auto 0;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    background: var(--paper);
    border-bottom: 1px solid var(--line);
    padding: 0.5rem 1.5rem 1.5rem;
    box-shadow: 0 30px 60px -40px rgba(27,26,23,0.5);
    transform: translateY(-12px);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .3s var(--ease), transform .3s var(--ease), visibility .3s;
    max-height: calc(100vh - 78px);
    overflow-y: auto;
  }
  body.menu-open .nav__menu {
    opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0);
  }
  .nav__link, .nav__trigger {
    width: 100%;
    padding: 1rem 0;
    font-size: 1rem;
    border-bottom: 1px solid var(--line);
    justify-content: space-between;
  }
  .nav__link::after { display: none; }
  .nav__item--has-menu { position: static; }

  /* Accordion mega-menu on mobile */
  .mega {
    position: static;
    transform: none;
    width: 100%;
    box-shadow: none;
    border: none;
    border-radius: 0;
    padding: 0.2rem 0 0.8rem;
    grid-template-columns: 1fr;
    display: none;
    opacity: 1;
    visibility: visible;
    background: transparent;
  }
  .nav__item--has-menu[aria-expanded="true"] .mega {
    display: grid;
    transform: none;
  }
  .mega__item { padding: 0.7rem 0.6rem; }
  .mega__all { justify-content: flex-start; }
  .nav__actions .nav__cta { display: none; }
  .nav__actions .nav__social { display: none; }
  .nav__menu .nav__cta {
    display: inline-flex;
    justify-content: center;
    margin-top: 1.1rem;
    width: 100%;
  }

  /* Redes sociais dentro do menu mobile (após Contato, antes do CTA) */
  .nav__menu-social { display: block; padding: 1.1rem 0 0.2rem; }
  .nav__menu-social .nav__social { gap: 0.5rem; }
  .nav__menu-social .nav__social a {
    width: 44px; height: 44px; border-radius: 50%;
    border: 1px solid var(--line);
    color: var(--ink-soft);
  }
  .nav__menu-social .nav__social a:hover {
    color: var(--gold); border-color: var(--gold);
    background: rgba(190, 124, 44, 0.06);
  }
  .nav__menu-social .nav__social .ico { width: 20px; height: 20px; display: block; }

  /* Hero */
  .hero__grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .hero__media { max-width: 440px; }
  .hero__watermark { opacity: 0.04; }

  /* Splits stack */
  .split { grid-template-columns: 1fr; gap: 2.2rem; }
  .split--media-left .split__media { order: 0; }
  .split__media { max-width: 520px; }

  .stats { grid-template-columns: 1fr; gap: 2.4rem; text-align: left; }
  .stat__desc { max-width: none; }

  .contact-grid { grid-template-columns: 1fr; gap: 2.6rem; }
  .solutions { grid-template-columns: 1fr; }

  .footer__top { grid-template-columns: 1fr 1fr; }
  .footer__brand { grid-column: 1 / -1; }
}

/* ---------- Mobile ---------- */
@media (max-width: 640px) {
  :root { --shell: min(1240px, 100% - 2.4rem); --shell-wide: min(1440px, 100% - 2.4rem); }
  body { font-size: 1rem; }

  .hero__meta { grid-template-columns: 1fr; }
  .hero__meta > div { padding: 1.1rem 0.2rem; }

  .grid--2, .grid--3 { grid-template-columns: 1fr; }
  .cards--2, .cards--3 { grid-template-columns: 1fr; }
  .process { grid-template-columns: 1fr; gap: 0; }
  .step {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1.1rem;
    padding: 1.2rem 0;
    border-top: 1px solid var(--line);
  }
  .step:last-child { border-bottom: 1px solid var(--line); }
  .step__mark { margin-bottom: 0; }
  .step__connector { display: none; }
  .step__body { padding-top: 0.1rem; }

  .quote { grid-template-columns: 1fr; gap: 0.4rem; }
  .quote__mark { font-size: 3rem; }

  .vstep { grid-template-columns: auto 1fr; gap: 1rem; }
  .btn { padding: 0.85rem 1.4rem; }
  .hero__actions { width: 100%; }
  .hero__actions .btn { flex: 1 1 auto; justify-content: center; }

  .footer__top { grid-template-columns: 1fr; }
  .footer__bottom { flex-direction: column; }
}

/* Very small */
@media (max-width: 380px) {
  .display-1 { font-size: 2.6rem; }
}
