/******* Do not edit this file *******
Simple Custom CSS and JS - by Silkypress.com
Saved: May 04 2026 | 15:27:53 */
/* ==========================================================================
   BrightLeaf Giving — Gravity Forms Stylesheet
   --------------------------------------------------------------------------
   Drop-in stylesheet for any Gravity Form using the `gravity-theme` framework.
   Targets `.gform_wrapper.gravity-theme` so it applies to every form on the
   site without per-form ID selectors. Override with `#gform_wrapper_{id}` if
   you ever need form-specific tweaks.

   Sections:
     1. Design tokens (CSS variables)
     2. Base wrapper, heading, progress bar
     3. Section titles & page transitions
     4. Field layout & labels
     5. Inputs, textareas, selects (incl. fancy chevron)
     6. Radios, checkboxes, consent
     7. File upload, password strength, char counter
     8. TinyMCE editor frame
     9. Buttons (primary, secondary, ghost)
    10. Validation & errors
    11. Phone (intl-tel-input) + Address grid
    12. Misc utility (current account chip, hidden admin fields)
    13. Responsive
   ========================================================================== */


/* ==========================================================================
   1. DESIGN TOKENS
   ========================================================================== */
.gform_wrapper.gravity-theme,
.gform_wrapper {
  /* Brand palette — pulled from brightleaf.giving */
  --bl-navy:        #1a2c5e;   /* primary heading + accent */
  --bl-navy-deep:   #11204a;
  --bl-navy-soft:   #2d4380;
  --bl-leaf:        #7fa83a;   /* signature olive/leaf green */
  --bl-leaf-dark:   #6b9030;
  --bl-leaf-light:  #b9d27a;
  --bl-leaf-tint:   #f0f6e2;

  /* Neutrals */
  --bl-ink:         #1c2433;
  --bl-ink-soft:    #4a5468;
  --bl-muted:       #6b7589;
  --bl-line:        #e3e7ee;
  --bl-line-soft:   #eef1f6;
  --bl-bg:          #ffffff;
  --bl-bg-soft:     #fafbfc;
  --bl-bg-input:    #f5f7fa;

  /* Feedback */
  --bl-danger:      #c8341d;
  --bl-danger-bg:   #fdecea;
  --bl-danger-soft: #f5b7af;
  --bl-warn:        #c98a16;
  --bl-success:     var(--bl-leaf-dark);

  /* Typography */
  --bl-font-display: "Poppins", "Helvetica Neue", system-ui, sans-serif;
  --bl-font-body:    "Inter", "Helvetica Neue", system-ui, sans-serif;

  /* Sizing & rhythm */
  --bl-radius-sm: 6px;
  --bl-radius:    10px;
  --bl-radius-lg: 14px;
  --bl-gap:       1.25rem;
  --bl-gap-lg:    2rem;

  /* Elevation */
  --bl-shadow-sm: 0 1px 2px rgba(17, 32, 74, 0.05);
  --bl-shadow:    0 4px 14px rgba(17, 32, 74, 0.08);
  --bl-shadow-lg: 0 12px 32px rgba(17, 32, 74, 0.10);

  /* Motion */
  --bl-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --bl-dur:  180ms;

  /* Focus ring */
  --bl-focus: 0 0 0 3px rgba(127, 168, 58, 0.28);
}


/* ==========================================================================
   2. WRAPPER, HEADING, PROGRESS BAR
   ========================================================================== */
.gform_wrapper.gravity-theme {
  font-family: var(--bl-font-body);
  color: var(--bl-ink);
  font-size: 16px;
  line-height: 1.55;
  /* Blend into parent container — no card, no shadow, no radius. */
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  padding: 0;
  /* Author can constrain the form using their own page-level layout
     (e.g. the Gravity Forms shortcode container). We don't impose a
     max-width here so the form respects its host. */
  max-width: none;
  margin: 0;
}

.gform_wrapper.gravity-theme .gform_heading {
  margin-bottom: 1.75rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--bl-line-soft);
}

.gform_wrapper.gravity-theme .gform_description {
  font-size: 1rem;
  color: var(--bl-ink-soft);
  margin: 0 0 0.75rem;
  max-width: 70ch;
}

.gform_wrapper.gravity-theme .gform_required_legend {
  font-size: 0.8rem;
  color: var(--bl-muted);
  margin: 0;
  letter-spacing: 0.01em;
}

.gform_wrapper.gravity-theme .gfield_required_asterisk,
.gform_wrapper.gravity-theme .gfield_required {
  color: var(--bl-danger);
  font-weight: 600;
  margin-left: 2px;
}

/* --- Progress bar ------------------------------------------------------- */
.gform_wrapper.gravity-theme .gf_progressbar_wrapper {
  margin: 0 0 2.25rem;
}

.gform_wrapper.gravity-theme .gf_progressbar_title {
  font-family: var(--bl-font-display);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--bl-navy);
  margin: 0 0 0.65rem;
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
}

.gform_wrapper.gravity-theme .gf_progressbar_title .gf_step_current_page,
.gform_wrapper.gravity-theme .gf_progressbar_title .gf_step_page_count {
  color: var(--bl-leaf-dark);
  font-weight: 700;
}

.gform_wrapper.gravity-theme .gf_progressbar_title .gf_step_label {
  color: var(--bl-ink-soft);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
  margin-left: auto;
}

.gform_wrapper.gravity-theme .gf_progressbar {
  background: var(--bl-line);
  height: 10px;
  border-radius: 999px;
  overflow: hidden;
  box-shadow: inset 0 1px 2px rgba(17, 32, 74, 0.06);
  position: relative;
}

.gform_wrapper.gravity-theme .gf_progressbar_percentage {
  height: 100%;
  background: linear-gradient(90deg, var(--bl-leaf) 0%, var(--bl-leaf-dark) 100%);
  border-radius: 999px;
  transition: width 500ms var(--bl-ease);
  position: relative;
  overflow: hidden;
}

