/*
 * Shared Gravity Forms styling for every block that embeds a form.
 * Registered as its own handle ('hlm-forms') and listed in each form block's
 * block.json — living in one block's stylesheet meant pages using only the
 * OTHER block shipped none of it.
 */

.hlm-contact .gform_wrapper input:not([type='submit']):not([type='checkbox']):not([type='radio']),
.hlm-contact .gform_wrapper select,
.hlm-contact .gform_wrapper textarea,
.hlm-contact-cta .gform_wrapper input:not([type='submit']):not([type='checkbox']):not([type='radio']),
.hlm-contact-cta .gform_wrapper select,
.hlm-contact-cta .gform_wrapper textarea {
  inline-size: 100%;
  min-block-size: 48px;
  padding: var(--hlm-space-sm) var(--hlm-space-md);
  border: 1px solid var(--hlm-line-strong);
  border-radius: var(--hlm-radius);
  background: var(--hlm-surface);
  color: var(--hlm-ink);
  font-family: var(--hlm-font-body);
  font-size: var(--hlm-step-0);
  transition: border-color var(--hlm-duration) var(--hlm-ease);
}

.hlm-contact .gform_wrapper select,
.hlm-contact-cta .gform_wrapper select {
  line-height: 1.25;
}

.hlm-contact .gform_wrapper textarea,
.hlm-contact-cta .gform_wrapper textarea {
  min-block-size: 130px;
  resize: vertical;
}

.hlm-contact .gform_wrapper input:focus-visible,
.hlm-contact .gform_wrapper select:focus-visible,
.hlm-contact .gform_wrapper textarea:focus-visible,
.hlm-contact-cta .gform_wrapper input:focus-visible,
.hlm-contact-cta .gform_wrapper select:focus-visible,
.hlm-contact-cta .gform_wrapper textarea:focus-visible {
  border-color: var(--hlm-accent);
  outline: 3px solid var(--hlm-focus);
  outline-offset: 1px;
}

.hlm-contact .gform_wrapper .gfield_label,
.hlm-contact-cta .gform_wrapper .gfield_label {
  color: var(--hlm-ink);
  font-family: var(--hlm-font-heading);
  font-size: var(--hlm-step--1);
  font-weight: 700;
}

.hlm-contact .gform_wrapper .gfield_required,
.hlm-contact-cta .gform_wrapper .gfield_required {
  color: var(--hlm-accent-text);
}

.hlm-contact .gform_wrapper input[type='submit'],
.hlm-contact-cta .gform_wrapper input[type='submit'] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-block-size: 48px;
  padding: var(--hlm-space-sm) var(--hlm-space-xl);
  border: 2px solid transparent;
  border-radius: var(--hlm-radius);
  background: var(--hlm-accent);
  color: var(--hlm-on-accent);
  font-family: var(--hlm-font-heading);
  font-size: var(--hlm-step-0);
  font-weight: 800;
  letter-spacing: 0.04em;
  cursor: pointer;
  transition: background var(--hlm-duration) var(--hlm-ease), transform var(--hlm-duration) var(--hlm-ease);
}

.hlm-contact .gform_wrapper input[type='submit']:hover,
.hlm-contact-cta .gform_wrapper input[type='submit']:hover {
  background: var(--hlm-accent-dark);
  transform: translate3d(0, 1px, 0);
}

.hlm-contact .gform_wrapper .gform_validation_errors,
.hlm-contact .gform_wrapper .gfield_validation_message,
.hlm-contact-cta .gform_wrapper .gform_validation_errors,
.hlm-contact-cta .gform_wrapper .gfield_validation_message {
  border-radius: var(--hlm-radius);
  font-size: var(--hlm-step--1);
}

.hlm-contact .gform_confirmation_message,
.hlm-contact-cta .gform_confirmation_message {
  padding: var(--hlm-space-lg);
  border-inline-start: 3px solid var(--hlm-accent);
  background: var(--hlm-surface-alt);
  border-radius: 0 var(--hlm-radius-lg) var(--hlm-radius-lg) 0;
  color: var(--hlm-ink);
  font-size: var(--hlm-step-1);
}

/*
 * Gravity Forms brand recolor: set GF's own theme variables instead of
 * overriding its selectors — survives GF updates and covers every control,
 * progress bar and button in one place. Quiz-funnel accent rides along.
 */
.hlm-contact .gform_wrapper,
.hlm-contact-cta .gform_wrapper {
  --gf-color-primary: var(--hlm-accent);
  --gf-color-primary-rgb: 233, 149, 62;
  --gf-color-primary-contrast: var(--hlm-on-accent);
  --gf-color-primary-darker: var(--hlm-accent-dark);
  --gf-color-primary-lighter: var(--hlm-accent);
  --gf-color-off-black: var(--hlm-ink);
  --gf-ctrl-label-color-primary: var(--hlm-ink);
  --gf-ctrl-label-color-secondary: var(--hlm-ink-soft);
  --gf-ctrl-desc-color: var(--hlm-ink-soft);
  --gf-ctrl-btn-bg-color-primary: var(--hlm-accent);
  --gf-ctrl-btn-color-primary: var(--hlm-on-accent);
  --gf-ctrl-btn-bg-color-hover-primary: var(--hlm-accent-dark);
  --gf-ctrl-btn-color-hover-primary: var(--hlm-on-accent);
}

