/**
 * Gravity Forms styling scoped to the SEVEN apply section.
 */

.seven-gform .gform_wrapper,
.seven-gform .gform_wrapper.gravity-theme,
.seven-gform .gform_wrapper.gform-theme--orbital {
  --gf-form-gap-y: 1.5rem;
  --gf-form-gap-x: 1rem;
  --gf-field-gap-y: 0.5rem;
  --gf-label-font-size: 0.875rem;
  --gf-label-font-weight: 600;
  --gf-label-color: var(--seven-foreground);
  --gf-field-border-color: var(--seven-border);
  --gf-field-bg-color: var(--seven-background);
  --gf-field-text-color: var(--seven-foreground);
  --gf-field-placeholder-color: var(--seven-muted-foreground);
  --gf-field-focus-border-color: var(--seven-primary);
  --gf-field-focus-ring-color: color-mix(in oklch, var(--seven-primary) 35%, transparent);
  --gf-button-bg-color: #1d8ecd;
  --gf-button-text-color: #000000;
  --gf-ctrl-btn-bg-color-primary: #1d8ecd;
  --gf-ctrl-btn-bg-color-hover-primary: #1a7fb8;
  --gf-ctrl-btn-color-primary: #000000;
  --gf-ctrl-btn-color-hover-primary: #000000;
  --gf-color-primary: #1d8ecd;
  --gf-color-primary-rgb: 29, 142, 205;
  --gf-color-primary-contrast: #000000;
  --gf-color-primary-contrast-rgb: 0, 0, 0;
  --gf-color-in-ctrl-primary: #1d8ecd;
  --gf-color-in-ctrl-primary-rgb: 29, 142, 205;
  --gf-color-in-ctrl-primary-contrast: #000000;
  --gf-color-in-ctrl-primary-contrast-rgb: 0, 0, 0;
  --gf-radius: 9999px;
  margin: 0;
  font-family: var(--seven-font-sans);
}

.seven-gform .gform_wrapper form {
  display: grid;
  gap: var(--gf-form-gap-y);
}

.seven-gform .gform_wrapper .gform_heading {
  display: none;
}

.seven-gform .gform_wrapper .gform_fields {
  display: grid;
  gap: var(--gf-form-gap-y);
  grid-template-columns: minmax(0, 1fr);
  list-style: none;
  margin: 0;
  padding: 0;
}

.seven-gform .gform_wrapper .gfield {
  margin: 0;
  padding: 0;
}

.seven-gform .gform_wrapper .gfield_label,
.seven-gform .gform_wrapper .gform-field-label,
.seven-gform .gform_wrapper legend.gfield_label {
  display: block;
  margin-bottom: var(--gf-field-gap-y);
  font-family: var(--seven-font-display);
  font-size: var(--gf-label-font-size);
  font-weight: var(--gf-label-font-weight);
  color: var(--gf-label-color);
}

.seven-gform .gform_wrapper .gfield_required,
.seven-gform .gform_wrapper .gfield_required_text {
  color: var(--seven-primary);
}

.seven-gform .gform_wrapper .gfield_description,
.seven-gform .gform_wrapper .gfield_instruction {
  margin-top: 0.375rem;
  font-size: 0.8125rem;
  line-height: 1.5;
  color: var(--seven-muted-foreground);
}

.seven-gform .gform_wrapper input[type="text"],
.seven-gform .gform_wrapper input[type="email"],
.seven-gform .gform_wrapper input[type="tel"],
.seven-gform .gform_wrapper input[type="url"],
.seven-gform .gform_wrapper input[type="number"],
.seven-gform .gform_wrapper input[type="password"],
.seven-gform .gform_wrapper input[type="date"],
.seven-gform .gform_wrapper input[type="time"],
.seven-gform .gform_wrapper input[type="datetime-local"],
.seven-gform .gform_wrapper select,
.seven-gform .gform_wrapper textarea {
  width: 100%;
  padding: 0.875rem 1.25rem;
  border: 1px solid var(--gf-field-border-color);
  border-radius: 1rem;
  background: var(--gf-field-bg-color);
  color: var(--gf-field-text-color);
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.5;
  outline: none;
  transition: border-color 0.2s, box-shadow 0.2s;
}

.seven-gform .gform_wrapper input[type="date"] {
  color-scheme: dark;
}

