:root {
      --azul: #0047AB;
      --azul-dark: #003b8e;
      --azul-light: #1a5fc4;
      --verde: #008040;
      --verde-light: #009950;
      --verde-glow: #00b359;
      --cinza-claro: #EBF3FF;
      --cinza-medio: #E2EAF5;
    }

    * { box-sizing: border-box; }

    body {
      font-family: 'Montserrat', sans-serif;
      background-color: #EBF3FF;
      color: #1a1a2e;
      overflow-x: hidden;
      max-width: 100vw;
    }

    html { scroll-behavior: smooth; overflow-x: hidden; }

    @keyframes shimmer {
      0% { transform: translateX(-100%); }
      100% { transform: translateX(100%); }
    }

    @keyframes float {
      0%, 100% { transform: translateY(0px); }
      50% { transform: translateY(-12px); }
    }

    @keyframes fadeInUp {
      from { opacity: 0; transform: translateY(30px); }
      to { opacity: 1; transform: translateY(0); }
    }

    @keyframes fadeInLeft {
      from { opacity: 0; transform: translateX(-30px); }
      to { opacity: 1; transform: translateX(0); }
    }

    @keyframes fadeInRight {
      from { opacity: 0; transform: translateX(30px); }
      to { opacity: 1; transform: translateX(0); }
    }

    @keyframes pulse-glow {
      0%, 100% { box-shadow: 0 0 20px rgba(0,71,171,0.4), 0 0 40px rgba(0,71,171,0.2); }
      50% { box-shadow: 0 0 30px rgba(0,71,171,0.7), 0 0 60px rgba(0,71,171,0.3); }
    }

    @keyframes rotateSlow {
      from { transform: rotate(0deg); }
      to { transform: rotate(360deg); }
    }

    @keyframes scaleIn {
      from { opacity: 0; transform: scale(0.8); }
      to { opacity: 1; transform: scale(1); }
    }

    .animate-fadeInUp { animation: fadeInUp 0.8s ease-out forwards; }
    .animate-fadeInLeft { animation: fadeInLeft 0.8s ease-out forwards; }
    .animate-fadeInRight { animation: fadeInRight 0.8s ease-out forwards; }
    .animate-float { animation: float 4s ease-in-out infinite; }
    .animate-pulse-glow { animation: pulse-glow 2.5s ease-in-out infinite; }
    .animate-scaleIn { animation: scaleIn 0.6s ease-out forwards; }
    .delay-100 { animation-delay: 0.1s; }
    .delay-200 { animation-delay: 0.2s; }
    .delay-300 { animation-delay: 0.3s; }
    .delay-400 { animation-delay: 0.4s; }
    .delay-500 { animation-delay: 0.5s; }

    .btn-shimmer {
      position: relative;
      overflow: hidden;
    }
    .btn-shimmer::after {
      content: '';
      position: absolute;
      inset: 0;
      background: transparent;
    }

    .glass {
      background: rgba(255,255,255,0.08);
      backdrop-filter: blur(12px);
      border: 1px solid rgba(255,255,255,0.15);
    }

    .glass-card {
      background: rgba(255,255,255,0.95);
      backdrop-filter: blur(12px);
      border: 1px solid rgba(0,71,171,0.1);
    }

    .hero-bg {
      background-image: url('banner.jpg');
      background-size: cover;
      background-position: center;
      background-repeat: no-repeat;
      position: relative;
      overflow: hidden;
    }

    .hero-bg::before {
      content: '';
      position: absolute;
      inset: 0;
      background: rgba(0,25,80,0.68);
      z-index: 1;
    }

    .section-azul {
      background: #0047AB;
    }

    .glow-azul {
      box-shadow: 0 0 30px rgba(0,71,171,0.35), 0 8px 32px rgba(0,71,171,0.2);
    }

    .glow-verde {
      box-shadow: 0 0 25px rgba(0,128,64,0.35), 0 8px 24px rgba(0,128,64,0.2);
    }

    .card-service {
      transition: all 0.35s cubic-bezier(0.4, 0, 0.2, 1);
      background: #E9F7F2;
      border: 1px solid rgba(0,128,64,0.15);
    }

    .card-service:hover {
      transform: translateY(-8px);
      box-shadow: 0 20px 50px rgba(0,128,64,0.15);
      border-color: rgba(0,128,64,0.35);
    }

    .card-service:hover .service-icon {
      background: #0047AB;
    }

    .card-service:hover .service-icon svg {
      color: white;
    }

    .diff-card {
      transition: all 0.3s ease;
      background: #ffffff;
      border: 1px solid rgba(0,71,171,0.12);
    }

    .diff-card:hover {
      background: #EBF3FF;
      transform: translateY(-4px);
      box-shadow: 0 12px 32px rgba(0,71,171,0.12);
      border-color: rgba(0,71,171,0.25);
    }

    .depo-card {
      background: white;
      border: 1px solid rgba(0,71,171,0.08);
      transition: all 0.3s ease;
    }

    .depo-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 15px 40px rgba(0,71,171,0.12);
    }

    .nav-link {
      position: relative;
      color: #1a1a2e;
      font-size: 0.875rem;
      font-weight: 500;
      transition: color 0.2s;
      padding: 4px 0;
    }

    .nav-link::after {
      content: '';
      position: absolute;
      bottom: -2px;
      left: 0;
      width: 0;
      height: 2px;
      background: #008040;
      transition: width 0.3s ease;
    }

    .nav-link:hover { color: #0047AB; }
    .nav-link:hover::after { width: 100%; }

    .mesh-bg {
      background: #EBF3FF;
    }

    .gradient-text {
      color: #0047AB;
    }

    .faq-content {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.4s ease, padding 0.3s ease;
    }

    .faq-content.open {
      max-height: 300px;
    }

    .faq-btn svg.chevron {
      transition: transform 0.3s ease;
    }
    .faq-btn.active svg.chevron {
      transform: rotate(180deg);
    }

    .stat-card {
      background: rgba(255,255,255,0.16);
      border: 1px solid rgba(255,255,255,0.28);
      backdrop-filter: blur(8px);
    }

    .geo-grid {
      background-image: none;
    }

    .navbar-sticky {
      position: sticky;
      top: 0;
      z-index: 1000;
      background: #ffffff;
      border-bottom: 1px solid rgba(0,71,171,0.1);
      box-shadow: 0 2px 16px rgba(0,71,171,0.08);
    }

    .mobile-menu-link {
      display: block;
      width: 100%;
      padding: 14px 1.5rem;
      color: #1a1a2e;
      font-size: 0.95rem;
      font-weight: 500;
      border-bottom: 1px solid rgba(0,71,171,0.07);
      transition: background 0.2s, color 0.2s;
      text-align: left;
    }

    .mobile-menu-link:hover {
      background: rgba(0,71,171,0.05);
      color: #0047AB;
    }

    @media (max-width: 640px) {
      .btn-wpp-mobile {
        width: 100%;
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        padding: 14px 16px;
        white-space: nowrap;
        max-width: 100%;
        box-sizing: border-box;
      }
    }

.contact-input {
  background: #ffffff !important;
  border: 1.5px solid rgba(0,71,171,0.2) !important;
  color: #1a1a2e !important;
  border-radius: 12px;
}

.contact-input::placeholder {
  color: rgba(26,26,46,0.4) !important;
}

.contact-input:focus {
  border-color: #0047AB !important;
  background: #ffffff !important;
  outline: none;
  box-shadow: 0 0 0 3px rgba(0,71,171,0.1);
}

/* ── Botões: proteção global ── */
button,
input[type="button"],
input[type="submit"] {
    max-width: 100%;
    box-sizing: border-box;
    white-space: nowrap;
    line-height: 1.2;
}

/* ── WhatsApp links: alinhamento ícone+texto em todas as resoluções ── */
a[href*="wa.me"],
a[href*="whatsapp.com"] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    max-width: 100%;
    box-sizing: border-box;
    white-space: nowrap;
    line-height: 1.2;
    text-decoration: none;
}


/* ── Navbar ≤ 767px: remove CTA/WhatsApp no mobile ── */
@media (max-width: 767px) {
    nav a[href*="wa.me"],
    nav a[href*="whatsapp.com"] {
        display: none !important;
    }
}
