/* Correções de responsividade e navegação mobile */
html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}
@supports (overflow: clip) {
  html, body { overflow-x: clip; }
}
body { position: relative; }
header, main, footer, section { width: 100%; max-width: 100%; }
.wrap, .nav, .hero-grid, .contact-grid, .ba-block, .footer-grid, .footer-links, .footer-bottom,
.services-grid, .gallery-grid, .action-gallery, .process-grid, .testi-grid {
  min-width: 0;
}
.hero-grid > *, .contact-grid > *, .ba-block > *, .footer-grid > *, .footer-links > *,
.services-grid > *, .gallery-grid > *, .action-gallery > *, .process-grid > *, .testi-grid > * {
  min-width: 0;
}
.footer-links { flex-wrap: wrap; }
.info-block a, .info-block p, .footer-links a, .footer-bottom span, .social-labels, input, textarea, select {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}
input, textarea, select, button { min-width: 0; }

/* O botão fica preso ao ecrã, não à largura do conteúdo. */
.whatsapp-fab {
  position: fixed !important;
  right: max(16px, env(safe-area-inset-right, 0px)) !important;
  bottom: calc(18px + env(safe-area-inset-bottom, 0px)) !important;
  z-index: 9999 !important;
  flex: 0 0 auto;
  touch-action: manipulation;
}

@media (max-width: 860px) {
  .nav { padding-left: 20px; padding-right: 20px; }
  .mobile-menu a { padding-left: 20px; padding-right: 20px; }
  .mobile-menu a.nav-cta { margin-left: 20px; margin-right: 20px; }
  .hero h1 { max-width: 100%; }
  .hero-copy, .hero-visual { min-width: 0; }
}

@media (max-width: 720px) {
  .wrap { width: 100%; max-width: 100%; padding-left: 18px; padding-right: 18px; }
  .nav { width: 100%; max-width: 100%; padding: 10px 18px; }
  .brand { min-width: 0; }
  .brand img { height: 44px; max-width: 150px; }

  .hero { padding-top: 52px; }
  .hero h1 { font-size: clamp(34px, 10.8vw, 46px); letter-spacing: -0.025em; }
  .hero p.lede { font-size: 16px; }
  .hero-ctas { gap: 10px; }
  .hero-ctas .btn { width: 100%; text-align: center; }
  .hero-visual { min-height: 330px; }
  .hero-visual img { max-height: 330px; }
  .hero-badge {
    left: 18px;
    right: 18px;
    max-width: calc(100% - 36px);
  }

  .trust .wrap { gap: 20px; }
  .trust-item { flex: 1 1 42%; min-width: 0; }

  .footer-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
    margin-bottom: 26px;
  }
  .footer-brand { width: 100%; }
  .footer-links {
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px 18px;
    font-size: 14px;
  }
  .footer-links a {
    display: block;
    line-height: 1.35;
    min-width: 0;
  }
  .footer-bottom {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    padding-top: 18px;
  }
  footer { padding-bottom: 96px; }

  .whatsapp-fab {
    width: 56px !important;
    height: 56px !important;
  }
}

@media (max-width: 430px) {
  section { padding-top: 56px; padding-bottom: 56px; }
  .brand img { height: 40px; max-width: 135px; }
  .hero-visual { min-height: 300px; }
  .hero-visual img { max-height: 300px; }
  .trust-item { flex-basis: 100%; }
  .footer-links { gap: 10px 14px; }
  .footer-bottom { font-size: 12.5px; }
}