.gform_wrapper.gravity-theme .gf_progressbar_percentage::after {
  /* subtle shimmer */
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.25), transparent);
  transform: translateX(-100%);
  animation: bl-shimmer 2.6s var(--bl-ease) infinite;
}

@keyframes bl-shimmer {
  100% { transform: translateX(100%); }
}

/* Hide the inline percentage label — the bar itself communicates progress
   and the title shows step X of N. */
.gform_wrapper.gravity-theme .gf_progressbar_percentage span {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}


/* ==========================================================================
   3. SECTION TITLES & PAGES
   ========================================================================== */
.gform_wrapper.gravity-theme .gsection {
  margin: 0 0 1.5rem;
  padding: 0 0 1rem;
  border: 0;
  border-bottom: 1px solid var(--bl-line-soft);
}

.gform_wrapper.gravity-theme .gsection_title {
  font-family: var(--bl-font-display);
  font-size: clamp(1.75rem, 3vw, 2.3rem);
  font-weight: 700;
  line-height: 1.15;
  color: var(--bl-navy);
  letter-spacing: -0.02em;
  margin: 0;
}

/* Page-fade-in */
.gform_wrapper.gravity-theme .gform_page {
  animation: bl-page-in 320ms var(--bl-ease) both;
}

@keyframes bl-page-in {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: none; }
}

.gform_wrapper.gravity-theme .gform_page_fields {
  display: block;
}


/* ==========================================================================
   4. FIELD LAYOUT & LABELS
   --------------------------------------------------------------------------
   Vanilla Gravity Forms `gravity-theme` uses flex-wrap (not CSS Grid) for
   .gform_fields so that hidden fields collapse cleanly without leaving
   row gaps. We mirror that approach. Field widths are still controlled
   by the `.gfield--width-*` modifier classes that Gravity emits.
   ========================================================================== */
.gform_wrapper.gravity-theme .gform_fields {
  display: flex;
  flex-wrap: wrap;
  /* `gap` works on flex containers in all modern browsers (Chrome 84+,
     Firefox 63+, Safari 14.1+). Hidden flex items (display:none) don't
     trigger gap, so this matches Gravity's own behavior. */
  column-gap: 1.25rem;
  row-gap: 1.5rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.gform_wrapper.gravity-theme .gfield {
  /* Default: each field takes a full row. Width modifiers below override
     `flex` to allow side-by-side fields. `min-width: 0` prevents flex
     blowout when content is wide (long labels, long input values, etc.). */
  flex: 0 0 100%;
  max-width: 100%;
  min-width: 0;
  position: relative;
  margin: 0;
}

/* Width modifiers — these match Gravity Forms' own `gfield--width-*` API.
   Values use `flex-basis` so flex-wrap places them in rows. The
   `(width - gap*share)` math accounts for the column-gap between
   neighboring fields on the same row. */
.gform_wrapper.gravity-theme .gfield--width-full           { flex-basis: 100%; }
.gform_wrapper.gravity-theme .gfield--width-eleven-twelfths{ flex-basis: calc(91.6666% - 0.104rem); }
.gform_wrapper.gravity-theme .gfield--width-five-sixths    { flex-basis: calc(83.3333% - 0.208rem); }
.gform_wrapper.gravity-theme .gfield--width-three-quarters { flex-basis: calc(75% - 0.3125rem); }
.gform_wrapper.gravity-theme .gfield--width-two-thirds     { flex-basis: calc(66.6666% - 0.4166rem); }
.gform_wrapper.gravity-theme .gfield--width-seven-twelfths { flex-basis: calc(58.3333% - 0.521rem); }
.gform_wrapper.gravity-theme .gfield--width-half           { flex-basis: calc(50% - 0.625rem); }
.gform_wrapper.gravity-theme .gfield--width-five-twelfths  { flex-basis: calc(41.6666% - 0.729rem); }
.gform_wrapper.gravity-theme .gfield--width-third          { flex-basis: calc(33.3333% - 0.833rem); }
.gform_wrapper.gravity-theme .gfield--width-quarter        { flex-basis: calc(25% - 0.9375rem); }
.gform_wrapper.gravity-theme .gfield--width-sixth          { flex-basis: calc(16.6666% - 1.0416rem); }
.gform_wrapper.gravity-theme .gfield--width-twelfth        { flex-basis: calc(8.3333% - 1.1458rem); }

/* Reset all fieldsets — Gravity uses <fieldset> for Name, Address, Radios,
   etc., and we never want the browser's default outset border or padding. */
.gform_wrapper.gravity-theme fieldset.gfield {
  border: 0;
  padding: 0;
  min-width: 0;
}
.gform_wrapper.gravity-theme fieldset.gfield > legend {
  padding: 0;
  margin: 0;
  display: block;
  width: 100%;
}

/* --- Labels ------------------------------------------------------------- */
.gform_wrapper.gravity-theme .gfield_label,
.gform_wrapper.gravity-theme .gform-field-label {
  display: block;
  font-family: var(--bl-font-display);
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--bl-navy);
  margin: 0 0 0.5rem;
  letter-spacing: -0.005em;
  line-height: 1.35;
}

.gform_wrapper.gravity-theme legend.gfield_label {
  padding: 0;
}

/* Sub-labels (First/Last, Street, etc.) */
.gform_wrapper.gravity-theme .gform-field-label--type-sub {
  font-family: var(--bl-font-body);
  font-size: 0.8rem;
  font-weight: 500;
  color: var(--bl-muted);
  margin-top: 0.4rem;
  margin-bottom: 0;
  letter-spacing: 0.005em;
  text-transform: none;
}

/* Inline labels (next to radios/checkboxes) */
.gform_wrapper.gravity-theme .gform-field-label--type-inline {
  font-family: var(--bl-font-body);
  font-weight: 500;
  font-size: 0.95rem;
  color: var(--bl-ink);
  margin: 0;
  cursor: pointer;
}

