:root{--blue1:#1e3a8a;--blue2:#2563eb}
.gradient-bg{background:linear-gradient(135deg,var(--blue1) 0%,var(--blue2) 100%)}
.text-gradient{background:linear-gradient(90deg,var(--blue1),var(--blue2));-webkit-background-clip:text;background-clip:text;color:transparent}
@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-20px)}100%{transform:translateY(0)}}
@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.05)}100%{transform:scale(1)}}
@keyframes slideIn{from{transform:translateX(-100%)}to{transform:translateX(0)}}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.floating{animation:float 6s ease-in-out infinite}.pulse-btn{animation:pulse 2s infinite}.slide-in{animation:slideIn 1s ease-out forwards}
.hover-grow{transition:transform .3s ease}.hover-grow:hover{transform:scale(1.05)}
.marquee{animation:marquee 20s linear infinite;white-space:nowrap}
.mobile-menu{transition:all .25s ease;transform-origin:top}.mobile-menu.hidden{opacity:0;transform:scaleY(0);height:0;overflow:hidden}.mobile-menu:not(.hidden){opacity:1;transform:scaleY(1);height:auto}
.btn-primary{background:var(--blue2);color:#fff;font-weight:700;padding:.9rem 1.25rem;border-radius:.7rem;box-shadow:0 12px 24px -12px rgba(37,99,235,.5);display:inline-block;text-align:center;transition:transform .15s,background .15s}
.btn-primary:hover{transform:translateY(-2px);background:#1f4fd7}
.btn-outline{border:2px solid var(--blue2);color:var(--blue2);font-weight:700;padding:.9rem 1.25rem;border-radius:.7rem;display:inline-block;text-align:center}
.btn-outline:hover{background:#eff6ff}
.card{background:#fff;padding:1.5rem;border-radius:1rem;box-shadow:0 10px 25px -15px rgba(0,0,0,.25)}
.card-icon{width:3.5rem;height:3.5rem;background:#dbeafe;border-radius:999px;display:flex;align-items:center;justify-content:center;margin-bottom:1rem}
.card-title{font-weight:700;font-size:1.2rem;margin-bottom:.4rem}
.card-cta{margin-top:1rem;display:inline-block;color:var(--blue2);font-weight:600}
.card:hover{transform:translateY(-3px);transition:transform .2s}
.team-card{background:#f9fafb;border-radius:1rem;overflow:hidden;box-shadow:0 10px 25px -15px rgba(0,0,0,.2)}
.team-gradient{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(0deg,rgba(0,0,0,.65),transparent);padding:1rem}
.glass{background:rgba(255,255,255,.1);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.2)}
.form-input{width:100%;padding:.8rem 1rem;border:1px solid #d1d5db;border-radius:.75rem;background:#fff}
.form-input:focus{outline:none;border-color:var(--blue2);box-shadow:0 0 0 3px rgba(37,99,235,.15)}
.whatsapp-float{position:fixed;right:2rem;bottom:2rem;background:#22c55e;color:#fff;width:4rem;height:4rem;border-radius:999px;display:flex;align-items:center;justify-content:center;box-shadow:0 18px 30px -12px rgba(34,197,94,.6);transition:transform .15s,background .15s;z-index:50}
.whatsapp-float:hover{transform:translateY(-2px);background:#16a34a}


/* ===== Responsividade e prevenção de overflow ===== */
html, body {
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

img, video, iframe {
  max-width: 100%;
  height: auto;
  border: 0;
  display: block;
}

section, header, footer, .container {
  width: 100%;
}

.marquee-wrap { overflow-x: hidden; }

/* Botões flexíveis no mobile */
.btn-primary, .btn-outline {
  min-width: 0;
  width: 100%;
}
@media (min-width: 640px) {
  .btn-primary, .btn-outline { width: auto; }
}

/* Corrige possíveis 100vw offsets em dispositivos com barra de rolagem */
:root {
  overflow-y: auto;
  overflow-x: hidden;
}

.fixed, .absolute {
  max-width: 100vw;
}

/* Bolha do WhatsApp com limites responsivos */
.whatsapp-float {
  right: clamp(1rem, 2.5vw, 2rem);
  bottom: clamp(1rem, 2.5vw, 2rem);
}

/* Força quebra de palavra em textos longos dentro de cartões/links */
.card, .team-card, a, p, h1, h2, h3, h4 {
  word-wrap: break-word;
  overflow-wrap: anywhere;
}

/* Garante que o menu mobile não cause overflow ao abrir */
.mobile-menu {
  width: 100%;
  max-width: 100%;
}

/* Evita que elementos com translate causem rolagem horizontal */
.floating, .slide-in, .hover-grow {
  will-change: transform;
  transform-origin: center;
}
