/* Public contact form (loaded only on the /contact page). Field rules are scoped under
   .amui-content-shell so they outrank amui-content.css's search-box input rule. Colours come from the active daisyUI
   [data-theme] tokens, so the form follows the site theme and the reader's theme override. */

.contact-panel {
  margin-block-start: 2.5rem;
  padding: clamp(1.25rem, 4vw, 2rem);
  border: 1px solid var(--color-base-300);
  border-radius: 0.75rem;
  background: var(--color-base-200);
}
.contact-panel h2 { margin-block-start: 0; }
.contact-lede { color: color-mix(in srgb, var(--color-base-content) 85%, transparent); }

.contact-form { display: grid; gap: 1.1rem; margin-block-start: 1.25rem; }
.contact-grid { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); }
.contact-field { display: grid; gap: 0.35rem; min-width: 0; }
.contact-field label { font-weight: 600; font-size: 0.95rem; }
.contact-field .opt { font-weight: 400; opacity: 0.75; }
.contact-field .req { color: var(--color-error); }

.amui-content-shell .contact-field input,
.amui-content-shell .contact-field select,
.amui-content-shell .contact-field textarea {
  width: 100%;
  font: inherit;
  color: var(--color-base-content);
  background: var(--color-base-100);
  border: 1px solid color-mix(in srgb, var(--color-base-content) 30%, transparent);
  border-radius: 0.5rem;
  padding: 0.6rem 0.75rem;
  line-height: 1.4;
}
.amui-content-shell .contact-field textarea { resize: vertical; min-height: 8rem; }
.amui-content-shell .contact-field input:focus-visible,
.amui-content-shell .contact-field select:focus-visible,
.amui-content-shell .contact-field textarea:focus-visible {
  outline: 2px solid var(--color-primary);
  outline-offset: 2px;
  border-color: var(--color-primary);
}
.amui-content-shell .contact-field.has-error input,
.amui-content-shell .contact-field.has-error select,
.amui-content-shell .contact-field.has-error textarea { border-color: var(--color-error); }
.field-error { margin: 0; font-size: 0.875rem; color: var(--color-error); }

.contact-errors {
  margin-block-start: 1rem;
  padding: 0.75rem 1rem;
  border-inline-start: 4px solid var(--color-error);
  background: color-mix(in srgb, var(--color-error) 10%, var(--color-base-100));
  border-radius: 0.5rem;
}
.contact-errors p, .contact-errors ul { margin: 0.25rem 0; }

.contact-actions { display: grid; gap: 0.6rem; justify-items: start; }
.contact-submit { font-size: 1rem; padding-inline: 1.5rem; }
.contact-fineprint { margin: 0; font-size: 0.85rem; opacity: 0.8; }

.contact-sent h2 { margin-block-start: 0; }

.contact-hp { display: none !important; }