/* Field descriptions */
.gform_wrapper.gravity-theme .gfield_description {
  font-size: 0.875rem;
  color: var(--bl-ink-soft);
  margin: 0.4rem 0 0.75rem;
  line-height: 1.55;
}

.gform_wrapper.gravity-theme .field_description_above .gfield_description {
  margin: 0 0 0.85rem;
}

.gform_wrapper.gravity-theme .gfield_description p {
  margin: 0 0 0.5rem;
}

.gform_wrapper.gravity-theme .gfield_description p:last-child {
  margin-bottom: 0;
}

.gform_wrapper.gravity-theme .gfield_description ul {
  margin: 0.4rem 0 0.6rem;
  padding-left: 1.25rem;
}

.gform_wrapper.gravity-theme .gfield_description ul li {
  margin: 0.15rem 0;
}


/* ==========================================================================
   5. INPUTS, TEXTAREAS, SELECTS
   ========================================================================== */
.gform_wrapper.gravity-theme input[type="text"],
.gform_wrapper.gravity-theme input[type="email"],
.gform_wrapper.gravity-theme input[type="tel"],
.gform_wrapper.gravity-theme input[type="url"],
.gform_wrapper.gravity-theme input[type="number"],
.gform_wrapper.gravity-theme input[type="password"],
.gform_wrapper.gravity-theme input[type="date"],
.gform_wrapper.gravity-theme input[type="search"],
.gform_wrapper.gravity-theme textarea,
.gform_wrapper.gravity-theme select {
  width: 100%;
  font-family: var(--bl-font-body);
  font-size: 1rem;
  line-height: 1.5;
  color: var(--bl-ink);
  background: var(--bl-bg-input);
  border: 1.5px solid transparent;
  border-radius: var(--bl-radius);
  padding: 0.8rem 1rem;
  box-shadow: var(--bl-shadow-sm);
  transition: border-color var(--bl-dur) var(--bl-ease),
              background var(--bl-dur) var(--bl-ease),
              box-shadow var(--bl-dur) var(--bl-ease);
  -webkit-appearance: none;
  appearance: none;
}

.gform_wrapper.gravity-theme input::placeholder,
.gform_wrapper.gravity-theme textarea::placeholder {
  color: #9ca5b8;
}

.gform_wrapper.gravity-theme input:hover:not(:disabled):not(:focus),
.gform_wrapper.gravity-theme textarea:hover:not(:disabled):not(:focus),
.gform_wrapper.gravity-theme select:hover:not(:disabled):not(:focus) {
  background: #fff;
  border-color: var(--bl-line);
}

.gform_wrapper.gravity-theme input:focus,
.gform_wrapper.gravity-theme textarea:focus,
.gform_wrapper.gravity-theme select:focus {
  outline: none;
  background: #fff;
  border-color: var(--bl-leaf);
  box-shadow: var(--bl-focus);
}

.gform_wrapper.gravity-theme input:disabled,
.gform_wrapper.gravity-theme textarea:disabled,
.gform_wrapper.gravity-theme select:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  background: var(--bl-line-soft);
}

.gform_wrapper.gravity-theme textarea {
  min-height: 140px;
  resize: vertical;
}

/* Custom select chevron */
.gform_wrapper.gravity-theme select {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%231a2c5e' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 12px 8px;
  padding-right: 2.5rem;
  cursor: pointer;
}

.gform_wrapper.gravity-theme select::-ms-expand { display: none; }


/* ==========================================================================
   6. RADIOS (BUTTON-STYLE), CHECKBOXES, CONSENT
   --------------------------------------------------------------------------
   Design choice: radio groups render as horizontal pill-button rows.
   For binary or 2-option groups they become a segmented control.
   For longer lists they wrap onto multiple lines.
   Checkboxes keep the classic "tick-in-a-box" pattern — semantically
   different from radios.

   Override: add `.gfield--stacked-choices` to a fieldset to keep the
   classic vertically-stacked radio list.
   ========================================================================== */

/* ----- Radio groups as button rows -------------------------------------- */
.gform_wrapper.gravity-theme .gfield_radio {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 0.25rem 0 0;
}

.gform_wrapper.gravity-theme .gfield_radio .gchoice {
  display: inline-flex;
  align-items: stretch;
  margin: 0;
  padding: 0;
  flex: 0 0 auto;
  min-width: 0;
}

/* The actual radio input is hidden; the label becomes the button */
.gform_wrapper.gravity-theme .gfield_radio input[type="radio"] {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
  padding: 0;
  margin: 0;
}

.gform_wrapper.gravity-theme .gfield_radio .gform-field-label--type-inline {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  font-family: var(--bl-font-display);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--bl-ink-soft);
  background: var(--bl-bg-input);
  border: 1.5px solid var(--bl-line);
  border-radius: 999px;
  padding: 0.7rem 2rem;
  margin: 0;
  cursor: pointer;
  user-select: none;
  line-height: 1.25;
  white-space: nowrap;
  transition: background var(--bl-dur) var(--bl-ease),
              border-color var(--bl-dur) var(--bl-ease),
              color var(--bl-dur) var(--bl-ease),
              transform var(--bl-dur) var(--bl-ease),
              box-shadow var(--bl-dur) var(--bl-ease);
}

.gform_wrapper.gravity-theme .gfield_radio .gform-field-label--type-inline:hover {
  background: #fff;
  border-color: var(--bl-leaf);
  color: var(--bl-navy);
  transform: translateY(-1px);
  box-shadow: var(--bl-shadow-sm);
}

/* Checked state — solid leaf-green pill */
.gform_wrapper.gravity-theme .gfield_radio input[type="radio"]:checked + label {
  background: var(--bl-leaf-dark);
  border-color: var(--bl-leaf-dark);
  color: #fff;
  box-shadow: 0 2px 6px rgba(107, 144, 48, 0.25);
}

