.cb-form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Groupe champ + erreur */
.cb-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

/* Inputs / textarea */
.cb-input {
  width: 100%;
  padding: 13px 16px;
  background: rgba(255, 255, 255, 0.08);
  border: 1.5px solid rgba(255, 255, 255, 0.28);
  color: #fff;
  font-family: var(--f-body);
  font-size: 14px;
  line-height: 1.5;
  outline: none;
  transition:
    border-color 0.2s ease,
    background 0.2s ease,
    box-shadow 0.2s ease;
}

.cb-input::placeholder {
  color: rgba(255, 255, 255, 0.48);
}

.cb-input:hover {
  background: rgba(255, 255, 255, 0.11);
  border-color: rgba(255, 255, 255, 0.42);
}

.cb-input:focus {
  background: rgba(255, 255, 255, 0.14);
  border-color: #fff;
  box-shadow: inset 3px 0 0 #fff;
}

textarea.cb-input {
  min-height: 110px;
  resize: vertical;
}

/* Champ invalide */
.form-input--error {
  border-color: #ffd1d1 !important;
  background: rgba(255, 0, 0, 0.13);
  box-shadow: inset 3px 0 0 #ffd1d1;
}

/* Message d'erreur sous chaque champ */
.form-error {
  min-height: 15px;
  font-family: var(--f-mono);
  font-size: 9px;
  line-height: 1.4;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #ffd1d1;
}

/* Messages globaux */
.form-error-global,
.form-success {
  padding: 13px 15px;
  font-family: var(--f-body);
  font-size: 13px;
  line-height: 1.5;
  border-left: 4px solid currentColor;
}

/* Erreur globale */
.form-error-global {
  background: rgba(120, 0, 0, 0.28);
  border-color: #ffd1d1;
  color: #fff;
}

/* Succès */
.form-success {
  background: rgba(255, 255, 255, 0.14);
  border-color: #fff;
  color: #fff;
}

/* Bouton */
.btn-white {
  width: fit-content;
  background: #fff;
  color: var(--blue);
  padding: 13px 24px;
  font-family: var(--f-cond);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1.5px solid #fff;
  cursor: pointer;
  transition:
    background 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease,
    opacity 0.2s ease;
}

.btn-white:hover {
  background: transparent;
  color: #fff;
  transform: translateY(-1px);
}

.btn-white:disabled {
  cursor: not-allowed;
  opacity: 0.7;
  transform: none;
}

#ad-btn-loader {
  font-family: var(--f-mono);
  font-size: 10px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

@media (max-width: 768px) {
  .btn-white {
    width: 100%;
    text-align: center;
  }

  .cb-input {
    font-size: 13px;
  }
}