/* ============================================================
   Ellen Brand 2026 — Formidable Forms
   Paste into Formidable → Styles → Custom CSS, or leave it here:
   the plugin enqueues this file automatically when Formidable is active.

   Palette      paper #F4EEE2 · stone #EDE5D5 · ink #211B15
                oxblood #7C2E27 · petrol #315B80 · navy #12283F
                rule #C9BCA3 · umber #5C5245
   Type         Spectral (fields, labels, buttons) · Marcellus (headings)
   ============================================================ */

/* ---------- Form shell ---------- */
.frm_forms,
.frm_forms .frm_form_fields {
  font-family: 'Spectral', Georgia, serif;
  color: #211B15;
}
.frm_forms .frm_form_fields > fieldset {
  border: 0;
  padding: 0;
  margin: 0;
}
.frm_forms legend { display: none; }

/* ---------- Field rows ---------- */
.frm_forms .frm_form_field {
  margin-bottom: 22px;
}
.frm_forms .frm_form_field.frm_html_container {
  margin-bottom: 16px;
}

/* ---------- Labels ---------- */
.frm_forms .frm_primary_label {
  display: block;
  font-family: 'Spectral', Georgia, serif;
  font-size: 0.72rem;
  font-weight: 400;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: #12283F;
  margin-bottom: 9px;
  padding: 0;
}
.frm_forms .frm_required {
  color: #7C2E27;
  font-weight: 400;
}
.frm_forms .frm_description {
  font-size: 0.86rem;
  font-style: normal;
  color: #5C5245;
  margin-top: 6px;
  line-height: 1.5;
}

