/* Toques visuais suaves e orbes flutuantes */
.floating-orb {
  position: absolute;
  border-radius: 9999px;
  filter: blur(30px);
  opacity: 0.5;
  animation: float 12s ease-in-out infinite;
}
.orb-1 { width: 240px; height: 240px; background: radial-gradient(circle at 30% 30%, rgba(99,102,241,.5), rgba(56,189,248,.25)); top: -40px; right: -60px; }
.orb-2 { width: 320px; height: 320px; background: radial-gradient(circle at 60% 60%, rgba(56,189,248,.5), rgba(99,102,241,.25)); bottom: -80px; left: -80px; animation-delay: 3s; }

@keyframes float {
  0% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-12px) translateX(6px); }
  100% { transform: translateY(0) translateX(0); }
}

/* Form controls — comfortable sizing and padding */
input[type="text"],
input[type="tel"],
input[type="email"],
input[type="number"],
input[type="password"],
select,
textarea {
  padding: 0.625rem 0.75rem; /* py-2.5 px-3 */
  font-size: 1rem;          /* text-base */
  line-height: 1.5;         /* leading-normal */
  border-radius: 0.5rem;    /* rounded-lg */
  border: 1px solid #cbd5e1;/* slate-300 */
  min-height: 44px;         /* touch-friendly */
  background-color: #ffffff;
}

/* Typography — justify paragraphs and quotes for better reading rhythm */
p,
blockquote {
  text-align: justify;
  text-justify: inter-word;
}

textarea {
  min-height: 120px;
  resize: vertical;
}

/* Ensure textarea styles always apply (override resets/utilities) */
form textarea,
textarea {
  padding: 0.625rem 0.75rem !important;
  min-height: 140px !important;
  font-size: 1rem !important;
  line-height: 1.5 !important;
}

/* Keep checkboxes and radios compact */
input[type="checkbox"],
input[type="radio"] {
  min-height: auto;
  padding: 0;
}