.gform_wrapper.gravity-theme .gfield_radio input[type="radio"]:checked + label:hover {
  background: var(--bl-navy);
  border-color: var(--bl-navy);
  color: #fff;
}

/* Keyboard focus */
.gform_wrapper.gravity-theme .gfield_radio input[type="radio"]:focus-visible + label {
  outline: none;
  box-shadow: var(--bl-focus);
  border-color: var(--bl-leaf);
}

/* Opt-out for forms that want classic radios */
.gform_wrapper.gravity-theme .gfield--stacked-choices .gfield_radio {
  flex-direction: column;
  gap: 0.55rem;
}
.gform_wrapper.gravity-theme .gfield--stacked-choices .gfield_radio .gchoice {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.5rem 0.75rem;
  border-radius: var(--bl-radius-sm);
}
.gform_wrapper.gravity-theme .gfield--stacked-choices .gfield_radio input[type="radio"] {
  position: static;
  width: 20px; height: 20px; clip: auto;
  appearance: none;
  -webkit-appearance: none;
  border: 1.5px solid var(--bl-line);
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
  margin: 0;
  flex-shrink: 0;
}
.gform_wrapper.gravity-theme .gfield--stacked-choices .gfield_radio input[type="radio"]:checked {
  border-color: var(--bl-leaf-dark);
}
.gform_wrapper.gravity-theme .gfield--stacked-choices .gfield_radio input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: var(--bl-leaf-dark);
}
.gform_wrapper.gravity-theme .gfield--stacked-choices .gfield_radio .gform-field-label--type-inline {
  all: unset;
  font-family: var(--bl-font-body);
  font-weight: 500;
  font-size: 0.95rem;
  color: var(--bl-ink);
  cursor: pointer;
}

/* ----- Checkbox groups (multi-select) ----------------------------------- */
.gform_wrapper.gravity-theme .gfield_checkbox {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin: 0.25rem 0 0;
}

/* 3-column layout helper used by Gravity (e.g. Citizenship) */
.gform_wrapper.gravity-theme .gf_list_3col_vertical .gfield_checkbox {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.65rem 1rem;
}

.gform_wrapper.gravity-theme .gfield_checkbox .gchoice {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.5rem 0.75rem;
  border-radius: var(--bl-radius-sm);
  transition: background var(--bl-dur) var(--bl-ease);
  margin: 0;
  min-width: 0;
}

.gform_wrapper.gravity-theme .gfield_checkbox .gchoice:hover {
  background: var(--bl-leaf-tint);
}

/* Custom checkbox visuals (apply to both .gfield-choice-input checkboxes
   and any other native checkbox inside the form, including consent fields) */
.gform_wrapper.gravity-theme input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 20px;
  height: 20px;
  border: 1.5px solid var(--bl-line);
  border-radius: 5px;
  background: #fff;
  margin: 0;
  flex-shrink: 0;
  cursor: pointer;
  position: relative;
  vertical-align: middle;
  transition: border-color var(--bl-dur) var(--bl-ease),
              background var(--bl-dur) var(--bl-ease),
              box-shadow var(--bl-dur) var(--bl-ease);
}

.gform_wrapper.gravity-theme input[type="checkbox"]:hover {
  border-color: var(--bl-leaf);
}

.gform_wrapper.gravity-theme input[type="checkbox"]:focus-visible {
  outline: none;
  box-shadow: var(--bl-focus);
  border-color: var(--bl-leaf);
}

.gform_wrapper.gravity-theme input[type="checkbox"]:checked {
  border-color: var(--bl-leaf-dark);
  background: var(--bl-leaf-dark);
}

.gform_wrapper.gravity-theme input[type="checkbox"]:checked::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 1px;
  width: 6px;
  height: 11px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

/* ----- Consent fields --------------------------------------------------- */
/* These are full-width "card" components, not inline checkbox lists.
   Structure (Gravity Forms):
     <fieldset class="gfield gfield--type-consent">
       <legend class="gfield_label">Policy Title</legend>
       <div class="gfield_description gfield_consent_description">
         Long policy text...
       </div>
       <div class="ginput_container ginput_container_consent">
         <input type="checkbox">
         <label class="gfield_consent_label">I agree to ...</label>
       </div>
     </fieldset>
*/
.gform_wrapper.gravity-theme .gfield--type-consent {
  /* Override the global fieldset reset for consent fields */
  border: 1px solid var(--bl-line) !important;
  background: var(--bl-bg) !important;
  border-radius: var(--bl-radius) !important;
  padding: 1.25rem 1.4rem !important;
  margin: 0 !important;
  box-shadow: var(--bl-shadow-sm);
  transition: border-color var(--bl-dur) var(--bl-ease),
              background var(--bl-dur) var(--bl-ease),
              box-shadow var(--bl-dur) var(--bl-ease);
}

.gform_wrapper.gravity-theme .gfield--type-consent:hover {
  border-color: var(--bl-leaf-light);
}

.gform_wrapper.gravity-theme .gfield--type-consent > legend.gfield_label {
  display: block;
  width: 100%;
  margin: 0 0 0.85rem !important;
  padding: 0 !important;
  font-family: var(--bl-font-display);
  font-size: 1rem;
  font-weight: 600;
  color: var(--bl-navy);
}

/* The policy text — scrollable card with a clear visible boundary */
.gform_wrapper.gravity-theme .gfield_consent_description {
  display: block !important;
  font-size: 0.875rem;
  color: var(--bl-ink-soft);
  background: var(--bl-bg-soft) !important;
  border: 1px solid var(--bl-line-soft) !important;
  border-radius: var(--bl-radius-sm) !important;
  padding: 0.95rem 1.1rem !important;
  max-height: 8.5em;
  overflow-y: auto;
  margin: 0 0 1rem !important;
  line-height: 1.6;
  scrollbar-width: thin;
  scrollbar-color: var(--bl-line) transparent;
}

