/* CHEN Site Tools: form styles.
   Colors come from the CHEN theme (theme.json palette); the fallbacks only apply if another theme is used. */
.chen-form {
  --f-text: var(--wp--preset--color--dark, #25282E);
  --f-muted: var(--wp--preset--color--text-muted, #545A65);
  --f-accent: var(--wp--preset--color--accent, #782F89);
  --f-accent-hover: var(--wp--preset--color--accent-hover, #5C2269);
  --f-error: var(--wp--preset--color--error, #B3261E);
  --f-bg: var(--wp--preset--color--bg, #FFFFFF);
  --f-soft: var(--wp--preset--color--bg-soft, #F6F6F8);
  --f-border: var(--wp--custom--field-border, #6B7280);
  display: grid;
  gap: 1.25rem;
  max-width: 40rem;
  padding: 1.5rem;
  background: var(--f-bg);
  border: 1px solid var(--wp--preset--color--border, #D8DAE0);
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(37, 40, 46, .06), 0 4px 14px rgba(37, 40, 46, .06);
  color: var(--f-text);
}
.chen-form > * { margin: 0 !important; }
.chen-form .form-title { margin: 0; font-size: 1.375rem; }
.chen-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.chen-form legend,
.chen-form label.label { display: block; padding: 0; margin: 0 0 .35rem; font-weight: 700; }
.chen-form .sublabel { display: block; margin-bottom: .25rem; font-size: .9375rem; font-weight: 600; color: var(--f-muted); }
.chen-form .req { color: var(--f-error); font-weight: 700; }
.chen-form .form-note { margin: 0; font-size: 1rem; color: var(--f-muted); }

.chen-form .field-row { display: grid; gap: 1rem; grid-template-columns: 1fr; }
@media (min-width: 30em) { .chen-form .field-row { grid-template-columns: 1fr 1fr; } }

.chen-form input[type="text"],
.chen-form input[type="email"],
.chen-form textarea {
  display: block;
  width: 100%;
  min-height: 2.875rem;
  padding: .6rem .85rem;
  font: inherit;
  font-size: 1.0625rem;
  color: var(--f-text);
  background: var(--f-bg);
  border: 2px solid var(--f-border);
  border-radius: 8px;
  box-sizing: border-box;
}
.chen-form textarea { min-height: 9rem; resize: vertical; }
.chen-form input:focus,
.chen-form textarea:focus { outline: 3px solid var(--f-accent); outline-offset: 2px; border-color: var(--f-text); }
.chen-form input[aria-invalid="true"],
.chen-form textarea[aria-invalid="true"] { border-color: var(--f-error); }

.chen-form .field-help { margin: .35rem 0 0; font-size: .9375rem; color: var(--f-muted); }
.chen-form .field-error { margin: .35rem 0 0; font-size: .9375rem; font-weight: 600; color: var(--f-error); }
.chen-form .field-error::before { content: "Error: "; }

.chen-form .error-summary {
  padding: 1rem 1.25rem;
  border: 2px solid var(--f-error);
  border-left-width: 8px;
  border-radius: 8px;
  background: var(--f-bg);
  color: var(--f-text);
}
.chen-form .error-summary h3 { margin: 0 0 .5rem; font-size: 1.125rem; color: var(--f-error); }
.chen-form .error-summary ul { margin: 0; padding-left: 1.2em; }
.chen-form .error-summary a { color: var(--f-error); font-weight: 600; }

.chen-form .form-status { padding: 1rem 1.25rem; border-radius: 8px; border: 2px solid var(--f-border); background: var(--f-soft); font-weight: 600; }

/* spam trap: invisible to people, tempting to bots */
.chen-form .chen-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }

.chen-form .btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 2.875rem; padding: .65rem 1.4rem;
  border: 2px solid var(--f-accent); border-radius: 8px;
  background: var(--f-accent); color: #fff;
  font: inherit; font-size: 1.0625rem; font-weight: 600; line-height: 1.2;
  cursor: pointer;
}
.chen-form .btn:hover { background: var(--f-accent-hover); border-color: var(--f-accent-hover); }