/* On the dark tone the form sits in a glass card, matching the hero's
   "Featured on" treatment. */
.hlm-tone--deep .hlm-contact__formcard,
.hlm-tone--deep .hlm-contact-cta__formcard {
  border: 1px solid rgb(255 255 255 / 16%);
  background: rgb(255 255 255 / 8%);
  box-shadow: none;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

/* Phone with country code: air between the selector and the number, and the
   selector dresses like every other control. */
.hlm-contact .gform_wrapper .gform-phone__input-wrapper,
.hlm-contact-cta .gform_wrapper .gform-phone__input-wrapper {
  display: flex;
  gap: var(--hlm-space-sm);
}

.hlm-contact .gform_wrapper .gform-phone__country-selector,
.hlm-contact-cta .gform_wrapper .gform-phone__country-selector {
  min-block-size: 48px;
  padding-inline: var(--hlm-space-sm);
  border: 1px solid var(--hlm-line-strong);
  border-radius: var(--hlm-radius);
  background: var(--hlm-surface);
  color: var(--hlm-ink);
}

/* On the dark tone every field goes glass, matching the card around it. */
.hlm-tone--deep .gform_wrapper input:not([type='submit']):not([type='checkbox']):not([type='radio']),
.hlm-tone--deep .gform_wrapper select,
.hlm-tone--deep .gform_wrapper textarea,
.hlm-tone--deep .gform_wrapper .gform-phone__country-selector {
  background: rgb(255 255 255 / 8%);
  color: var(--hlm-ink);
}

.hlm-tone--deep .gform_wrapper :is(input, textarea)::placeholder {
  color: rgb(255 255 255 / 45%);
}

/* GF resolves every control's `transition` from --gf-transition-ctrl /
   --gf-ctrl-transition, and its defaults use `all`, which animates layout
   properties through reflow. Overriding the variables (the plugin's own
   theming seam) narrows every control to composited-safe properties without
   fighting its selector specificity. */
.gform_wrapper.gform-theme {
  --gf-transition-ctrl: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, opacity 0.15s ease-in-out, transform 0.15s ease-in-out;
  --gf-ctrl-transition: var(--gf-transition-ctrl);
}

/* Checkbox groups (Service Interested In) read as selectable rows rather than
   a bare list, so the choices carry the same weight as the inputs above them.
   The native control stays in the flow and does the checked styling via :has,
   which keeps the whole row clickable through the label without JS. */
.hlm-contact .gform_wrapper .gfield--type-checkbox .gfield_checkbox,
.hlm-contact-cta .gform_wrapper .gfield--type-checkbox .gfield_checkbox {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr));
  gap: var(--hlm-space-2xs) var(--hlm-space-xs);
}

.hlm-contact .gform_wrapper .gfield--type-checkbox .gchoice,
.hlm-contact-cta .gform_wrapper .gfield--type-checkbox .gchoice {
  display: flex;
  align-items: center;
  gap: var(--hlm-space-2xs);
  min-block-size: 48px;
  padding: var(--hlm-space-2xs) var(--hlm-space-sm);
  border: 1px solid var(--hlm-line-strong);
  border-radius: var(--hlm-radius);
  background: var(--hlm-surface);
  transition: border-color var(--hlm-duration) var(--hlm-ease), background-color var(--hlm-duration) var(--hlm-ease);
}

.hlm-contact .gform_wrapper .gfield--type-checkbox .gchoice:has(input:checked),
.hlm-contact-cta .gform_wrapper .gfield--type-checkbox .gchoice:has(input:checked) {
  border-color: var(--hlm-accent);
  background: color-mix(in srgb, var(--hlm-accent) 12%, transparent);
}

.hlm-contact .gform_wrapper .gfield--type-checkbox .gchoice:has(input:focus-visible),
.hlm-contact-cta .gform_wrapper .gfield--type-checkbox .gchoice:has(input:focus-visible) {
  outline: 3px solid var(--hlm-focus);
  outline-offset: 1px;
}

.hlm-contact .gform_wrapper .gfield--type-checkbox .gchoice input[type='checkbox'],
.hlm-contact-cta .gform_wrapper .gfield--type-checkbox .gchoice input[type='checkbox'] {
  flex: none;
  inline-size: 20px;
  block-size: 20px;
  margin: 0;
  accent-color: var(--hlm-accent);
  cursor: pointer;
}

.hlm-contact .gform_wrapper .gfield--type-checkbox .gchoice label,
.hlm-contact-cta .gform_wrapper .gfield--type-checkbox .gchoice label {
  margin: 0;
  color: var(--hlm-ink);
  font-family: var(--hlm-font-body);
  font-size: var(--hlm-step-0);
  line-height: 1.2;
  cursor: pointer;
}

.hlm-tone--deep .gform_wrapper .gfield--type-checkbox .gchoice {
  background: rgb(255 255 255 / 8%);
}
