/* Tree Service Pros Gravity Forms designer — scoped to the selected form only. */
body .gform_wrapper.tsp-gf-modern,
body .gform_wrapper.tsp-gf-modern * { box-sizing:border-box; }

body .gform_wrapper.tsp-gf-modern {
  width:100%;
  max-width:var(--tsp-gf-max-width,940px)!important;
  margin:var(--tsp-gf-margin-y,36px) auto!important;
  color:var(--tsp-gf-text,#2f3e35)!important;
  font-family:var(--tsp-font-body,Inter,"Open Sans",Arial,sans-serif)!important;
}

body:not(.tsp-modern-landing-active) .gform_wrapper.tsp-gf-modern {
  padding:var(--tsp-gf-card-padding-desktop,42px)!important;
  border:var(--tsp-gf-card-border-width,1px) solid var(--tsp-gf-card-border,#dce7df)!important;
  border-radius:var(--tsp-gf-card-radius,22px)!important;
  background:var(--tsp-gf-card-bg,#fff)!important;
  box-shadow:var(--tsp-gf-card-shadow,0 24px 70px rgba(8,46,24,.14))!important;
}

#tsp-modern-landing .tsp-quote-card .gform_wrapper.tsp-gf-modern {
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

body .gform_wrapper.tsp-gf-modern .gform_heading,
body .gform_wrapper.tsp-gf-modern .gform_required_legend { display:none!important; }

/* Progress */
body .gform_wrapper.tsp-gf-modern .gf_progressbar_wrapper {
  margin:0 0 var(--tsp-gf-progress-gap,30px)!important;
  padding:0!important;
}
body .gform_wrapper.tsp-gf-modern .gf_progressbar_title {
  margin:0 0 9px!important;
  color:var(--tsp-gf-progress-title-color,#536159)!important;
  font-size:var(--tsp-gf-progress-title-size,13px)!important;
  font-weight:800!important;
  letter-spacing:.02em!important;
  line-height:1.2!important;
  text-align:left!important;
  text-transform:none!important;
}
body .gform_wrapper.tsp-gf-modern .gf_progressbar {
  position:relative!important;
  height:var(--tsp-gf-progress-height,12px)!important;
  margin:0!important;
  overflow:hidden!important;
  border:0!important;
  border-radius:999px!important;
  background:var(--tsp-gf-progress-track,#e6eee8)!important;
  box-shadow:inset 0 1px 2px rgba(12,49,27,.08)!important;
}
body .gform_wrapper.tsp-gf-modern .gf_progressbar_percentage {
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  min-height:100%!important;
  padding:0 8px!important;
  border-radius:999px!important;
  background:linear-gradient(90deg,var(--tsp-gf-progress-fill,#16942e),var(--tsp-gf-progress-fill-end,#7bdc18))!important;
  color:var(--tsp-gf-progress-text,#fff)!important;
  transition:width .35s ease!important;
}
body .gform_wrapper.tsp-gf-modern .gf_progressbar_percentage span {
  color:inherit!important;
  font-size:10px!important;
  font-weight:900!important;
  line-height:1!important;
  text-shadow:0 1px 1px rgba(0,0,0,.15)!important;
}

/* Page introductions */
body .gform_wrapper.tsp-gf-modern .tsp-gf-page-intro {
  grid-column:1 / -1!important;
  width:100%;
  max-width:720px;
  margin:0 auto 26px!important;
  text-align:var(--tsp-gf-heading-align,center)!important;
}
body .gform_wrapper.tsp-gf-modern .tsp-gf-page-kicker {
  display:block;
  margin:0 0 7px!important;
  color:var(--tsp-gf-kicker-color,#16942e)!important;
  font-size:var(--tsp-gf-kicker-size,12px)!important;
  font-weight:900!important;
  letter-spacing:.12em!important;
  line-height:1.2!important;
  text-transform:uppercase!important;
}
body .gform_wrapper.tsp-gf-modern .tsp-gf-page-intro h3 {
  margin:0!important;
  color:var(--tsp-gf-heading-color,#11251b)!important;
  font-family:var(--tsp-font-heading,Inter,"Open Sans",Arial,sans-serif)!important;
  font-size:var(--tsp-gf-heading-size-desktop,32px)!important;
  font-weight:850!important;
  letter-spacing:-.025em!important;
  line-height:1.16!important;
  text-transform:none!important;
}
body .gform_wrapper.tsp-gf-modern .tsp-gf-page-intro p {
  max-width:650px;
  margin:9px auto 0!important;
  color:var(--tsp-gf-intro-color,#637067)!important;
  font-size:var(--tsp-gf-intro-size,15px)!important;
  line-height:1.5!important;
}
body .gform_wrapper.tsp-gf-modern .gfield--type-html > h4,
body .gform_wrapper.tsp-gf-modern .gfield_html h4 {
  margin:0!important;
  color:var(--tsp-gf-heading-color,#11251b)!important;
  font-size:var(--tsp-gf-heading-size-desktop,32px)!important;
  text-align:var(--tsp-gf-heading-align,center)!important;
}

/* Form grid and fields */
body .gform_wrapper.tsp-gf-modern .gform_body,
body .gform_wrapper.tsp-gf-modern .gform_page,
body .gform_wrapper.tsp-gf-modern .gform_page_fields { min-width:0!important; }
body .gform_wrapper.tsp-gf-modern .gform_fields {
  grid-row-gap:var(--tsp-gf-row-gap,22px)!important;
  grid-column-gap:var(--tsp-gf-column-gap,20px)!important;
}
body .gform_wrapper.tsp-gf-modern .gfield { min-width:0!important; }
body .gform_wrapper.tsp-gf-modern .gfield_label {
  margin:0 0 8px!important;
  color:var(--tsp-gf-label-color,#20352a)!important;
  font-size:var(--tsp-gf-label-size,14px)!important;
  font-weight:var(--tsp-gf-label-weight,750)!important;
  letter-spacing:0!important;
  line-height:1.35!important;
  text-transform:none!important;
}
body .gform_wrapper.tsp-gf-modern .gfield_required,
body .gform_wrapper.tsp-gf-modern .gfield_required_asterisk {
  color:var(--tsp-gf-required-color,#c62c24)!important;
}
body .gform_wrapper.tsp-gf-modern input[type="text"],
body .gform_wrapper.tsp-gf-modern input[type="email"],
body .gform_wrapper.tsp-gf-modern input[type="tel"],
body .gform_wrapper.tsp-gf-modern input[type="number"],
body .gform_wrapper.tsp-gf-modern input[type="url"],
body .gform_wrapper.tsp-gf-modern input[type="password"],
body .gform_wrapper.tsp-gf-modern select,
body .gform_wrapper.tsp-gf-modern textarea {
  width:100%!important;
  min-width:0!important;
  min-height:var(--tsp-gf-input-height,56px)!important;
  margin:0!important;
  padding:12px var(--tsp-gf-input-padding-x,16px)!important;
  border:var(--tsp-gf-input-border-width,1px) solid var(--tsp-gf-input-border,#cbd9cf)!important;
  border-radius:var(--tsp-gf-input-radius,10px)!important;
  background:var(--tsp-gf-input-bg,#fff)!important;
  color:var(--tsp-gf-input-text,#20332a)!important;
  font-size:var(--tsp-gf-input-font-size,16px)!important;
  font-weight:500!important;
  line-height:1.3!important;
  box-shadow:var(--tsp-gf-input-shadow,none)!important;
  outline:none!important;
  transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease!important;
}
body .gform_wrapper.tsp-gf-modern textarea {
  min-height:var(--tsp-gf-textarea-height,140px)!important;
  resize:vertical!important;
  line-height:1.5!important;
}
body .gform_wrapper.tsp-gf-modern input::placeholder,
body .gform_wrapper.tsp-gf-modern textarea::placeholder {
  color:var(--tsp-gf-placeholder,#8b9690)!important;
  opacity:1!important;
}
body .gform_wrapper.tsp-gf-modern input[type="text"]:focus,
body .gform_wrapper.tsp-gf-modern input[type="email"]:focus,
body .gform_wrapper.tsp-gf-modern input[type="tel"]:focus,
body .gform_wrapper.tsp-gf-modern input[type="number"]:focus,
body .gform_wrapper.tsp-gf-modern input[type="url"]:focus,
body .gform_wrapper.tsp-gf-modern input[type="password"]:focus,
body .gform_wrapper.tsp-gf-modern select:focus,
body .gform_wrapper.tsp-gf-modern textarea:focus {
  border-color:var(--tsp-gf-input-focus,#16942e)!important;
  box-shadow:0 0 0 4px var(--tsp-gf-input-ring,#dff2e2)!important;
}
body .gform_wrapper.tsp-gf-modern .gfield_description,
body .gform_wrapper.tsp-gf-modern .ginput_counter {
  margin-top:7px!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--tsp-gf-description-color,#6b7770)!important;
  font-size:var(--tsp-gf-description-size,12px)!important;
  line-height:1.4!important;
}
body .gform_wrapper.tsp-gf-modern .tsp-gf-char-counter-hidden { display:none!important; }

/* Step 1: a focused ZIP-code experience */
body .gform_wrapper.tsp-gf-modern .tsp-gf-page--1 .gform_page_fields,
body .gform_wrapper.tsp-gf-modern .tsp-gf-page--1 .gform-page-footer {
  width:100%;
  max-width:var(--tsp-gf-page-one-width,620px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body .gform_wrapper.tsp-gf-modern .tsp-gf-page--1 input[type="text"] {
  text-align:var(--tsp-gf-zip-align,center)!important;
  font-size:var(--tsp-gf-zip-font-size,20px)!important;
  font-weight:750!important;
  letter-spacing:.035em!important;
}
body .gform_wrapper.tsp-gf-modern .tsp-gf-page--1 .gform-page-footer {
  margin-top:16px!important;
}
body .gform_wrapper.tsp-gf-modern .tsp-gf-page--1 .gform_next_button { width:100%!important; }

/* Step 2: preserve Gravity Forms' native 12-column grid */
body .gform_wrapper.tsp-gf-modern .tsp-gf-page--2 .gform_page_fields,
body .gform_wrapper.tsp-gf-modern .tsp-gf-page--2 .gform-page-footer {
  width:100%;
  max-width:var(--tsp-gf-page-two-width,940px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Consent checkbox */
body .gform_wrapper.tsp-gf-modern .gfield--type-checkbox .ginput_container_checkbox,
body .gform_wrapper.tsp-gf-modern .gfield_checkbox {
  margin:0!important;
}
body .gform_wrapper.tsp-gf-modern .gfield_checkbox .gchoice {
  display:flex!important;
  align-items:flex-start!important;
  gap:11px!important;
  padding:var(--tsp-gf-consent-padding,14px)!important;
  border:1px solid var(--tsp-gf-consent-border,#dce9df)!important;
  border-radius:var(--tsp-gf-consent-radius,10px)!important;
  background:var(--tsp-gf-consent-bg,#f5faf5)!important;
}
body .gform_wrapper.tsp-gf-modern .gfield_checkbox input[type="checkbox"] {
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  margin:1px 0 0!important;
  accent-color:var(--tsp-gf-checkbox-accent,#16942e)!important;
}
body .gform_wrapper.tsp-gf-modern .gfield_checkbox label {
  margin:0!important;
  color:var(--tsp-gf-consent-text,#30443a)!important;
  font-size:var(--tsp-gf-consent-size,13px)!important;
  font-weight:650!important;
  line-height:1.45!important;
}

/* Buttons */
body .gform_wrapper.tsp-gf-modern .gform-page-footer,
body .gform_wrapper.tsp-gf-modern .gform_page_footer,
body .gform_wrapper.tsp-gf-modern .gform_footer {
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:var(--tsp-gf-button-gap,12px)!important;
  margin:26px 0 0!important;
  padding:0!important;
  border:0!important;
}
body .gform_wrapper.tsp-gf-modern .gform_next_button,
body .gform_wrapper.tsp-gf-modern .gform_button,
body .gform_wrapper.tsp-gf-modern input[type="submit"],
body .gform_wrapper.tsp-gf-modern button[type="submit"] {
  min-height:var(--tsp-gf-button-height,56px)!important;
  margin:0 0 0 auto!important;
  padding:13px 24px!important;
  border:1px solid transparent!important;
  border-radius:var(--tsp-gf-button-radius,10px)!important;
  background:var(--tsp-gf-primary-btn-bg,#16942e)!important;
  color:var(--tsp-gf-primary-btn-text,#fff)!important;
  font-size:var(--tsp-gf-button-font-size,15px)!important;
  font-weight:var(--tsp-gf-button-weight,850)!important;
  letter-spacing:.02em!important;
  line-height:1.1!important;
  text-align:center!important;
  text-transform:var(--tsp-gf-button-transform,none)!important;
  box-shadow:var(--tsp-gf-button-shadow,0 12px 28px rgba(22,148,46,.22))!important;
  cursor:pointer!important;
  transition:transform .18s ease,background-color .18s ease,box-shadow .18s ease!important;
}
body .gform_wrapper.tsp-gf-modern .gform_next_button:hover,
body .gform_wrapper.tsp-gf-modern .gform_button:hover,
body .gform_wrapper.tsp-gf-modern input[type="submit"]:hover,
body .gform_wrapper.tsp-gf-modern button[type="submit"]:hover {
  transform:translateY(-1px)!important;
  background:var(--tsp-gf-primary-btn-hover,#0d7f27)!important;
}
body .gform_wrapper.tsp-gf-modern .gform_previous_button {
  min-height:var(--tsp-gf-button-height,56px)!important;
  margin:0!important;
  padding:13px 22px!important;
  border:1px solid var(--tsp-gf-secondary-btn-border,#cddacf)!important;
  border-radius:var(--tsp-gf-button-radius,10px)!important;
  background:var(--tsp-gf-secondary-btn-bg,#f0f5f1)!important;
  color:var(--tsp-gf-secondary-btn-text,#31513e)!important;
  font-size:var(--tsp-gf-button-font-size,15px)!important;
  font-weight:var(--tsp-gf-button-weight,850)!important;
  text-transform:var(--tsp-gf-button-transform,none)!important;
  box-shadow:none!important;
  cursor:pointer!important;
}
body .gform_wrapper.tsp-gf-modern .gform_previous_button:hover {
  background:var(--tsp-gf-secondary-btn-hover,#e5eee7)!important;
}
body .gform_wrapper.tsp-gf-modern .gform_ajax_spinner {
  width:24px!important;
  height:24px!important;
  margin:0 0 0 10px!important;
}

/* Validation and conditional fields */
body .gform_wrapper.tsp-gf-modern .gform_validation_errors {
  margin:0 0 24px!important;
  padding:16px 18px!important;
  border:1px solid var(--tsp-gf-error-border,#f3b7b0)!important;
  border-radius:12px!important;
  background:var(--tsp-gf-error-bg,#fff4f2)!important;
  color:var(--tsp-gf-error-color,#b42318)!important;
  box-shadow:none!important;
}
body .gform_wrapper.tsp-gf-modern .gform_validation_errors h2,
body .gform_wrapper.tsp-gf-modern .gform_validation_errors ol,
body .gform_wrapper.tsp-gf-modern .gform_validation_errors a {
  color:var(--tsp-gf-error-color,#b42318)!important;
  font-size:var(--tsp-gf-error-size,12px)!important;
}
body .gform_wrapper.tsp-gf-modern .gfield_error input,
body .gform_wrapper.tsp-gf-modern .gfield_error select,
body .gform_wrapper.tsp-gf-modern .gfield_error textarea {
  border-color:var(--tsp-gf-error-color,#b42318)!important;
}
body .gform_wrapper.tsp-gf-modern .validation_message,
body .gform_wrapper.tsp-gf-modern .gfield_validation_message {
  margin:7px 0 0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  color:var(--tsp-gf-error-color,#b42318)!important;
  font-size:var(--tsp-gf-error-size,12px)!important;
  font-weight:700!important;
}

/* AJAX confirmation */
body .gform_confirmation_wrapper.tsp-gf-modern-confirmation,
body .gform_confirmation_wrapper.tsp-gf-modern-confirmation .gform_confirmation_message {
  color:var(--tsp-gf-confirmation-text,#1f3429)!important;
}
body .gform_confirmation_wrapper.tsp-gf-modern-confirmation,
body .gform_wrapper.tsp-gf-modern + .gform_confirmation_wrapper {
  max-width:var(--tsp-gf-max-width,940px)!important;
  margin:var(--tsp-gf-margin-y,36px) auto!important;
  padding:var(--tsp-gf-confirmation-padding,32px)!important;
  border:1px solid var(--tsp-gf-confirmation-border,#dce7df)!important;
  border-radius:var(--tsp-gf-confirmation-radius,18px)!important;
  background:var(--tsp-gf-confirmation-bg,#fff)!important;
  box-shadow:var(--tsp-gf-card-shadow,0 24px 70px rgba(8,46,24,.14))!important;
}

body .gform_wrapper.tsp-gf-modern .gform_page.tsp-gf-animate-in {
  animation:tspGfFadeUp .3s ease both;
}
@keyframes tspGfFadeUp {
  from { opacity:0; transform:translateY(8px); }
  to { opacity:1; transform:translateY(0); }
}

@media (max-width:900px) {
  body:not(.tsp-modern-landing-active) .gform_wrapper.tsp-gf-modern {
    padding:var(--tsp-gf-card-padding-tablet,32px)!important;
  }
}

@media (max-width:640px) {
  body .gform_wrapper.tsp-gf-modern {
    margin:20px auto!important;
  }
  body:not(.tsp-modern-landing-active) .gform_wrapper.tsp-gf-modern {
    padding:var(--tsp-gf-card-padding-mobile,22px)!important;
    border-radius:min(var(--tsp-gf-card-radius,22px),16px)!important;
  }
  body .gform_wrapper.tsp-gf-modern .tsp-gf-page-intro {
    margin-bottom:22px!important;
  }
  body .gform_wrapper.tsp-gf-modern .tsp-gf-page-intro h3,
  body .gform_wrapper.tsp-gf-modern .gfield--type-html > h4,
  body .gform_wrapper.tsp-gf-modern .gfield_html h4 {
    font-size:var(--tsp-gf-heading-size-mobile,26px)!important;
  }
  body .gform_wrapper.tsp-gf-modern .gform_fields {
    grid-column-gap:0!important;
  }
  body .gform_wrapper.tsp-gf-modern .gfield {
    grid-column:1 / -1!important;
  }
  body .gform_wrapper.tsp-gf-modern .gform-page-footer,
  body .gform_wrapper.tsp-gf-modern .gform_page_footer,
  body .gform_wrapper.tsp-gf-modern .gform_footer {
    display:grid!important;
    grid-template-columns:1fr 1.35fr!important;
  }
  body .gform_wrapper.tsp-gf-modern .gform_previous_button,
  body .gform_wrapper.tsp-gf-modern .gform_next_button,
  body .gform_wrapper.tsp-gf-modern .gform_button,
  body .gform_wrapper.tsp-gf-modern input[type="submit"] {
    width:100%!important;
  }
  body .gform_wrapper.tsp-gf-modern .tsp-gf-page--1 .gform-page-footer {
    display:block!important;
  }
}