/* ---------- Inputs ---------- */
.frm_forms input[type="text"],
.frm_forms input[type="email"],
.frm_forms input[type="url"],
.frm_forms input[type="tel"],
.frm_forms input[type="number"],
.frm_forms input[type="password"],
.frm_forms input[type="search"],
.frm_forms input[type="date"],
.frm_forms select,
.frm_forms textarea {
  width: 100%;
  box-sizing: border-box;
  font-family: 'Spectral', Georgia, serif;
  font-size: 1rem;
  line-height: 1.5;
  color: #211B15;
  background: #EDE5D5;
  border: 1px solid #C9BCA3;
  border-radius: 3px;
  padding: 15px 20px;
  outline: none;
  box-shadow: none;
  transition: border-color .15s ease;
  -webkit-appearance: none;
  appearance: none;
}
.frm_forms textarea {
  min-height: 150px;
  resize: vertical;
}
.frm_forms select {
  background-image: linear-gradient(45deg, transparent 50%, #5C5245 50%),
                    linear-gradient(135deg, #5C5245 50%, transparent 50%);
  background-position: calc(100% - 22px) 50%, calc(100% - 16px) 50%;
  background-size: 6px 6px, 6px 6px;
  background-repeat: no-repeat;
  padding-right: 44px;
}
.frm_forms input::placeholder,
.frm_forms textarea::placeholder {
  color: #9A9082;
  opacity: 1;
}
.frm_forms input:focus,
.frm_forms select:focus,
.frm_forms textarea:focus {
  border-color: #315B80;
  box-shadow: none;
  outline: none;
}

/* ---------- Radios & checkboxes ---------- */
.frm_forms .frm_radio,
.frm_forms .frm_checkbox {
  margin-bottom: 8px;
}
.frm_forms .frm_radio label,
.frm_forms .frm_checkbox label {
  font-family: 'Spectral', Georgia, serif;
  font-size: 1rem;
  letter-spacing: 0;
  text-transform: none;
  color: #211B15;
  display: flex;
  align-items: center;
  gap: 10px;
}
.frm_forms input[type="checkbox"],
.frm_forms input[type="radio"] {
  width: 16px;
  height: 16px;
  accent-color: #7C2E27;
  margin: 0;
}

/* ---------- Submit ---------- */
.frm_forms .frm_submit {
  margin-top: 4px;
}
.frm_forms .frm_button_submit,
.frm_forms input[type="submit"],
.frm_forms button[type="submit"] {
  font-family: 'Spectral', Georgia, serif;
  font-size: 0.74rem;
  font-weight: 400;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: #ffffff;
  background: #7C2E27;
  border: 1px solid #7C2E27;
  border-radius: 3px;
  padding: 16px 40px;
  cursor: pointer;
  transition: background-color .15s ease, border-color .15s ease;
  -webkit-appearance: none;
  appearance: none;
}
.frm_forms .frm_button_submit:hover,
.frm_forms input[type="submit"]:hover,
.frm_forms button[type="submit"]:hover {
  background: #6A2721;
  border-color: #6A2721;
  color: #ffffff;
}
.frm_forms .frm_button_submit:focus-visible,
.frm_forms input[type="submit"]:focus-visible {
  outline: 2px solid #315B80;
  outline-offset: 3px;
}
.frm_forms .frm_button_submit[disabled] {
  opacity: .55;
  cursor: default;
}

/* ---------- Validation ---------- */
.frm_forms .frm_error_style {
  background: #F7E9E7;
  border: 1px solid #7C2E27;
  border-radius: 3px;
  color: #7C2E27;
  font-size: 0.95rem;
  padding: 14px 18px;
  margin-bottom: 22px;
}
.frm_forms .frm_error {
  color: #7C2E27;
  font-size: 0.86rem;
  font-weight: 400;
  margin-top: 7px;
}
.frm_forms .frm_blank_field input,
.frm_forms .frm_blank_field select,
.frm_forms .frm_blank_field textarea {
  border-color: #7C2E27;
  background: #F7E9E7;
}
.frm_forms .frm_blank_field .frm_primary_label {
  color: #7C2E27;
}

/* ---------- Success ---------- */
.frm_forms .frm_message,
.frm_message {
  background: #EDE5D5;
  border-left: 3px solid #7C2E27;
  color: #211B15;
  font-size: 1.05rem;
  line-height: 1.6;
  padding: 22px 26px;
}
.frm_forms .frm_message p:last-child { margin-bottom: 0; }

/* ---------- Section headings inside a form ---------- */
.frm_forms .frm_section_heading h3,
.frm_forms h3.frm_pos_top {
  font-family: 'Marcellus', Georgia, serif;
  font-weight: 400;
  font-size: 1.5rem;
  letter-spacing: 0.005em;
  color: #211B15;
  border: 0;
  padding: 0;
  margin: 0 0 6px;
}
.frm_forms .frm_section_heading {
  border-top: 1px solid #C9BCA3;
  padding-top: 28px;
  margin-top: 8px;
}

/* ---------- Fine print under the form ---------- */
.frm_forms .frm_form_field.frm_privacy p,
.frm_forms .frm_fineprint {
  font-size: 0.82rem;
  color: #5C5245;
  margin-top: 16px;
}

/* ============================================================
   Dark variant — for the newsletter band and any form placed on
   a near-black section. Add the CSS class "ellen-form-dark" to
   the form in Formidable → Settings → Form Classes.
   ============================================================ */

.ellen-form-dark .frm_primary_label { color: #D2A65B; }
.ellen-form-dark .frm_description   { color: #8A8577; }

.ellen-form-dark input[type="text"],
.ellen-form-dark input[type="email"],
.ellen-form-dark select,
.ellen-form-dark textarea {
  background: transparent;
  border-color: rgba(219,181,107,.28);
  color: #ECE6D8;
  border-radius: 0;
}
.ellen-form-dark input::placeholder,
.ellen-form-dark textarea::placeholder { color: #8A8577; }
.ellen-form-dark input:focus,
.ellen-form-dark textarea:focus { border-color: #D2A65B; }

.ellen-form-dark .frm_button_submit,
.ellen-form-dark input[type="submit"] {
  background: #6E9AC0;
  border-color: #6E9AC0;
  color: #0C0D10;
  border-radius: 0;
}
.ellen-form-dark .frm_button_submit:hover,
.ellen-form-dark input[type="submit"]:hover {
  background: #8FB3D0;
  border-color: #8FB3D0;
  color: #0C0D10;
}
.ellen-form-dark .frm_message {
  background: #12283F;
  border-left-color: #D2A65B;
  color: #ECE6D8;
}

/* ============================================================
   Inline variant — single field + button on one row, as in the
   newsletter band. Form class: "ellen-form-inline".
   ============================================================ */

.ellen-form-inline .frm_form_fields > fieldset {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0;
  justify-content: center;
}
.ellen-form-inline .frm_form_field { margin-bottom: 0; }
.ellen-form-inline .frm_primary_label { display: none; }
.ellen-form-inline input[type="email"] {
  border-right: 0;
  min-width: 300px;
  padding: 14px 18px;
  font-size: 1.1rem;
}
.ellen-form-inline .frm_submit { margin: 0; }
.ellen-form-inline .frm_button_submit,
.ellen-form-inline input[type="submit"] {
  padding: 0 26px;
  font-size: 0.68rem;
  height: 100%;
}
@media (max-width: 600px) {
  .ellen-form-inline .frm_form_fields > fieldset { flex-direction: column; }
  .ellen-form-inline input[type="email"] { border-right: 1px solid rgba(219,181,107,.28); min-width: 0; width: 100%; }
  .ellen-form-inline .frm_button_submit { padding: 14px 26px; }
}
