form {
  max-width: 520px;
  margin: 3.5rem auto 5rem auto;
  background: #fff;
  /* Белый фон формы */
  padding: 2.5rem 3rem;
  border-radius: 1.2rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
  color: var(--mono-dark);
  font-family: var(--font-sans, Arial, sans-serif);
  display: flex;
  flex-direction: column;
  gap: 1.4rem;
  text-align: left;
  border: 1.5px solid rgba(200, 200, 200, 0.9);
  transition: box-shadow 0.3s ease;
}

form:hover,
form:focus-within {
  box-shadow: 0 14px 38px rgba(0, 0, 0, 0.18);
}

form h3 {
  font-family: var(--font-serif, 'Cinzel', serif);
  font-size: 2.2rem;
  margin-bottom: 1.6rem;
  color: var(--mono-dark);
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

form label {
  font-size: 1.1rem;
  margin-bottom: 0.35rem;
  color: var(--mono-dark);
  font-weight: 500;
  letter-spacing: 0.02em;
}

form input[type="text"],
form input[type="tel"],
form input[type="email"] {
  padding: 0.7rem 1rem;
  border-radius: 0.7rem;
  border: 2px solid #ddd;
  font-size: 1.1rem;
  font-family: inherit;
  outline: none;
  background: #fff;
  /* Белый фон полей */
  color: var(--mono-dark);
  transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
  letter-spacing: 0.02em;
}

form input[type="text"]::placeholder,
form input[type="tel"]::placeholder,
form input[type="email"]::placeholder {
  color: #a6a6a6;
  font-style: italic;
}

form input[type="text"]:focus,
form input[type="tel"]:focus,
form input[type="email"]:focus {
  background: #fff;
  border-color: var(--mono-dark);
  box-shadow: 0 0 10px 3px rgba(0, 0, 0, 0.12);
  color: var(--mono-dark);
}

form button {
  margin-top: 1.4rem;
  padding: 0.85rem 1.6rem;
  border-radius: 1rem;
  border: 2.5px solid var(--mono-dark);
  background: transparent;
  color: var(--mono-dark);
  font-size: 1.2rem;
  font-family: var(--font-serif, 'Cinzel', serif);
  cursor: pointer;
  transition: background-color 0.35s ease, color 0.35s ease, border-color 0.35s ease;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

form button:hover,
form button:focus {
  background-color: var(--mono-dark);
  color: var(--mono-light);
  border-color: var(--mono-dark);
}

form textarea {
  width: 100%;
  padding: 0.7rem 1rem;
  border-radius: 0.7rem;
  border: 2px solid #ddd;
  font-size: 1.1rem;
  font-family: inherit;
  outline: none;
  background: #fff;
  color: var(--mono-dark);
  resize: vertical;
  /* Пользователь может менять высоту */
  min-height: 100px;
  /* Минимальная высота */
  transition: background-color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
  letter-spacing: 0.02em;
}

form textarea::placeholder {
  color: #a6a6a6;
  font-style: italic;
}

form textarea:focus {
  background: #fff;
  border-color: var(--mono-dark);
  box-shadow: 0 0 10px 3px rgba(0, 0, 0, 0.12);
  color: var(--mono-dark);
}

#form-response {
  margin-top: 1rem;
  font-weight: 600;
  font-size: 1rem;
  transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
  padding: 0.6rem 1rem;
  border-radius: 0.6rem;
  border: 2px solid transparent;
  color: transparent;
  background-color: transparent;
  min-height: 1.2em;
  /* чтобы блок не прыгал при появлении текста */
  user-select: none;
}

/* Состояние успеха */
#form-response.success {
  color: #2a7a2a;
  /* насыщенный зелёный */
  background-color: #dff0d8;
  /* мягкий светло-зелёный фон */
  border-color: #3c763d;
  user-select: text;
}

/* Состояние ошибки */
#form-response.error {
  color: #a94442;
  /* тёмно-красный */
  background-color: #f2dede;
  /* светло-розовый фон */
  border-color: #d9534f;
  user-select: text;
}



/* Адаптивность */
@media (max-width: 520px) {
  form {
    max-width: 90vw;
    padding: 2rem 1.5rem;
  }

  form h3 {
    font-size: 1.8rem;
    margin-bottom: 1.2rem;
  }

  form button {
    font-size: 1.1rem;
    padding: 0.75rem 1.2rem;
  }
}