/* Joomla Contacts form; applies only to the contact component. */
.es-content .com-contact :is(.com-contact__form, .contact-form) { max-width: 900px; }
.es-content .com-contact #contact-form {
  max-width: 900px;
  margin-block: 22px 34px;
  padding: clamp(20px, 3vw, 36px);
  border: 1px solid var(--es-line);
  border-radius: 10px;
  background: #f7faf4;
}
.es-content .com-contact #contact-form fieldset { min-width: 0; }
/* The outer page heading already introduces the form. Keep its legend for assistive tech. */
.es-content .com-contact #contact-form > fieldset:first-of-type > legend {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.es-content .com-contact #contact-form .control-group { margin-bottom: 19px; }
.es-content .com-contact #contact-form label { display: inline-block; margin-bottom: 6px; font-weight: 500; }
.es-content .com-contact #contact-form :is(input[type="text"], input[type="email"], input[type="tel"], textarea) {
  display: block;
  width: 100%;
  max-width: 100%;
  min-height: 46px;
  padding: 10px 13px;
  border: 1px solid #cbd6c6;
  border-radius: 5px;
  background: #fff;
  color: var(--es-ink);
  font: inherit;
  transition: border-color .18s ease, box-shadow .18s ease;
}
.es-content .com-contact #contact-form textarea { min-height: 160px; height: 160px; resize: vertical; }
.es-content .com-contact #contact-form :is(input[type="text"], input[type="email"], input[type="tel"], textarea):focus {
  border-color: var(--es-green-dark);
  outline: 2px solid rgb(120 183 22 / 25%);
  outline-offset: 1px;
  box-shadow: 0 0 0 3px rgb(120 183 22 / 10%);
}
.es-content .com-contact #contact-form :is(button[type="submit"], input[type="submit"], .btn-primary) {
  min-height: 46px;
  padding: 10px 24px;
  border: 1px solid var(--es-green-dark);
  border-radius: 5px;
  background: var(--es-green-dark);
  color: #fff;
  font: 600 1rem/1.4 var(--es-font-heading);
  cursor: pointer;
  transition: background-color .18s ease, transform .18s ease;
}
.es-content .com-contact #contact-form :is(button[type="submit"], input[type="submit"], .btn-primary):hover { background: #345e09; transform: translateY(-2px); }
.es-content .com-contact #contact-form :is(button[type="submit"], input[type="submit"], .btn-primary):focus-visible { outline: 3px solid var(--es-green); outline-offset: 3px; }
@media (max-width: 680px) {
  .es-content .com-contact #contact-form { padding: 20px; }
  .es-content .com-contact #contact-form :is(button[type="submit"], input[type="submit"], .btn-primary) { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .es-content .com-contact #contact-form :is(input[type="text"], input[type="email"], input[type="tel"], textarea, button[type="submit"], input[type="submit"], .btn-primary) { transition: none; }
}
