.elementor-18807 .elementor-element.elementor-element-2a9b16a{--display:flex;}/* Start custom CSS for html, class: .elementor-element-71182ea *//* =====================================================
   HUBSPOT LEGACY FORM
   FIXED ROW LAYOUT
   ===================================================== */

/* -----------------------------------------------------
   OUTER CARD
   ----------------------------------------------------- */

.hbspt-form {
  width: 100%;
  max-width: 820px;
  margin: 0 auto;

  background:
    linear-gradient(
      rgba(242, 239, 243, 0.95),
      rgba(242, 239, 243, 0.95)
    ) padding-box,
    linear-gradient(
      135deg,
      #76278f 0%,
      #bc278f 38%,
      #df426d 68%,
      #f0b946 100%
    ) border-box;

  border: 6px solid transparent;
  border-radius: 34px;

  padding: 34px 38px 26px;

  box-sizing: border-box;
}


/* -----------------------------------------------------
   CRITICAL HUBSPOT FIX
   Flatten HubSpot fieldsets so individual fields can
   participate directly in our grid.
   ----------------------------------------------------- */

.hbspt-form form > fieldset {
  display: contents !important;
}


/* -----------------------------------------------------
   MAIN GRID

   6 equal columns allows:
   50/50  = 3 + 3
   thirds = 2 + 2 + 2
   ----------------------------------------------------- */

.hbspt-form form {
  display: grid !important;

  grid-template-columns:
    repeat(6, minmax(0, 1fr));

  column-gap: 20px;
  row-gap: 20px;

  width: 100%;
}


/* Every normal field */
.hbspt-form .hs-form-field {
  width: 100% !important;
  min-width: 0 !important;

  margin: 0 !important;
  padding: 0 !important;

  box-sizing: border-box !important;
}


/* =====================================================
   EXACT FIELD PLACEMENT
   ===================================================== */


/* ROW 1
   First Name | Last Name
*/

.hbspt-form .hs_firstname {
  grid-row: 1;
  grid-column: 1 / span 3;
}

.hbspt-form .hs_lastname {
  grid-row: 1;
  grid-column: 4 / span 3;
}


/* ROW 2
   Phone | Email
*/

.hbspt-form .hs_phone {
  grid-row: 2;
  grid-column: 1 / span 3;
}

.hbspt-form .hs_email {
  grid-row: 2;
  grid-column: 4 / span 3;
}


/* ROW 3
   Street Address
*/

.hbspt-form .hs_address {
  grid-row: 3;
  grid-column: 1 / -1;
}


/* ROW 4
   City | State | ZIP
*/

.hbspt-form .hs_city {
  grid-row: 4;
  grid-column: 1 / span 2;
}

.hbspt-form .hs_state_custom {
  grid-row: 4;
  grid-column: 3 / span 2;
}

.hbspt-form .hs_zip {
  grid-row: 4;
  grid-column: 5 / span 2;
}


/* ROW 5
   Service Requested
*/

.hbspt-form .hs_service_requested {
  grid-row: 5;
  grid-column: 1 / -1;
}


/* ROW 6
   Tell Us About Your Project
*/

.hbspt-form .hs_project_description {
  grid-row: 6;
  grid-column: 1 / -1;
}


/* =====================================================
   LABELS
   ===================================================== */

.hbspt-form .hs-form-field > label {
  display: block !important;

  margin: 0 0 7px 3px !important;

  color: #171252 !important;

  font-family: inherit !important;

  font-size: 16px !important;
  line-height: 1.2 !important;

  font-weight: 700 !important;
  font-style: normal !important;
}


.hbspt-form .hs-form-required {
  color: #c52a73 !important;
}


/* =====================================================
   FIELD WRAPPERS
   ===================================================== */

.hbspt-form .input {
  width: 100% !important;
  max-width: none !important;

  margin: 0 !important;
  padding: 0 !important;
}


/* Remove legacy HubSpot width restrictions */
.hbspt-form .form-columns-1 .hs-form-field,
.hbspt-form .form-columns-2 .hs-form-field,
.hbspt-form .form-columns-3 .hs-form-field {
  width: 100% !important;
  float: none !important;
}


/* =====================================================
   INPUTS
   ===================================================== */

