.wpcf7-form .floating-group {
  position: relative;
}

.wpcf7-form .floating-group label {
  position: absolute;
  top: 17px;
  left: 12px;
  color: #6B7280;
  background: transparent; /* sem fundo por padrão */
  display: inline-block; /* ← faz o fundo se ajustar ao texto */
  width: auto;           /* ← garante que o label não ocupe toda a largura */
  padding: 0 5px;
  line-height: 1;        /* opcional, melhora o alinhamento */
  transition: 0.2s ease all;
  pointer-events: none;
  white-space: nowrap;   /* impede quebra de linha no label */
  font-weight: 500;
}

.wpcf7-form .floating-group input,
.wpcf7-form .floating-group textarea {
  width: 100%;
  padding: 14px 12px;
  border: 1px solid #D1D5DB;
  border-radius: 6px;
  outline: none;
  font-size: 15px;
  transition: border-color 0.2s;
  background-color: #F9FAFB !important;
}

.wpcf7-form .floating-group input:focus,
.wpcf7-form .floating-group textarea:focus {
  border-color: #0073aa;
}

.wpcf7-form .floating-group input:focus + label,
.wpcf7-form .floating-group input:not(:placeholder-shown) + label,
.wpcf7-form .floating-group textarea:focus + label,
.wpcf7-form .floating-group textarea:not(:placeholder-shown) + label {
  background: #fff; /* ativa o fundo apenas no floating */
  top: -8px;
  left: 10px;
  font-size: 12px;
  color: #0073aa;
}

.wpcf7-form-control.wpcf7-text,
.wpcf7-form-control.wpcf7-email,
.wpcf7-form-control.wpcf7-tel {
	height: 45px; /* Altura total dos campos */
}

/* container geral do formulário */
.wpcf7 form {
  display: flex;
  flex-direction: column;
  gap: 8px; /* espaçamento vertical padrão entre todos os blocos */
  margin-bottom: 0px; /* margin do final do formulário */
}

/* container duas colunas */
.wpcf7 form .duas-colunas {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px; /* 15px vertical, 20px horizontal */
}

/* cada campo dentro das colunas */
.wpcf7 form .duas-colunas .formulario-item {
  flex: 1 1 calc(50% - 10px);
  box-sizing: border-box;
}

/* campos full width */
.formulario-item-full {
  width: 100%;
}

/* remover margens antigas */
.wpcf7 form .formulario-item,
.wpcf7 form .formulario-item-full {
  margin-bottom: 0;
}

/* garante que o wrapper interno ocupe 100% */
.wpcf7 form .formulario-item .floating-group,
.wpcf7 form .formulario-item-full .floating-group {
  width: 100%;
  box-sizing: border-box;
}

/* responsivo */
@media (max-width: 767px) {
  .wpcf7 form .duas-colunas {
    flex-direction: column;
    gap: 8px; /* mantém o mesmo espaçamento entre campos no mobile */
  }

  .wpcf7 form .duas-colunas .formulario-item {
    flex: 1 1 100%;
  }
}

/* avisos de erro do formulário */
.wpcf7 .wpcf7-not-valid-tip {
    background-color: #f1f1f100 !important;
    font-size: 13px !important;
    margin-top: -15px !important;
}

.wpcf7 .wpcf7-not-valid-tip:after {
    display: none;
}

/* Asterisco vermelho nos campos obrigatórios */
.wpcf7-form .floating-group input[aria-required="true"] + label::after,
.wpcf7-form .floating-group textarea[aria-required="true"] + label::after {
  content: "*";
  color: #F87171; /* vermelho */
  font-weight: 600;
  margin-left: 2px;
}