.gform_wrapper.gravity-theme .gfield_consent_description::-webkit-scrollbar {
  width: 6px;
}
.gform_wrapper.gravity-theme .gfield_consent_description::-webkit-scrollbar-thumb {
  background: var(--bl-line);
  border-radius: 999px;
}

/* The checkbox + agreement label row */
.gform_wrapper.gravity-theme .ginput_container_consent {
  display: flex !important;
  align-items: center;
  gap: 0.7rem;
  padding: 0.6rem 0.85rem;
  background: var(--bl-bg-soft);
  border: 1.5px solid var(--bl-line);
  border-radius: var(--bl-radius-sm);
  cursor: pointer;
  transition: all var(--bl-dur) var(--bl-ease);
}

.gform_wrapper.gravity-theme .ginput_container_consent:hover {
  border-color: var(--bl-leaf);
  background: #fff;
}

.gform_wrapper.gravity-theme .gfield_consent_label {
  font-family: var(--bl-font-body);
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--bl-ink);
  cursor: pointer;
  user-select: none;
  line-height: 1.4;
  margin: 0;
  flex: 1;
}

/* When agreed, the whole card lights up leaf-green */
.gform_wrapper.gravity-theme .gfield--type-consent:has(input[type="checkbox"]:checked) {
  border-color: var(--bl-leaf-light) !important;
  background: var(--bl-leaf-tint) !important;
}

.gform_wrapper.gravity-theme .gfield--type-consent:has(input[type="checkbox"]:checked) .ginput_container_consent {
  background: #fff;
  border-color: var(--bl-leaf);
}

.gform_wrapper.gravity-theme .gfield--type-consent:has(input[type="checkbox"]:checked) .gfield_consent_label {
  color: var(--bl-leaf-dark);
  font-weight: 600;
}

/* Older browsers without :has() fall back to a quieter agreed state.
   The checkbox itself still turns green via the global checkbox rule. */


/* ==========================================================================
   7. FILE UPLOAD, PASSWORD STRENGTH, CHAR COUNTER
   ========================================================================== */
/* --- File upload --------------------------------------------------------- */
.gform_wrapper.gravity-theme .ginput_container_fileupload {
  background: var(--bl-bg-soft);
  border: 1.5px dashed var(--bl-line);
  border-radius: var(--bl-radius);
  padding: 1.25rem;
  transition: border-color var(--bl-dur) var(--bl-ease),
              background var(--bl-dur) var(--bl-ease);
}

.gform_wrapper.gravity-theme .ginput_container_fileupload:hover {
  border-color: var(--bl-leaf);
  background: var(--bl-leaf-tint);
}

.gform_wrapper.gravity-theme input[type="file"] {
  font-family: var(--bl-font-body);
  font-size: 0.95rem;
  color: var(--bl-ink-soft);
  width: 100%;
  cursor: pointer;
}

.gform_wrapper.gravity-theme input[type="file"]::file-selector-button {
  font-family: var(--bl-font-display);
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--bl-navy);
  background: #fff;
  border: 1.5px solid var(--bl-navy);
  border-radius: var(--bl-radius-sm);
  padding: 0.5rem 1rem;
  margin-right: 0.85rem;
  cursor: pointer;
  transition: all var(--bl-dur) var(--bl-ease);
}

.gform_wrapper.gravity-theme input[type="file"]::file-selector-button:hover {
  background: var(--bl-navy);
  color: #fff;
}

.gform_wrapper.gravity-theme .gform_fileupload_rules {
  display: block;
  margin-top: 0.5rem;
  font-size: 0.78rem;
  color: var(--bl-muted);
}

/* --- Char counter ------------------------------------------------------- */
.gform_wrapper.gravity-theme .charleft.ginput_counter {
  font-size: 0.78rem;
  color: var(--bl-muted);
  margin-top: 0.4rem;
  letter-spacing: 0.005em;
}

.gform_wrapper.gravity-theme .charleft.ginput_counter.warning_text {
  color: var(--bl-warn);
}
.gform_wrapper.gravity-theme .charleft.ginput_counter.too_long {
  color: var(--bl-danger);
}

/* --- Password ----------------------------------------------------------- */
.gform_wrapper.gravity-theme .ginput_password {
  position: relative;
  display: block;
}

.gform_wrapper.gravity-theme .password_input_container {
  position: relative;
  display: block;
}

.gform_wrapper.gravity-theme .gform_show_password {
  position: absolute;
  right: 0.5rem;
  top: 50%;
  transform: translateY(-50%);
  background: transparent;
  border: 0;
  cursor: pointer;
  color: var(--bl-muted);
  padding: 0.4rem;
  border-radius: var(--bl-radius-sm);
  transition: color var(--bl-dur) var(--bl-ease),
              background var(--bl-dur) var(--bl-ease);
}

.gform_wrapper.gravity-theme .gform_show_password:hover {
  color: var(--bl-navy);
  background: var(--bl-line-soft);
}