.hbspt-form input[type="text"],
.hbspt-form input[type="email"],
.hbspt-form input[type="tel"],
.hbspt-form input[type="number"],
.hbspt-form input[type="url"],
.hbspt-form select,
.hbspt-form textarea {

  display: block !important;

  width: 100% !important;
  max-width: none !important;

  box-sizing: border-box !important;

  background: #ffffff !important;

  border: 2px solid #b8b8b8 !important;
  border-radius: 12px !important;

  min-height: 56px !important;

  padding: 13px 16px !important;

  color: #333333 !important;

  font-family: inherit !important;
  font-size: 17px !important;
  line-height: 1.3 !important;

  font-weight: 500 !important;
  font-style: normal !important;

  outline: none !important;

  box-shadow: none !important;
}


/* Placeholder */

.hbspt-form input::placeholder,
.hbspt-form textarea::placeholder {
  color: #b8b8b8 !important;
  opacity: 1 !important;
  font-style: italic !important;
}


/* Dropdowns */

.hbspt-form select {
  cursor: pointer !important;
  color: #555555 !important;
}


/* Focus */

.hbspt-form input:focus,
.hbspt-form select:focus,
.hbspt-form textarea:focus {
  border-color: #8b2c91 !important;

  box-shadow:
    0 0 0 3px
    rgba(139, 44, 145, 0.10) !important;
}


/* Project description */

.hbspt-form .hs_project_description textarea {
  min-height: 135px !important;
  resize: vertical;
}


/* =====================================================
   FIX HUBSPOT CONSENT CHECKBOXES
   Stack vertically at full width
   ===================================================== */

/* Entire consent section */
.hbspt-form .legal-consent-container {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;

  display: flex !important;
  flex-direction: column !important;

  gap: 12px !important;

  margin: 0 !important;
  padding: 0 !important;
}


/* HubSpot sometimes wraps each consent option
   in its own form field */
.hbspt-form .legal-consent-container .hs-form-field,
.hbspt-form .legal-consent-container .hs-dependent-field {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;

  float: none !important;

  margin: 0 !important;
  padding: 0 !important;
}


/* Remove HubSpot list sizing */
.hbspt-form .legal-consent-container ul,
.hbspt-form .legal-consent-container .inputs-list {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;

  margin: 0 !important;
  padding: 0 !important;

  list-style: none !important;
}


/* Each checkbox = one complete row */
.hbspt-form .legal-consent-container li,
.hbspt-form .legal-consent-container .hs-form-booleancheckbox {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;

  float: none !important;

  margin: 0 0 10px 0 !important;
  padding: 0 !important;
}


/* Checkbox + text */
.hbspt-form
.legal-consent-container
.hs-form-booleancheckbox-display {

  display: flex !important;

  flex-direction: row !important;

  align-items: flex-start !important;

  width: 100% !important;
  max-width: 100% !important;

  gap: 10px !important;

  margin: 0 !important;
  padding: 0 !important;
}


/* Checkbox itself */
.hbspt-form
.legal-consent-container
input[type="checkbox"] {

  display: block !important;

  flex: 0 0 18px !important;

  width: 18px !important;
  height: 18px !important;

  min-width: 18px !important;
  min-height: 18px !important;

  margin: 3px 0 0 0 !important;
  padding: 0 !important;
}


/* Consent copy gets all remaining width */
.hbspt-form
.legal-consent-container
.hs-form-booleancheckbox-display > span {

  display: block !important;

  flex: 1 1 auto !important;

  width: auto !important;
  max-width: none !important;

  margin: 0 !important;
  padding: 0 !important;

  color: #414141 !important;

  font-size: 14px !important;
  line-height: 1.45 !important;

  font-weight: 400 !important;
  font-style: normal !important;

  white-space: normal !important;
}


/* Remove any width HubSpot applies to consent labels */
.hbspt-form .legal-consent-container label {
  width: 100% !important;
  max-width: 100% !important;

  margin: 0 !important;
  padding: 0 !important;
}


/* Keep consent links styled */
.hbspt-form .legal-consent-container a {
  color: #c42b70 !important;
  text-decoration: none !important;
}


/* Bring submit button reasonably close
   to the second checkbox */
.hbspt-form .hs_submit {
  margin-top: 0 !important;
}


/* =====================================================
   SUBMIT
   ===================================================== */

.hbspt-form .hs_submit {
  grid-row: 8;
  grid-column: 1 / -1 !important;

  width: 100% !important;

  /* Small gap after second consent line */
  margin: -4px 0 0 !important;
  padding: 0 !important;
}


