/*
 * Memphis Theme - Gravity Forms Base Stylesheet
 *
 * NUM-standard form styling, scoped to .gform_wrapper so it does not leak
 * to other elements. Uses CSS custom properties for theming; per-site
 * overrides can re-declare these on .gform_wrapper in the kit's Custom CSS
 * or a per-site stylesheet.
 *
 * Enqueued by memphis_enqueue_gravity_forms_styles() in functions.php,
 * conditionally on pages where Gravity Forms is rendered.
 *
 * Migrated from Elementor Custom Code snippet (Blueprint snippet ID 663)
 * to a theme file in Memphis 3.0.3.
 */

/* Gravity Forms - NUM Base Stylesheet

   Scoped to .gform_wrapper so it does not leak to other forms.

   System fonts. Accessible focus. Portable across sites. */



.gform_wrapper {

  /* Design tokens. Override these per-site by re-declaring on

     .gform_wrapper in the child theme or a per-site snippet. */

  --gf-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI",

                    Roboto, Oxygen-Sans, Ubuntu, Cantarell,

                    "Helvetica Neue", sans-serif;

  --gf-text-color: #000;

  --gf-text-muted: #6b7280;

  --gf-input-bg: #f4f4f4;

  --gf-input-bg-focus: #fff;

  --gf-input-border: rgba(102, 102, 102, 0.28);

  --gf-input-border-focus: #cecece;

  --gf-input-radius: 3px;

  --gf-input-min-height: 50px;

  --gf-focus-ring: #2563eb;

  --gf-check-color: #50a244;

  --gf-prev-button-bg: #677a95;

  --gf-space-xs: 4px;

  --gf-space-sm: 8px;

  --gf-space-md: 15px;

  --gf-space-lg: 20px;

  --gf-space-xl: 28px;



  font-family: var(--gf-font-family);

  color: var(--gf-text-color);

}



/* Inherit the font down through every form element.

   Replaces the 12-selector !important font-family list. */

.gform_wrapper,

.gform_wrapper *,

.gform_wrapper input,

.gform_wrapper select,

.gform_wrapper textarea,

.gform_wrapper button {

  font-family: inherit;

}



/* ------------- HEADINGS ------------- */

/* Hide GF's own heading; titles are rendered by the page template. */

.gform_wrapper .gform_heading {

  display: none;

}



/* Hide the "required" legend; we mark required fields inline. */

.gform_wrapper .gform_required_legend {

  display: none;

}



/* ------------- FIELDS & LABELS ------------- */

.gform_wrapper .gfield {

  font-weight: normal;

}



.gform_wrapper .gfield_label {

  margin-bottom: var(--gf-space-sm);

  font-size: 1rem;

  font-weight: 600;

  color: var(--gf-text-color);

}



.gform_wrapper .gfield_label_before_complex {

  padding-bottom: 5px;

  margin-bottom: 0;

}



.gform_wrapper .ginput_complex label {

  font-size: 0.875rem;

  padding-top: 5px;

  font-weight: 600;

}



.gform_wrapper .gfield_description {

  padding: 0 0 var(--gf-space-sm);

  font-size: 0.9em;

  line-height: 1.4;

}



.gform_wrapper .gfield_consent_label,

.gform_wrapper .gchoice {

  font-size: 1rem;

}



.gform_wrapper legend {

  padding-bottom: 0;

  border: 0;

}



/* ------------- INPUTS, SELECTS, TEXTAREAS ------------- */

.gform_wrapper input[type="text"],

.gform_wrapper input[type="email"],

.gform_wrapper input[type="url"],

.gform_wrapper input[type="tel"],

.gform_wrapper input[type="password"],

.gform_wrapper input[type="search"],

.gform_wrapper input[type="number"],

.gform_wrapper input[type="date"],

.gform_wrapper input[type="month"],

.gform_wrapper input[type="time"],

.gform_wrapper input[type="datetime"],

.gform_wrapper input[type="datetime-local"],

.gform_wrapper input[type="week"],

.gform_wrapper input[type="color"],

.gform_wrapper select,

.gform_wrapper textarea {

  background-color: var(--gf-input-bg);

  border: 1px solid var(--gf-input-border);

  border-radius: var(--gf-input-radius);

  font-size: 0.95em;

  width: 100%;

  min-height: var(--gf-input-min-height);

  padding: var(--gf-space-sm) var(--gf-space-md);

}



.gform_wrapper textarea {

  line-height: 1.5;

  resize: vertical;

}



/* Accessible focus indicator (WCAG 2.1 AA 1.4.11 + 2.4.7). */

.gform_wrapper input:focus,

.gform_wrapper select:focus,

.gform_wrapper textarea:focus,

.gform_wrapper button:focus {

  background-color: var(--gf-input-bg-focus);

  border-color: var(--gf-input-border-focus);

  outline: 2px solid var(--gf-focus-ring);

  outline-offset: 2px;

}



/* ------------- CHECKBOXES ------------- */

.gform_wrapper input[type="checkbox"] {

  -webkit-appearance: none;

  appearance: none;

  display: inline-block;

  width: 18px;

  min-width: 18px;

  height: 18px;

  margin: -3px var(--gf-space-sm) 0 0;

  background-color: rgba(0, 0, 0, 0.13);

  border: 0;

  border-radius: 2px;

  cursor: pointer;

  vertical-align: middle;

  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);

}



