﻿/* ==========================================================================
   Gravity Forms styling bridge.

   Gravity Forms renders its own markup (.gform_wrapper, .gfield, etc.)
   which doesn't automatically pick up the site's .field / .form-grid
   styling. Rather than adding a CSS class to every field by hand in the
   form editor, this file retargets the existing design at GF's real
   selectors — so any current or future Gravity Forms field on the site
   inherits the correct look with zero per-field setup.

   Covers both the legacy Gravity Forms markup and the 2.5+ "gravity-theme"
   framework, since class names differ slightly between them.
   ========================================================================== */

.gform_wrapper.gravity-theme,
.gform_wrapper {
  font-family: 'EB Garamond', serif;
  color: var(--ink);
}

/* Field grid: GF already lays fields out in rows; matching the same
   two-column rhythm and gap as .form-grid. */
.gform_wrapper .gform_fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
}
@media (max-width: 640px) {
  .gform_wrapper .gform_fields {
    grid-template-columns: 1fr;
  }
}

/* Full-width fields: title, paragraph text, file upload, and anything
   explicitly set to "Full" width in the field's Appearance tab. */
.gform_wrapper .gfield--width-full,
.gform_wrapper .gfield_html,
.gform_wrapper li.gfield.gf_left_half.gfield--type-textarea,
.gform_wrapper .gfield.gfield--type-textarea,
.gform_wrapper .gfield.gfield--type-fileupload {
  grid-column: 1 / -1;
}

.gform_wrapper .gfield {
  margin: 0 !important;
}

/* Labels */
.gform_wrapper .gfield_label,
.gform_wrapper .gform-field-label {
  display: block;
  font-family: 'Cinzel', serif;
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 8px !important;
  font-weight: normal;
}

/* Hint / description text under a field */
.gform_wrapper .gfield_description,
.gform_wrapper .gfield_consent_description {
  display: block;
  font-size: 13px;
  color: #6d6d80;
  margin-top: 6px !important;
}

/* Text inputs, email, date, select, textarea */
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="url"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="date"],
.gform_wrapper select,
.gform_wrapper textarea {
  width: 100% !important;
  font-family: 'EB Garamond', serif;
  font-size: 16px;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--paper-dim) !important;
  border-radius: 3px !important;
  padding: 12px 14px !important;
  box-sizing: border-box;
}
.gform_wrapper textarea {
  min-height: 130px;
  resize: vertical;
}
.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus {
  outline: 2px solid var(--royal);
  outline-offset: 1px;
}

/* File upload field, styled to match the static .field-file box */
.gform_wrapper .ginput_container_fileupload {
  border: 1.5px dashed var(--paper-dim);
  border-radius: 4px;
  padding: 22px;
  text-align: center;
  background: var(--paper-dim);
}
.gform_wrapper .ginput_container_fileupload input {
  margin: 0 auto;
}

/* Submit button */
.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer {
  margin-top: 30px !important;
  padding: 0 !important;
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  border-top: none !important;
}
.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 13px 26px !important;
  background: var(--ink);
  color: var(--gold-light) !important;
  font-family: 'Cinzel', serif;
  font-size: 13px !important;
  letter-spacing: .16em;
  text-transform: uppercase;
  border-radius: 2px !important;
  border: 1px solid var(--ink) !important;
  cursor: pointer;
  transition: background .25s ease, color .25s ease, transform .25s ease;
}
.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_button:hover {
  background: var(--gold-light);
  color: var(--ink) !important;
  border-color: var(--gold-light) !important;
  transform: translateY(-1px);
}

/* Validation errors — keep GF's own error text but bring the colour and
   type in line with the rest of the site rather than GF's default red. */
.gform_wrapper .gfield_error input,
.gform_wrapper .gfield_error select,
.gform_wrapper .gfield_error textarea {
  border-color: #b3413f !important;
}
.gform_wrapper .validation_message,
.gform_wrapper .gfield_validation_message {
  font-size: 13px;
  color: #b3413f;
  margin-top: 6px;
}

/* Confirmation message shown after a successful submit */
.gform_confirmation_message {
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
  background: #fff;
  border: 1px solid var(--paper-dim);
  border-radius: 4px;
  padding: 26px;
}