.hbspt-form .actions {
  width: 100% !important;

  margin: 0 !important;
  padding: 0 !important;
}


/* Button */

.hbspt-form input[type="submit"] {

  display: block !important;

  width: calc(100% - 50px) !important;

  margin: 0 auto !important;

  min-height: 62px !important;

  padding: 14px 24px !important;

  background: #617fc6 !important;

  color: #ffffff !important;

  border: 2px solid #ffffff !important;
  border-radius: 9px !important;

  font-size: 23px !important;
  line-height: 1.15 !important;

  font-weight: 700 !important;
  font-style: normal !important;

  text-align: center !important;

  cursor: pointer !important;

  box-shadow:
    0 1px 2px
    rgba(0, 0, 0, 0.08) !important;
}


/* =====================================================
   ERRORS
   ===================================================== */

.hbspt-form .hs-error-msgs {
  list-style: none !important;

  margin: 5px 0 0 !important;
  padding: 0 !important;
}

.hbspt-form .hs-error-msgs label {
  display: block !important;

  color: #b42318 !important;

  font-size: 12px !important;
  line-height: 1.35 !important;

  font-style: normal !important;
}


/* =====================================================
   MOBILE
   ===================================================== */

@media (max-width: 767px) {

  .hbspt-form {
    max-width: 100%;

    padding: 24px 18px 22px;

    border-width: 5px;
    border-radius: 26px;
  }


  .hbspt-form form {
    grid-template-columns: 1fr !important;

    column-gap: 0 !important;
    row-gap: 16px !important;
  }


  /* Let mobile flow naturally */

  .hbspt-form .hs_firstname,
  .hbspt-form .hs_lastname,
  .hbspt-form .hs_phone,
  .hbspt-form .hs_email,
  .hbspt-form .hs_address,
  .hbspt-form .hs_city,
  .hbspt-form .hs_state_custom,
  .hbspt-form .hs_zip,
  .hbspt-form .hs_service_requested,
  .hbspt-form .hs_project_description,
  .hbspt-form .legal-consent-container,
  .hbspt-form .hs_submit {

    grid-column: 1 !important;
    grid-row: auto !important;
  }


  .hbspt-form input[type="text"],
  .hbspt-form input[type="email"],
  .hbspt-form input[type="tel"],
  .hbspt-form input[type="number"],
  .hbspt-form input[type="url"],
  .hbspt-form select,
  .hbspt-form textarea {

    min-height: 52px !important;

    padding: 12px 14px !important;

    font-size: 16px !important;
  }


  .hbspt-form .hs_project_description textarea {
    min-height: 120px !important;
  }


  .hbspt-form input[type="submit"] {
    width: 100% !important;

    min-height: 56px !important;

    font-size: 19px !important;
  }
}
/* =====================================================
   FIX CONSENT FIELDSETS
   Keep normal fields flattened,
   but restore checkbox fieldsets as full-width rows
   ===================================================== */

.hbspt-form form > fieldset:has(input[type="checkbox"]) {
  display: block !important;

  grid-column: 1 / -1 !important;
  grid-row: auto !important;

  width: 100% !important;
  max-width: 100% !important;

  margin: 0 !important;
  padding: 0 !important;
}


/* Make everything inside each consent row full width */
.hbspt-form form > fieldset:has(input[type="checkbox"]) .hs-form-field,
.hbspt-form form > fieldset:has(input[type="checkbox"]) .legal-consent-container,
.hbspt-form form > fieldset:has(input[type="checkbox"]) .input,
.hbspt-form form > fieldset:has(input[type="checkbox"]) ul,
.hbspt-form form > fieldset:has(input[type="checkbox"]) li {
  width: 100% !important;
  max-width: 100% !important;

  float: none !important;

  margin-left: 0 !important;
  margin-right: 0 !important;
}


/* Each checkbox row */
.hbspt-form form > fieldset:has(input[type="checkbox"])
.hs-form-booleancheckbox-display {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;

  width: 100% !important;

  gap: 10px !important;
}


/* Checkbox */
.hbspt-form form > fieldset:has(input[type="checkbox"])
input[type="checkbox"] {
  flex: 0 0 18px !important;

  width: 18px !important;
  height: 18px !important;

  margin: 3px 0 0 0 !important;
}


