/*
Theme Name: Hello Elementor Child — TSA
Theme URI: https://thespaceagency.io
Description: The Space Agency child theme for the TSA framework. Holds acf-json, form styles and framework PHP. Design lives in the Elementor v4 design system, not here.
Author: The Space Agency
Author URI: https://thespaceagency.io
Template: hello-elementor
Version: 1.0.0
Text Domain: hello-elementor-child-tsa
*/

/* Framework CSS that can't live in Elementor classes goes below —
   e.g. Gravity Forms markup styling (see references/snippets/). */

/* ===== Gravity Forms — framework baseline (references/snippets/gravity-forms-css.md) =====
   Uses the design-system CSS custom properties directly (--primary, --space-md, etc.)
   so it stays in sync with the token set automatically — never hand-set a hex here. */
.gform_wrapper.gravity-theme { max-width: 100%; }
/* Multi-file upload "Select files" button: GF's Orbital theme colours this from its
   own --gf-color-primary token (hardcoded #204ce5, defined on .gform-theme--framework,
   a class GF stacks on the same wrapper) rather than anything this stylesheet's normal
   selectors reach. Overriding that token chain fought GF's own cascade with no reliable
   win; a direct override on the actual button class is simpler and guaranteed to hold
   regardless of how GF's internal tokens resolve. */
.gform_wrapper.gravity-theme .gform_button_select_files {
  background: var(--primary) !important;
  border-color: var(--primary) !important;
}
.gform_wrapper.gravity-theme .gform_button_select_files:hover { background: var(--primary-hover) !important; }
.gform_wrapper.gravity-theme .gform_drop_area { border-color: var(--border) !important; }
.gform_wrapper.gravity-theme .gform_drop_instructions svg { color: var(--primary); fill: var(--primary); }
.gform_wrapper.gravity-theme .gform_fields { display: flex; flex-direction: column; gap: var(--space-md); list-style: none; margin: 0; padding: 0; }
.gform_wrapper.gravity-theme .gfield { list-style: none; }
.gform_wrapper.gravity-theme .gfield_label { font-family: var(--font-body); font-size: var(--text-sm); font-weight: 600; color: var(--text); margin: 0 0 var(--space-xs); display: block; }
.gform_wrapper.gravity-theme .gfield_required { color: var(--error); margin-left: 2px; }
.gform_wrapper.gravity-theme .ginput_container { margin-top: 0; }
.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=number],
.gform_wrapper.gravity-theme input[type=url],
.gform_wrapper.gravity-theme textarea,
.gform_wrapper.gravity-theme select {
  width: 100%;
  font-family: var(--font-body);
  font-size: var(--text-base);
  color: var(--text);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: var(--space-sm) var(--space-md);
  box-sizing: border-box;
  transition: border-color .15s ease;
}
.gform_wrapper.gravity-theme textarea { min-height: 140px; resize: vertical; }
.gform_wrapper.gravity-theme input:focus,
.gform_wrapper.gravity-theme textarea:focus,
.gform_wrapper.gravity-theme select:focus {
  outline: none;
  border-color: var(--primary);
}
.gform_wrapper.gravity-theme .gfield_error input,
.gform_wrapper.gravity-theme .gfield_error textarea { border-color: var(--error); }
.gform_wrapper.gravity-theme .validation_message { color: var(--error); font-size: var(--text-sm); margin-top: var(--space-xs); }
.gform_wrapper.gravity-theme .gform_footer { margin-top: var(--space-lg); padding: 0; }
.gform_wrapper.gravity-theme .gform_button {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: 600;
  color: var(--text-inverse);
  background: var(--primary);
  border: none;
  border-radius: var(--radius-md);
  padding: var(--space-sm) var(--space-lg);
  cursor: pointer;
  transition: background .15s ease;
}
.gform_wrapper.gravity-theme .gform_button:hover { background: var(--primary-hover); }
.gform_wrapper.gravity-theme input[type=file]::file-selector-button {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--text);
  background: var(--surface-alt);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: var(--space-xs) var(--space-sm);
  margin-right: var(--space-sm);
  cursor: pointer;
  transition: background .15s ease;
}
.gform_wrapper.gravity-theme input[type=file]::file-selector-button:hover { background: var(--border); }
.gform_wrapper.gravity-theme .gform_confirmation_message { font-family: var(--font-body); color: var(--text); font-size: var(--text-base); }
.gform_wrapper.gravity-theme .gform_validation_errors { border-color: var(--error); color: var(--error); border-radius: var(--radius-sm); }
