/* Enhanced Contact Form Styles */

.form-group {
  position: relative;
  margin-bottom: 20px;
}

.form-error {
  color: var(--errorColor);
  font-size: 0.8rem;
  display: block;
  margin-top: 5px;
  min-height: 18px;
}

.char-counter {
  position: absolute;
  bottom: 5px;
  right: 10px;
  font-size: 0.8rem;
  color: var(--fontSecondaryColor);
  pointer-events: none;
}

@media (max-width: 576px) {
  .char-counter {
    position: static;
    text-align: right;
    margin-top: -15px;
    margin-bottom: 10px;
  }
}

.form-status {
  padding: 15px;
  margin-top: 20px;
  border-radius: var(--border-radius-md);
  text-align: center;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.form-status:not(:empty) {
  opacity: 1;
}

.form-status.success {
  background: rgba(46, 196, 182, 0.1);
  color: var(--successColor);
  border-left: 4px solid var(--successColor);
}

.form-status.error {
  background: rgba(230, 57, 70, 0.1);
  color: var(--errorColor);
  border-left: 4px solid var(--errorColor);
}

.submit-btn {
  position: relative;
  overflow: hidden;
}

.submit-btn:disabled {
  opacity: 0.7;
  cursor: not-allowed;
  background: var(--cardBackground);
  color: var(--fontSecondaryColor);
  box-shadow: none;
}

.submit-btn:disabled::before {
  display: none;
}

/* Input focus styles */
form input:focus, form textarea:focus, form select:focus {
  border-color: var(--highlightColor);
  box-shadow: 0 0 0 3px rgba(67, 97, 238, 0.2);
}

/* Input validation styles */
form input:invalid:not(:placeholder-shown),
form textarea:invalid:not(:placeholder-shown) {
  border-color: var(--errorColor);
}

form input:valid:not(:placeholder-shown),
form textarea:valid:not(:placeholder-shown) {
  border-color: var(--successColor);
}

/* Custom select arrow */
select {
  appearance: none;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23BBBBBB%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: right 12px top 50%;
  background-size: 12px auto;
  padding-right: 30px;
}

/* reCAPTCHA responsive styles */
.g-recaptcha {
  margin-bottom: 20px;
}

@media (max-width: 320px) {
  .g-recaptcha {
    transform: scale(0.85);
    transform-origin: 0 0;
  }
}