/* Emmons Contact Forms — inherits the active theme's design tokens when present,
   with sensible fallbacks so it looks right in any theme. */
.emc-form {
  --emc-line:  var(--ep-line, #e2e8f0);
  --emc-ink:   var(--ep-ink, #0f1e2e);
  --emc-accent:var(--ep-accent, #1d4ed8);
  --emc-error: #c0362c;
  --emc-ok-bg: #ecfdf3;
  --emc-ok-fg: #08663a;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.1rem 1.2rem;
  max-width: 640px;
  margin: 1.5rem 0;
  font-family: var(--ep-sans, inherit);
}
.emc-field { display: flex; flex-direction: column; }
.emc-field--full,
.emc-field--textarea,
.emc-actions,
.emc-form > .emc-alert { grid-column: 1 / -1; }
.emc-field label {
  font-size: .9rem; font-weight: 600; color: var(--emc-ink); margin-bottom: .35rem;
}
.emc-req { color: var(--emc-error); }
.emc-field input,
.emc-field select,
.emc-field textarea {
  width: 100%; padding: .7rem .85rem; font: inherit; font-size: 1rem;
  color: var(--emc-ink); background: #fff;
  border: 1px solid var(--emc-line); border-radius: 8px; transition: border-color .15s, box-shadow .15s;
}
.emc-field input:focus,
.emc-field select:focus,
.emc-field textarea:focus {
  outline: none; border-color: var(--emc-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--emc-accent) 18%, transparent);
}
.emc-field textarea { resize: vertical; min-height: 130px; }
.emc-field--error input,
.emc-field--error select,
.emc-field--error textarea { border-color: var(--emc-error); }
.emc-err-msg { color: var(--emc-error); font-size: .82rem; margin-top: .3rem; }

.emc-actions { display: flex; }
.emc-submit {
  font: inherit; font-weight: 600; font-size: 1rem; cursor: pointer;
  color: #fff; background: var(--emc-accent); border: 0; border-radius: 8px;
  padding: .8rem 1.6rem; transition: transform .15s, filter .15s;
}
.emc-submit:hover { filter: brightness(1.08); transform: translateY(-1px); }
.emc-submit[disabled] { opacity: .6; cursor: progress; transform: none; }

.emc-alert { padding: .9rem 1.1rem; border-radius: 8px; font-size: .95rem; margin: 1rem 0; }
.emc-alert--ok  { background: var(--emc-ok-bg); color: var(--emc-ok-fg); border: 1px solid color-mix(in srgb, var(--emc-ok-fg) 25%, transparent); }
.emc-alert--err { background: #fef2f2; color: var(--emc-error); border: 1px solid color-mix(in srgb, var(--emc-error) 25%, transparent); }

/* Honeypot: visually and programmatically hidden from humans. */
.emc-hp { position: absolute !important; left: -9999px !important; top: auto; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 560px) {
  .emc-form { grid-template-columns: 1fr; }
}