.gform_wrapper input[type="checkbox"]:checked {

  background-color: var(--gf-input-bg-focus);

  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='%2350a244' d='M6.1 12.3 2 8.2l1.4-1.4 2.7 2.7L12.6 3l1.4 1.4z'/%3E%3C/svg%3E");

  background-repeat: no-repeat;

  background-position: center;

  background-size: 14px 14px;

}



.gform_wrapper .gfield_checkbox label,

.gform_wrapper .gfield_radio label {

  display: inline-block;

  font-size: 1.0625rem;

}



.gform_wrapper .gchoice {

  margin-bottom: var(--gf-space-xs);

}



/* ------------- RADIO BUTTONS ------------- */

/* Visually hide the native input but keep it in the a11y tree

   and keyboard-focusable. Replaces the old visibility:hidden trick

   which broke screen-reader announcements. */

.gform_wrapper input[type="radio"] {

  position: absolute;

  width: 1px;

  height: 1px;

  padding: 0;

  margin: -1px;

  overflow: hidden;

  clip: rect(0, 0, 0, 0);

  white-space: nowrap;

  border: 0;

}



.gform_wrapper input[type="radio"] + label {

  position: relative;

  cursor: pointer;

  padding-left: 26px;

}



.gform_wrapper input[type="radio"] + label::before {

  content: "";

  position: absolute;

  left: 0;

  top: 50%;

  transform: translateY(-50%);

  width: 18px;

  height: 18px;

  border-radius: 50%;

  background-color: rgba(0, 0, 0, 0.13);

  border: 1px solid rgba(0, 0, 0, 0.13);

}



.gform_wrapper input[type="radio"]:checked + label::before {

  background: var(--gf-check-color);

}



/* Focus ring for the keyboard-focused radio. */

.gform_wrapper input[type="radio"]:focus + label::before {

  outline: 2px solid var(--gf-focus-ring);

  outline-offset: 2px;

}



.gform_wrapper .gfield_radio {

  padding-top: var(--gf-space-sm);

}



/* ------------- SECTIONS ------------- */

.gform_wrapper .gsection {

  margin: var(--gf-space-xl) 0 0;

  border-bottom: 0;

}



.gform_wrapper .gsection_title {

  font-size: 1.5rem;

  text-transform: uppercase;

  font-weight: 800;

  color: var(--gf-text-color);

  border-bottom: 1px solid rgba(0, 0, 0, 0.2);

  padding-bottom: var(--gf-space-sm);

  margin: 0;

}



.gform_wrapper .gsection_description {

  font-size: 0.9em;

  line-height: 1.4;

}



/* ------------- BUTTONS ------------- */

.gform_wrapper .gform_footer button,

.gform_wrapper .gform_footer input[type="submit"],

.gform_wrapper .gform_page_footer button,

.gform_wrapper .gform_page_footer input[type="submit"] {

  font-size: 1rem;

  padding: var(--gf-space-md);

  min-width: 150px;

  margin-bottom: var(--gf-space-sm);

  cursor: pointer;

}



/* Save & Continue, Previous button. */

.gform_wrapper .gform_previous_button.button,

.gform_wrapper .gform_save_link.button {

  background-color: var(--gf-prev-button-bg);

  color: var(--gf-input-bg-focus);

  text-decoration: none;

  -webkit-appearance: none;

  font-size: 0.9375rem;

  padding: var(--gf-space-md);

}



.gform_wrapper .gform_save_link.button svg {

  display: inline-block;

  margin-right: var(--gf-space-xs);

}



/* ------------- FILE UPLOAD (Gravity Perks File Upload Pro) ------------- */

.gform_wrapper .gpfup__select-files {

  background-color: var(--gf-input-bg-focus);

  border: 1px solid rgba(0, 0, 0, 0.2);

  border-radius: var(--gf-input-radius);

  padding: var(--gf-space-sm) var(--gf-space-md);

  font-size: 1rem;

  font-weight: 400;

  color: var(--gf-text-muted);

  margin: var(--gf-space-md) 0;

}



.gform_wrapper .gpfup__select-files:hover {

  background-color: #605e5e;

  color: var(--gf-input-bg-focus);

}



/* ------------- INLINE NOTE BLOCKS (HTML field utility classes) ------------- */

.gform_wrapper .note,

.gform_wrapper .note-green,

.gform_wrapper .note-blue,

.gform_wrapper .note-yellow,

.gform_wrapper .note-red,

.gform_wrapper .alert,

.gform_wrapper .alert-red {

  border-left: 4px solid;

  padding: 7px 8px;

  border-radius: var(--gf-input-radius);

  font-size: 0.9em;

}



.gform_wrapper .note          { border-color: #22911f; background: #f4f2f2; }

.gform_wrapper .note-green    { border-color: #22911f; background: rgba(34, 145, 31, 0.08); }

.gform_wrapper .note-blue     { border-color: #1f6c91; background: rgba(31, 108, 145, 0.06); }

.gform_wrapper .note-yellow   { border-color: #ff9c02; background: #fdefd8; }

.gform_wrapper .note-red,

.gform_wrapper .alert         { border-color: #ffbf00; background: #fdf1d9; }



.gform_wrapper .alert-red {

  border: 1px solid #fdd3d3;

  background: #fff6f6;

  padding: 10px;

  margin-top: -10px;

}



.gform_wrapper .alert-red b   { color: #d00000; }

.gform_wrapper .error-invalid a { font-style: italic; }



/* ------------- TOOLTIPS ------------- */

#powerTip {

  line-height: 1.4;

}