/* Consent text */
.hbspt-form form > fieldset:has(input[type="checkbox"])
.hs-form-booleancheckbox-display span {
  flex: 1 1 auto !important;

  width: auto !important;
  max-width: none !important;

  white-space: normal !important;

  font-size: 14px !important;
  line-height: 1.45 !important;
}


/* Tighten space before submit */
.hbspt-form .hs_submit {
  margin-top: 0 !important;
}
/* =====================================================
   KEEP BOTH CONSENT ROWS ABOVE SUBMIT BUTTON
   ===================================================== */

/* Consent fieldsets come before submit */
.hbspt-form form > fieldset:has(input[type="checkbox"]) {
  order: 100 !important;
}

/* Submit always comes after all consent fieldsets */
.hbspt-form .hs_submit {
  grid-row: auto !important;
  grid-column: 1 / -1 !important;

  order: 200 !important;

  width: 100% !important;

  /* Small gap after final checkbox */
  margin: 4px 0 0 !important;
  padding: 0 !important;
}
/* =====================================================
   COMPACT FORM SIZE OVERRIDES
   Keeps existing layout, just scales it down
   ===================================================== */

.hbspt-form {
  max-width: 760px !important;
  padding: 26px 30px 22px !important;
}

/* Reduce spacing between rows */
.hbspt-form form {
  column-gap: 16px !important;
  row-gap: 14px !important;
}

/* Smaller labels */
.hbspt-form .hs-form-field > label {
  margin-bottom: 5px !important;
  font-size: 14px !important;
  line-height: 1.15 !important;
}

/* Smaller input boxes */
.hbspt-form input[type="text"],
.hbspt-form input[type="email"],
.hbspt-form input[type="tel"],
.hbspt-form input[type="number"],
.hbspt-form input[type="url"],
.hbspt-form select,
.hbspt-form textarea {
  min-height: 44px !important;
  padding: 9px 12px !important;

  font-size: 15px !important;
  line-height: 1.2 !important;

  border-radius: 9px !important;
}

/* Keep dropdowns compact too */
.hbspt-form select {
  min-height: 44px !important;
  padding-top: 8px !important;
  padding-bottom: 8px !important;
}

/* Smaller project description */
.hbspt-form .hs_project_description textarea {
  min-height: 105px !important;
}

/* Tighten consent area */
.hbspt-form .legal-consent-container {
  gap: 8px !important;
}

.hbspt-form .legal-consent-container li,
.hbspt-form .legal-consent-container .hs-form-booleancheckbox {
  margin-bottom: 6px !important;
}

.hbspt-form
.legal-consent-container
.hs-form-booleancheckbox-display > span {
  font-size: 12px !important;
  line-height: 1.35 !important;
}

/* Slightly smaller checkboxes */
.hbspt-form
.legal-consent-container
input[type="checkbox"] {
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  min-height: 16px !important;
  flex-basis: 16px !important;
}

/* Smaller button */
.hbspt-form input[type="submit"] {
  min-height: 50px !important;
  padding: 10px 18px !important;
  font-size: 19px !important;
}

/* Reduce gap before button */
.hbspt-form .hs_submit {
  margin-top: 0 !important;
}
/* =========================================
   FORCE REMOVE CHECKBOX LIST BULLETS
   ========================================= */

.hbspt-form ul.inputs-list,
.hbspt-form ul.inputs-list li,
.hbspt-form .inputs-list,
.hbspt-form .inputs-list li,
.hbspt-form .hs-form-booleancheckbox {
  list-style: none !important;
  list-style-type: none !important;
}

/* Remove native list marker */
.hbspt-form ul.inputs-list li::marker,
.hbspt-form .inputs-list li::marker,
.hbspt-form .hs-form-booleancheckbox::marker {
  content: "" !important;
  font-size: 0 !important;
}

/* Remove theme-generated bullets */
.hbspt-form ul.inputs-list li::before,
.hbspt-form .inputs-list li::before,
.hbspt-form .hs-form-booleancheckbox::before {
  content: none !important;
  display: none !important;
}

/* Remove inherited list indentation */
.hbspt-form ul.inputs-list,
.hbspt-form .inputs-list {
  padding-left: 0 !important;
  margin-left: 0 !important;
}

/* Make checkbox rows start flush left */
.hbspt-form ul.inputs-list li,
.hbspt-form .inputs-list li {
  padding-left: 0 !important;
  margin-left: 0 !important;
}/* End custom CSS */