.seven-gform .gform_wrapper input::placeholder,
.seven-gform .gform_wrapper textarea::placeholder {
  color: var(--gf-field-placeholder-color);
}

.seven-gform .gform_wrapper input:focus,
.seven-gform .gform_wrapper select:focus,
.seven-gform .gform_wrapper textarea:focus {
  border-color: var(--gf-field-focus-border-color);
  box-shadow: 0 0 0 3px var(--gf-field-focus-ring-color);
}

.seven-gform .gform_wrapper textarea {
  min-height: 8rem;
  resize: vertical;
}

.seven-gform .gform_wrapper select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 1rem center;
  padding-right: 2.75rem;
}

/* Two-column name / contact rows */

.seven-gform .gform_wrapper .gfield--width-half {
  grid-column: span 1;
}

@media (min-width: 640px) {
  .seven-gform .gform_wrapper .gform_fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: var(--gf-form-gap-x);
  }

  .seven-gform .gform_wrapper .gfield:not(.gfield--width-half) {
    grid-column: 1 / -1;
  }
}

/* Checkboxes & radios */

.seven-gform .gform_wrapper .gfield_checkbox,
.seven-gform .gform_wrapper .gfield_radio,
.seven-gform .gform_wrapper .ginput_container_checkbox,
.seven-gform .gform_wrapper .ginput_container_radio {
  display: grid;
  gap: 0.75rem;
}

.seven-gform .gform_wrapper .gchoice {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}

.seven-gform .gform_wrapper .gfield-choice-input {
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.125rem;
  flex-shrink: 0;
  accent-color: var(--seven-primary);
}

.seven-gform .gform_wrapper .gchoice label {
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--seven-muted-foreground);
}

/* Consent / legal checkbox */

.seven-gform .gform_wrapper .gfield--type-consent .gchoice {
  align-items: flex-start;
}

/* File upload */

.seven-gform .gform_wrapper .ginput_container_fileupload input[type="file"] {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px dashed var(--seven-border);
  border-radius: 1rem;
  background: var(--seven-background);
  color: var(--seven-muted-foreground);
  font-size: 0.875rem;
}

/* Submit button */

.seven-gform .gform_wrapper .gform_footer,
.seven-gform .gform_wrapper .gform_page_footer {
  margin: 0.5rem 0 0;
  padding: 0;
}

.seven-gform .gform_wrapper .gform_button,
.seven-gform .gform_wrapper input[type="submit"],
.seven-gform .gform_wrapper button[type="submit"],
.seven-gform .gform_wrapper .gform-theme-button,
.seven-gform .gform_wrapper button.gform_button.button,
.seven-page .seven-gform #gform_submit_button_8 {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 1rem 2rem !important;
  border: 0 !important;
  border-radius: 9999px !important;
  background: #1d8ecd !important;
  background-color: #1d8ecd !important;
  color: #000000 !important;
  font-family: var(--seven-font-display) !important;
  font-size: 1.125rem !important;
  font-weight: 700 !important;
  line-height: 1.2;
  cursor: pointer;
  transition: transform 0.2s, opacity 0.2s, background-color 0.2s;
}

@media (min-width: 640px) {
  .seven-gform .gform_wrapper .gform_button,
  .seven-gform .gform_wrapper input[type="submit"],
  .seven-gform .gform_wrapper button[type="submit"],
  .seven-gform .gform_wrapper .gform-theme-button,
  .seven-gform .gform_wrapper button.gform_button.button,
  .seven-page .seven-gform #gform_submit_button_8 {
    width: auto;
    min-width: 14rem;
  }
}

.seven-gform .gform_wrapper .gform_button:hover,
.seven-gform .gform_wrapper input[type="submit"]:hover,
.seven-gform .gform_wrapper button[type="submit"]:hover,
.seven-gform .gform_wrapper .gform-theme-button:hover,
.seven-gform .gform_wrapper button.gform_button.button:hover,
.seven-page .seven-gform #gform_submit_button_8:hover {
  background: #1a7fb8 !important;
  background-color: #1a7fb8 !important;
  color: #000000 !important;
  transform: scale(1.02);
}

.seven-gform .gform_wrapper .gform_button:disabled,
.seven-gform .gform_wrapper input[type="submit"]:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