.gform_wrapper.gravity-theme .gfield_password_strength {
  margin-top: 0.6rem;
  padding: 0.6rem 0.85rem;
  border-radius: var(--bl-radius-sm);
  font-size: 0.82rem;
  font-weight: 600;
  text-align: center;
  letter-spacing: 0.02em;
  background: var(--bl-line-soft);
  color: var(--bl-muted);
  border-left: 3px solid var(--bl-line);
}
.gform_wrapper.gravity-theme .gfield_password_strength.short  { background: #fdecea; color: var(--bl-danger);    border-color: var(--bl-danger); }
.gform_wrapper.gravity-theme .gfield_password_strength.bad    { background: #fdecea; color: var(--bl-danger);    border-color: var(--bl-danger); }
.gform_wrapper.gravity-theme .gfield_password_strength.good   { background: #fff5e0; color: var(--bl-warn);      border-color: var(--bl-warn); }
.gform_wrapper.gravity-theme .gfield_password_strength.strong { background: var(--bl-leaf-tint); color: var(--bl-leaf-dark); border-color: var(--bl-leaf-dark); }


/* ==========================================================================
   8. TINYMCE EDITOR FRAME
   ========================================================================== */
.gform_wrapper.gravity-theme .wp-editor-wrap {
  border: 1.5px solid transparent;
  border-radius: var(--bl-radius);
  overflow: hidden;
  background: #fff;
  box-shadow: var(--bl-shadow-sm);
  transition: border-color var(--bl-dur) var(--bl-ease),
              box-shadow var(--bl-dur) var(--bl-ease);
}

.gform_wrapper.gravity-theme .wp-editor-wrap:hover {
  border-color: var(--bl-line);
}

.gform_wrapper.gravity-theme .wp-editor-wrap:focus-within {
  border-color: var(--bl-leaf);
  box-shadow: var(--bl-focus);
}

.gform_wrapper.gravity-theme .mce-tinymce {
  border: 0 !important;
  box-shadow: none !important;
}

.gform_wrapper.gravity-theme .mce-toolbar-grp,
.gform_wrapper.gravity-theme .mce-menubar {
  background: var(--bl-bg-soft) !important;
  border-color: var(--bl-line-soft) !important;
}

.gform_wrapper.gravity-theme .gp-word-count-label {
  display: block;
  margin-top: 0.4rem;
  font-size: 0.78rem;
  color: var(--bl-muted);
}


/* ==========================================================================
   9. BUTTONS
   ========================================================================== */
.gform_wrapper.gravity-theme .gform-page-footer,
.gform_wrapper.gravity-theme .gform_footer {
  display: flex;
  flex-wrap: wrap;
  gap: 0.85rem;
  align-items: center;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--bl-line-soft);
}

/* Common button base */
.gform_wrapper.gravity-theme .gform_button,
.gform_wrapper.gravity-theme .gform_next_button,
.gform_wrapper.gravity-theme .gform_previous_button,
.gform_wrapper.gravity-theme input[type="submit"].gform_button,
.gform_wrapper.gravity-theme .button {
  font-family: var(--bl-font-display);
  font-size: 0.95rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  padding: 0.85rem 1.85rem;
  border-radius: var(--bl-radius);
  border: 1.5px solid transparent;
  cursor: pointer;
  transition: all var(--bl-dur) var(--bl-ease);
  -webkit-appearance: none;
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 48px;
  line-height: 1;
}

/* Primary (Next, Submit, Continue) — solid leaf green */
.gform_wrapper.gravity-theme .gform_next_button,
.gform_wrapper.gravity-theme .gform_button,
.gform_wrapper.gravity-theme input[type="submit"]:not(.gform_previous_button) {
  background: var(--bl-leaf-dark);
  color: #fff;
  border-color: var(--bl-leaf-dark);
  box-shadow: 0 2px 0 rgba(0,0,0,0.04), var(--bl-shadow-sm);
}

.gform_wrapper.gravity-theme .gform_next_button:hover,
.gform_wrapper.gravity-theme .gform_button:hover,
.gform_wrapper.gravity-theme input[type="submit"]:not(.gform_previous_button):hover {
  background: var(--bl-navy);
  border-color: var(--bl-navy);
  transform: translateY(-1px);
  box-shadow: var(--bl-shadow);
}

.gform_wrapper.gravity-theme .gform_next_button:active,
.gform_wrapper.gravity-theme .gform_button:active {
  transform: translateY(0);
  box-shadow: var(--bl-shadow-sm);
}

.gform_wrapper.gravity-theme .gform_next_button:focus-visible,
.gform_wrapper.gravity-theme .gform_button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(127, 168, 58, 0.35), var(--bl-shadow);
}

/* Secondary (Back / Previous) — ghost */
.gform_wrapper.gravity-theme .gform_previous_button,
.gform_wrapper.gravity-theme input[type="submit"].gform_previous_button {
  background: transparent;
  color: var(--bl-ink-soft);
  border-color: transparent;
  box-shadow: none;
  margin-right: auto; /* push primary to the right */
}

.gform_wrapper.gravity-theme .gform_previous_button:hover {
  color: var(--bl-navy);
  background: var(--bl-line-soft);
  border-color: transparent;
  transform: none;
  box-shadow: none;
}

.gform_wrapper.gravity-theme .gform_previous_button::before {
  content: "←";
  font-size: 1.1em;
  margin-right: 0.1rem;
}

.gform_wrapper.gravity-theme .gform_next_button::after,
.gform_wrapper.gravity-theme .gform_button:not(.gform_previous_button):not(.gform_show_password)::after {
  content: "→";
  font-size: 1.1em;
  transition: transform var(--bl-dur) var(--bl-ease);
}

.gform_wrapper.gravity-theme .gform_next_button:hover::after,
.gform_wrapper.gravity-theme .gform_button:not(.gform_previous_button):hover::after {
  transform: translateX(3px);
}

/* Theme-button simple (e.g., show password toggle) shouldn't get arrow */
.gform_wrapper.gravity-theme .gform-theme-button--simple::after,
.gform_wrapper.gravity-theme .gform_show_password::after {
  display: none;
}


/* ==========================================================================
   10. VALIDATION & ERRORS
   ========================================================================== */
.gform_wrapper.gravity-theme .gfield_error input,
.gform_wrapper.gravity-theme .gfield_error textarea,
.gform_wrapper.gravity-theme .gfield_error select,
.gform_wrapper.gravity-theme [aria-invalid="true"]:not([aria-invalid="false"]) {
  border-color: var(--bl-danger);
  background: #fffafa;
}

.gform_wrapper.gravity-theme .gfield_error input:focus,
.gform_wrapper.gravity-theme .gfield_error textarea:focus,
.gform_wrapper.gravity-theme .gfield_error select:focus {
  box-shadow: 0 0 0 3px rgba(200, 52, 29, 0.18);
}

.gform_wrapper.gravity-theme .gfield_validation_message,
.gform_wrapper.gravity-theme .validation_message {
  color: var(--bl-danger);
  background: var(--bl-danger-bg);
  border-left: 3px solid var(--bl-danger);
  border-radius: var(--bl-radius-sm);
  padding: 0.5rem 0.75rem;
  margin-top: 0.5rem;
  font-size: 0.85rem;
  font-weight: 500;
}

.gform_wrapper.gravity-theme .validation_message--hidden-on-empty:empty {
  display: none;
}

.gform_wrapper.gravity-theme .gform_validation_errors,
.gform_wrapper.gravity-theme .validation_error {
  background: var(--bl-danger-bg);
  border: 1px solid var(--bl-danger-soft);
  border-left: 4px solid var(--bl-danger);
  border-radius: var(--bl-radius);
  padding: 1rem 1.25rem;
  color: var(--bl-danger);
  font-weight: 500;
  margin-bottom: 1.5rem;
}

.gform_wrapper.gravity-theme .gform_validation_errors h2 {
  margin: 0 0 0.4rem;
  font-family: var(--bl-font-display);
  font-size: 1.05rem;
  color: var(--bl-danger);
}


/* ==========================================================================
   11. PHONE (intl-tel-input) + ADDRESS GRID
   ========================================================================== */
/* Phone field — let intl-tel-input lay itself out, just polish the wrapper */
.gform_wrapper.gravity-theme .iti {
  display: block !important;
  width: 100%;
}

.gform_wrapper.gravity-theme .iti__tel-input {
  width: 100% !important;
}

.gform_wrapper.gravity-theme .iti__selected-country {
  background: transparent !important;
  border-radius: var(--bl-radius) 0 0 var(--bl-radius);
}

.gform_wrapper.gravity-theme .iti__selected-country:hover {
  background: var(--bl-line-soft) !important;
}

/* --- Complex grids (Name, Address) -------------------------------------- */
.gform_wrapper.gravity-theme .ginput_complex.gform-grid-row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem;
}

