/* ========================================
   CotaSaúde - Estilos Principais
   ======================================== */

/* Smooth scroll e ajustes globais */
html {
  scroll-behavior: smooth;
  overflow-x: hidden;
}

body {
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

/* Step transitions */
.form-step {
  display: none;
  animation: fadeIn .3s ease;
}

.form-step.active {
  display: block;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Progress bar animation */
.progress-fill {
  transition: width .4s ease;
}

/* Botão WhatsApp flutuante */
.wa-float {
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 50;
  box-shadow: 0 8px 24px rgba(22, 163, 74, 0.35);
}

/* Ajuste Flowbite overrides para o estilo corporativo */
.form-control-custom:focus {
  border-color: #16A34A;
  box-shadow: 0 0 0 3px rgba(22, 163, 74, 0.15);
}

/* Campo inválido */
.field-error {
  border-color: #DC2626 !important;
  box-shadow: 0 0 0 3px rgba(220, 38, 38, 0.1) !important;
}

.error-msg {
  color: #DC2626;
  font-size: 12px;
  margin-top: 4px;
  display: none;
}

.error-msg.show {
  display: block;
}

/* Hero subtle bg */
.hero-bg {
  background:
    radial-gradient(ellipse 80% 60% at 85% 10%, rgba(22, 163, 74, 0.06), transparent 60%),
    radial-gradient(ellipse 70% 70% at 0% 100%, rgba(10, 37, 64, 0.04), transparent 60%),
    linear-gradient(180deg, #F7F9FC 0%, #FFFFFF 100%);
}

/* Plan card accent line */
.plan-card {
  position: relative;
  overflow: hidden;
  transition: all .25s ease;
}

.plan-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  background: #0A2540;
  transition: all .25s ease;
}

.plan-card:hover::before {
  width: 5px;
  background: #16A34A;
}

.plan-card:hover {
  transform: translateY(-4px);
}

/* Honeypot - oculto para humanos */
.hp-field {
  position: absolute;
  left: 0;
  opacity: 0;
  height: 0;
  width: 0;
  overflow: hidden;
  pointer-events: none;
  tab-index: -1;
  clip: rect(0, 0, 0, 0);
}
