/* Ajustes exclusivamente responsivos. O layout de desktop permanece inalterado. */
@media (max-width: 860px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  img,
  video,
  svg,
  iframe {
    max-width: 100%;
  }

  header {
    min-height: 64px;
    padding: 14px 18px;
  }

  .logo {
    min-width: 0;
  }

  .hamburger,
  .mobile-close,
  .scroll-top,
  .whatsapp-float,
  .wa-float {
    min-width: 44px;
    min-height: 44px;
  }

  /* A gaveta fechada usa transform para não aumentar a largura da página. */
  .mobile-nav {
    right: 0;
    width: min(320px, calc(100vw - 24px));
    max-width: 100%;
    transform: translateX(105%);
    transition: transform .3s ease;
  }

  .mobile-nav.open {
    right: 0;
    transform: translateX(0);
  }

  .mobile-nav > a,
  .mobile-group-trigger,
  .mobile-submenu a {
    min-height: 44px;
  }

  section,
  .breadcrumb,
  .hero-content,
  .hero-inner,
  .svc-hero-inner {
    padding-left: 20px;
    padding-right: 20px;
  }

  h1,
  h2,
  h3,
  p,
  a {
    overflow-wrap: break-word;
  }

  .split,
  .split.reverse,
  .servicos-grid,
  .radar-cards,
  .features-grid,
  .related-grid,
  .roadmap-grid,
  .contato-wrap {
    grid-template-columns: minmax(0, 1fr);
  }

  .split > *,
  .features-grid > *,
  .related-grid > *,
  .roadmap-grid > *,
  .contato-wrap > * {
    min-width: 0;
  }

  .footer-top {
    flex-direction: column;
  }

  .footer-left {
    flex: none;
    width: 100%;
    padding: 36px 20px;
  }

  .footer-columns {
    width: 100%;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px 20px;
    padding: 32px 20px;
  }

  .footer-col {
    min-width: 0;
  }

  input,
  select,
  textarea {
    max-width: 100%;
    font-size: 16px;
  }

  .diag-form.wa-panel {
    right: 16px;
    bottom: 88px;
    width: calc(100vw - 32px);
    max-height: calc(100dvh - 112px);
    overflow-y: auto;
  }
}

@media (max-width: 520px) {
  section {
    padding-top: 52px;
    padding-bottom: 52px;
  }

  .hero,
  .svc-hero {
    min-height: 100svh;
  }

  .hero-content h1,
  .hero-inner h1,
  .svc-hero h1 {
    font-size: clamp(28px, 9vw, 38px);
    line-height: 1.16;
  }

  .hero-cta-row,
  .cta-row,
  .actions,
  .contato-form .row,
  .form-row,
  .phone-row {
    align-items: stretch;
    flex-direction: column;
    grid-template-columns: minmax(0, 1fr);
  }

  .hero-cta-row .cta-btn,
  .hero-cta-row .cta-ghost,
  .cta-row .cta-btn,
  .cta-row .cta-ghost,
  .final-cta .cta-btn {
    width: 100%;
    min-height: 48px;
    text-align: center;
  }

  .timeline {
    grid-template-columns: minmax(0, 1fr);
  }

  .footer-columns {
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
  }

  .final-cta {
    padding: 64px 20px;
  }

  .serv-card,
  .feature-card,
  .related-card {
    padding-left: 20px;
    padding-right: 20px;
  }

  .scroll-top {
    right: 18px;
    bottom: 18px;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