.gform_wrapper.gravity-theme .ginput_complex .gform-grid-col {
  display: flex;
  flex-direction: column;
}

/* Full-width rows inside a complex grid */
.gform_wrapper.gravity-theme .ginput_complex .ginput_full,
.gform_wrapper.gravity-theme .ginput_complex .address_line_1,
.gform_wrapper.gravity-theme .ginput_complex .address_line_2 {
  grid-column: 1 / -1;
}

.gform_wrapper.gravity-theme .ginput_complex .name_first,
.gform_wrapper.gravity-theme .ginput_complex .name_last {
  grid-column: span 1;
}

.gform_wrapper.gravity-theme .gf_clear_complex {
  display: none; /* legacy clearfix not needed in grid */
}


/* ==========================================================================
   12. MISC: CURRENT ACCOUNT CHIP, HIDDEN ADMIN, RECAPTCHA
   ========================================================================== */
/* Current Account chip — preserves intent of original style with a refresh */
.gform_wrapper.gravity-theme .currentaccount {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0;
  padding: 0.45rem 0.85rem;
  background: var(--bl-bg-soft);
  border: 1px solid var(--bl-line-soft);
  border-radius: 999px;
  font-size: 0.78rem;
  color: var(--bl-ink-soft);
}

.gform_wrapper.gravity-theme .currentaccount .gfield_label {
  font-family: var(--bl-font-display);
  font-size: 0.72rem !important;
  font-weight: 600;
  color: var(--bl-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin: 0 !important;
  padding: 0 !important;
  display: inline-block;
  vertical-align: middle;
  line-height: 1;
}

.gform_wrapper.gravity-theme .currentaccount .ginput_container_select {
  display: inline-block;
  vertical-align: middle;
  margin: 0 !important;
  padding: 0 !important;
  width: auto;
}

.gform_wrapper.gravity-theme .currentaccount select.gfield_select {
  font-family: var(--bl-font-body);
  font-size: 0.78rem !important;
  font-weight: 600;
  color: var(--bl-navy);
  padding: 0 !important;
  margin: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  line-height: 1.2 !important;
  width: auto !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: none !important;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: none !important;
  cursor: default;
}

.gform_wrapper.gravity-theme .currentaccount select.gfield_select::-ms-expand {
  display: none;
}

@media (max-width: 640px) {
  .gform_wrapper.gravity-theme .currentaccount {
    width: 100%;
    border-radius: var(--bl-radius);
  }
  .gform_wrapper.gravity-theme .currentaccount .gfield_label,
  .gform_wrapper.gravity-theme .currentaccount .ginput_container_select {
    display: block;
  }
  .gform_wrapper.gravity-theme .currentaccount .gfield_label {
    margin-bottom: 2px !important;
  }
}

/* The "this field is hidden when viewing the form" admin badge — only
   shown in the form editor, never on the front-end. */
.gform_wrapper.gravity-theme .admin-hidden-markup {
  display: none !important;
}

/* --- Static-hidden fields ------------------------------------------------
   Gravity Forms ships `basic.css` which is supposed to hide fields marked
   "Visibility: Hidden" or "Visibility: Administrative" in the form editor.
   On this site, basic.css's hide rule isn't reliably applying (likely
   stylesheet load order or the `gform-theme--no-framework` wrapper class
   altering it), so we re-state it here.

   IMPORTANT: this hides only fields that are STATICALLY hidden via the
   form editor's visibility setting. It does NOT touch conditional-logic
   fields (those use `data-conditional-logic` plus inline `style=display:none`
   that the JS toggles, and we leave those completely alone).
-------------------------------------------------------------------------- */
.gform_wrapper.gravity-theme .gfield_visibility_hidden,
.gform_wrapper.gravity-theme .gfield_visibility_administrative,
.gform_wrapper.gravity-theme .gform_hidden,
.gform_wrapper.gravity-theme .field_admin_only {
  display: none !important;
}

/* --- reCAPTCHA -----------------------------------------------------------
   The default Google reCAPTCHA v3 badge is fixed to bottom-right of the
   viewport and overlaps the form footer / submit button. Per Google's
   guidance (developers.google.com/recaptcha/docs/faq), the badge MAY be
   hidden as long as the required attribution text is shown in the form:

     This site is protected by reCAPTCHA and the Google
     <a href="https://policies.google.com/privacy">Privacy Policy</a> and
     <a href="https://policies.google.com/terms">Terms of Service</a> apply.

   Drop a small block with class `grecaptcha-attribution` into the form
   footer (or just before the submit button) on the WP side. Style below.
-------------------------------------------------------------------------- */
.gform_wrapper.gravity-theme .ginput_recaptcha {
  margin-top: 0.5rem;
}

/* Globally hide the floating Google badge — it's covering buttons.
   Hiding via .grecaptcha-badge is OUTSIDE the form scope because Google
   injects it at the document root, so it isn't a descendant of
   .gform_wrapper. We unscope this single rule intentionally. */
body .grecaptcha-badge {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

/* Optional helper class for the attribution disclosure text */
.gform_wrapper.gravity-theme .grecaptcha-attribution,
.grecaptcha-attribution {
  font-size: 0.75rem;
  color: var(--bl-muted, #6b7589);
  line-height: 1.5;
  margin-top: 0.85rem;
}
.gform_wrapper.gravity-theme .grecaptcha-attribution a,
.grecaptcha-attribution a {
  color: inherit;
  text-decoration: underline;
  text-decoration-color: rgba(0,0,0,0.2);
}
.gform_wrapper.gravity-theme .grecaptcha-attribution a:hover,
.grecaptcha-attribution a:hover {
  color: var(--bl-navy, #1a2c5e);
  text-decoration-color: currentColor;
}

/* CAPTCHA field — hide the redundant "CAPTCHA" label since attribution covers it */
.gform_wrapper.gravity-theme .gfield--type-captcha .gfield_label {
  position: absolute;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Also hide the CAPTCHA field's container — it's empty visual space
   once the badge is hidden. */
.gform_wrapper.gravity-theme .gfield--type-captcha {
  display: none;
}


/* ==========================================================================
   13. RESPONSIVE
   ========================================================================== */
@media (max-width: 640px) {
  /* Radio button rows: let them flow but cap to ~2 per row on small screens.
     Pure binary groups (Yes/No) stay as a 2-up segmented row. */
  .gform_wrapper.gravity-theme .gfield_radio .gform-field-label--type-inline {
    font-size: 0.85rem;
    padding: 0.55rem 0.95rem;
    min-height: 40px;
  }

  /* Consent cards — tighter padding on mobile */
  .gform_wrapper.gravity-theme .gfield--type-consent {
    padding: 1rem 1.1rem !important;
  }
}

@media (max-width: 768px) {
  .gform_wrapper.gravity-theme {
    padding: 1.25rem;
    border-radius: var(--bl-radius);
    box-shadow: none;
  }

  .gform_wrapper.gravity-theme .gsection_title {
    font-size: 1.6rem;
  }

  /* Collapse all multi-column fields to full width on mobile */
  .gform_wrapper.gravity-theme .gfield--width-half,
  .gform_wrapper.gravity-theme .gfield--width-third,
  .gform_wrapper.gravity-theme .gfield--width-quarter,
  .gform_wrapper.gravity-theme .gfield--width-sixth,
  .gform_wrapper.gravity-theme .gfield--width-twelfth,
  .gform_wrapper.gravity-theme .gfield--width-two-thirds,
  .gform_wrapper.gravity-theme .gfield--width-three-quarters,
  .gform_wrapper.gravity-theme .gfield--width-five-sixths,
  .gform_wrapper.gravity-theme .gfield--width-eleven-twelfths,
  .gform_wrapper.gravity-theme .gfield--width-five-twelfths,
  .gform_wrapper.gravity-theme .gfield--width-seven-twelfths {
    flex-basis: 100%;
    margin-right: 0;
  }

  /* Stack name/address grids */
  .gform_wrapper.gravity-theme .ginput_complex.gform-grid-row {
    grid-template-columns: 1fr;
  }

  /* Stack 3-col checkbox layout */
  .gform_wrapper.gravity-theme .gf_list_3col_vertical .gfield_checkbox,
  .gform_wrapper.gravity-theme .gf_list_3col_vertical .gfield_radio {
    grid-template-columns: repeat(2, 1fr);
  }

  .gform_wrapper.gravity-theme .gf_progressbar_title {
    flex-wrap: wrap;
  }
  .gform_wrapper.gravity-theme .gf_progressbar_title .gf_step_label {
    margin-left: 0;
    width: 100%;
    margin-top: 0.2rem;
  }

  .gform_wrapper.gravity-theme .gform_next_button,
  .gform_wrapper.gravity-theme .gform_button {
    width: 100%;
  }

  .gform_wrapper.gravity-theme .gform_previous_button {
    order: 2;
    margin-right: 0;
    width: 100%;
  }
}

@media (max-width: 420px) {
  .gform_wrapper.gravity-theme .gf_list_3col_vertical .gfield_checkbox,
  .gform_wrapper.gravity-theme .gf_list_3col_vertical .gfield_radio {
    grid-template-columns: 1fr;
  }
}


/* ==========================================================================
   PRINT
   ========================================================================== */
@media print {
  .gform_wrapper.gravity-theme {
    box-shadow: none;
    padding: 0;
  }
  .gform_wrapper.gravity-theme .gform-page-footer,
  .gform_wrapper.gravity-theme .gform_button,
  .gform_wrapper.gravity-theme .gform_previous_button,
  .gform_wrapper.gravity-theme .gform_next_button {
    display: none;
  }
}