/* Validation */

.seven-gform .gform_wrapper .gfield_error input,
.seven-gform .gform_wrapper .gfield_error select,
.seven-gform .gform_wrapper .gfield_error textarea {
  border-color: var(--seven-neon-red);
}

.seven-gform .gform_wrapper .validation_message,
.seven-gform .gform_wrapper .gfield_validation_message {
  margin-top: 0.375rem;
  font-size: 0.8125rem;
  color: var(--seven-neon-red);
}

.seven-gform .gform_wrapper .validation_error,
.seven-gform .gform_wrapper .gform_validation_errors {
  margin-bottom: 1rem;
  padding: 1rem 1.25rem;
  border: 1px solid color-mix(in oklch, var(--seven-neon-red) 40%, transparent);
  border-radius: 1rem;
  background: color-mix(in oklch, var(--seven-neon-red) 12%, transparent);
  color: var(--seven-foreground);
  font-size: 0.875rem;
}

.seven-gform .gform_wrapper .gform_confirmation_message {
  margin-top: 1rem;
  padding: 2rem 1.5rem;
  border: 1px solid var(--seven-primary);
  border-radius: 1rem;
  background: color-mix(in oklch, var(--seven-primary) 10%, transparent);
  font-family: var(--seven-font-display);
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--seven-primary);
}

/* Hidden fields / honeypot */

.seven-gform .gform_wrapper .gform_validation_container,
.seven-gform .gform_wrapper .gfield_visibility_hidden {
  display: none !important;
}

/* Section breaks */

.seven-gform .gform_wrapper .gsection {
  grid-column: 1 / -1;
  margin-top: 0.5rem;
  padding-bottom: 0.25rem;
  border-bottom: 1px solid var(--seven-border);
}

.seven-gform .gform_wrapper .gsection_title {
  margin: 0;
  font-family: var(--seven-font-display);
  font-size: 1.25rem;
  font-weight: 700;
}

/* Multi-page progress */

.seven-gform .gform_wrapper .gf_progressbar_wrapper {
  grid-column: 1 / -1;
  margin-bottom: 0.5rem;
}

.seven-gform .gform_wrapper .gf_progressbar {
  overflow: hidden;
  height: 0.5rem;
  border-radius: 9999px;
  background: var(--seven-secondary);
}

.seven-gform .gform_wrapper .gf_progressbar_percentage {
  height: 100%;
  background: var(--seven-primary);
}

/* Legacy list markup (Gravity Forms 2.4 and earlier) */

.seven-gform .gform_wrapper ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.seven-gform .gform_wrapper li.gfield {
  margin-bottom: 1.5rem;
}

.seven-gform .gform_wrapper li.gfield.gfield_error {
  background: transparent;
  border: 0;
  padding: 0;
}

.seven-gform .gform_wrapper .top_label .gfield_label {
  margin-bottom: 0.5rem;
}

.seven-gform .gform_wrapper .ginput_complex span {
  display: block;
  margin-bottom: 0.75rem;
}

@media (min-width: 640px) {
  .seven-gform .gform_wrapper .ginput_complex.ginput_container--name,
  .seven-gform .gform_wrapper .gfield--type-name .ginput_complex {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
  }

  .seven-gform .gform_wrapper .ginput_complex span {
    margin-bottom: 0;
  }
}

/* Split date fields (DD / MM / YYYY) */

.seven-gform .gform_wrapper .gfield--input-type-datefield .ginput_complex.gform-grid-row,
.seven-gform .gform_wrapper .gfield--type-date.gfield--input-type-datefield .ginput_complex {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0.75rem;
  align-items: start;
}

.seven-gform .gform_wrapper .gfield--input-type-datefield .gform-grid-col,
.seven-gform .gform_wrapper .gfield--input-type-datefield .ginput_container_date {
  margin: 0;
  min-width: 0;
}

@media (min-width: 640px) {
  .seven-gform .gform_wrapper .gfield--input-type-datefield .ginput_complex.gform-grid-row,
  .seven-gform .gform_wrapper .gfield--type-date.gfield--input-type-datefield .ginput_complex {
    grid-template-columns: minmax(0, 5rem) minmax(0, 5rem) minmax(0, 6.5rem);
    gap: 1rem;
  }
}
