.elementor-3568 .elementor-element.elementor-element-f56d0d0{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:center;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;border-style:none;--border-style:none;--border-radius:20px 20px 20px 20px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3568 .elementor-element.elementor-element-f56d0d0:not(.elementor-motion-effects-element-type-background), .elementor-3568 .elementor-element.elementor-element-f56d0d0 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#02010100;}.elementor-3568 .elementor-element.elementor-element-f56d0d0.e-con{--align-self:center;}.elementor-3568 .elementor-element.elementor-element-cbca9ac{--display:flex;--min-height:auto;--flex-direction:row;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-start;--align-items:center;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--overlay-opacity:0;border-style:solid;--border-style:solid;border-width:0px 0px 0px 0px;--border-top-width:0px;--border-right-width:0px;--border-bottom-width:0px;--border-left-width:0px;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3568 .elementor-element.elementor-element-cbca9ac:not(.elementor-motion-effects-element-type-background), .elementor-3568 .elementor-element.elementor-element-cbca9ac > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#0000001C;}.elementor-3568 .elementor-element.elementor-element-cbca9ac::before, .elementor-3568 .elementor-element.elementor-element-cbca9ac > .elementor-background-video-container::before, .elementor-3568 .elementor-element.elementor-element-cbca9ac > .e-con-inner > .elementor-background-video-container::before, .elementor-3568 .elementor-element.elementor-element-cbca9ac > .elementor-background-slideshow::before, .elementor-3568 .elementor-element.elementor-element-cbca9ac > .e-con-inner > .elementor-background-slideshow::before, .elementor-3568 .elementor-element.elementor-element-cbca9ac > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:#12327D00;--background-overlay:'';}.elementor-3568 .elementor-element.elementor-element-cbca9ac.e-con{--align-self:center;}.elementor-widget-heading .elementor-heading-title{font-family:var( --e-global-typography-primary-font-family ), Sans-serif;font-size:var( --e-global-typography-primary-font-size );font-weight:var( --e-global-typography-primary-font-weight );color:var( --e-global-color-primary );}.elementor-3568 .elementor-element.elementor-element-70c3be4 > .elementor-widget-container{padding:15px 15px 15px 15px;}.elementor-3568 .elementor-element.elementor-element-70c3be4.elementor-element{--align-self:center;--flex-grow:1;--flex-shrink:0;}.elementor-3568 .elementor-element.elementor-element-70c3be4{text-align:center;}.elementor-3568 .elementor-element.elementor-element-70c3be4 .elementor-heading-title{font-family:"Montserrat", Sans-serif;font-size:2rem;font-weight:400;color:#FFFFFF;}.elementor-3568 .elementor-element.elementor-element-ee3d3f4{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--justify-content:flex-start;--gap:0px 0px;--row-gap:0px;--column-gap:0px;--flex-wrap:wrap;--align-content:flex-start;border-style:none;--border-style:none;--border-radius:0px 0px 0px 0px;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-3568 .elementor-element.elementor-element-ee3d3f4.e-con{--align-self:flex-start;}.elementor-3568 .elementor-element.elementor-element-34c82cb{width:100%;max-width:100%;}.elementor-3568 .elementor-element.elementor-element-34c82cb > .elementor-widget-container{margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;border-radius:0px 0px 20px 20px;}.elementor-3568 .elementor-element.elementor-element-34c82cb.elementor-element{--flex-grow:0;--flex-shrink:0;}#elementor-popup-modal-3568 .dialog-widget-content{animation-duration:0.8s;border-style:solid;border-color:#152055;border-radius:21px 21px 21px 21px;margin:0px 0px 0px 0px;}#elementor-popup-modal-3568{background-color:#000000CC;justify-content:center;align-items:center;pointer-events:all;}#elementor-popup-modal-3568 .dialog-message{width:600px;height:auto;padding:0px 0px 0px 0px;}#elementor-popup-modal-3568 .dialog-close-button{display:flex;top:3%;background-color:#FFFFFF;font-size:20px;}body:not(.rtl) #elementor-popup-modal-3568 .dialog-close-button{right:2%;}body.rtl #elementor-popup-modal-3568 .dialog-close-button{left:2%;}#elementor-popup-modal-3568 .dialog-close-button i{color:var( --e-global-color-primary );}#elementor-popup-modal-3568 .dialog-close-button svg{fill:var( --e-global-color-primary );}@media(max-width:1024px){.elementor-3568 .elementor-element.elementor-element-f56d0d0{--min-height:100vh;}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}#elementor-popup-modal-3568 .dialog-message{width:100vw;padding:0px 0px 0px 0px;}#elementor-popup-modal-3568{justify-content:center;align-items:flex-start;}#elementor-popup-modal-3568 .dialog-widget-content{border-width:0px 0px 0px 0px;border-radius:0px 0px 0px 0px;margin:0px 0px 0px 0px;}#elementor-popup-modal-3568 .dialog-close-button{font-size:20px;}}@media(max-width:767px){.elementor-3568 .elementor-element.elementor-element-cbca9ac{--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--justify-content:flex-start;}.elementor-widget-heading .elementor-heading-title{font-size:var( --e-global-typography-primary-font-size );}.elementor-3568 .elementor-element.elementor-element-70c3be4{width:auto;max-width:auto;}.elementor-3568 .elementor-element.elementor-element-70c3be4 > .elementor-widget-container{padding:18px 18px 18px 18px;}.elementor-3568 .elementor-element.elementor-element-70c3be4.elementor-element{--flex-grow:1;--flex-shrink:0;}.elementor-3568 .elementor-element.elementor-element-ee3d3f4{--width:100%;}.elementor-3568 .elementor-element.elementor-element-34c82cb{width:100%;max-width:100%;}#elementor-popup-modal-3568 .dialog-message{width:500px;}}@media(min-width:768px){.elementor-3568 .elementor-element.elementor-element-cbca9ac{--width:100%;}.elementor-3568 .elementor-element.elementor-element-ee3d3f4{--width:100%;}}@media(max-width:1024px) and (min-width:768px){.elementor-3568 .elementor-element.elementor-element-f56d0d0{--content-width:100vw;}}/* Start custom CSS *//* ============================================
   1ST CLASS HEAT & AIR — SERVICE REQUEST FORM
   WPForms Popup — Form 3550 / Popup 3568
   Consolidated & Optimized Stylesheet
   Updated: 2026-05-16
   ============================================ */


/* ============================================
   1. POPUP MODAL SHELL
   ============================================ */

.elementor-popup-modal .dialog-widget-content {
  background: transparent !important;
}

.elementor-element-f56d0d0 > .e-con-inner {
  border-radius: 20px !important;
  overflow: hidden !important;
  gap: 0 !important;
}

/* Close button — style only, no positioning overrides.
   Elementor controls all positioning on its modal elements.
   Overriding position on dialog-widget-content breaks the overlay. */
#elementor-popup-modal-3568 .dialog-close-button {
  z-index: 99999 !important;
  background: transparent !important;
  outline: none !important;
  cursor: pointer !important;
}

#elementor-popup-modal-3568 .dialog-close-button svg {
  fill: #fff !important;
  width: 18px !important;
  height: 18px !important;
}

/* ── Podium + chat widgets — z-index layering ──
   Push Podium below the Elementor popup overlay so it
   never overlaps form fields. Still visible when popup is closed. ── */
#podium-website-widget,
.podium-website-widget,
[id*="podium"],
[class*="podium"],
iframe[src*="podium"] {
  z-index: 999 !important;
}

/* ── When popup is open — drop Podium + chat fully behind overlay ── */
.elementor-popup-modal ~ [id*="podium"],
.elementor-popup-modal ~ [class*="podium"],
.elementor-popup-modal ~ iframe[src*="podium"],
.elementor-popup-modal ~ [class*="chat"],
.elementor-popup-modal ~ [id*="chat"],
.elementor-popup-modal ~ [class*="tidio"],
.elementor-popup-modal ~ [id*="tidio"],
.elementor-popup-modal ~ [class*="livechat"],
.elementor-popup-modal ~ iframe[title*="chat"] {
  z-index: 1 !important;
  pointer-events: none !important;
}


/* ============================================
   2. HEADER BAR
   ============================================ */

.elementor-element-cbca9ac {
  background-color: #13327d !important;
  padding: 5px !important;
  text-align: center;
  overflow: hidden !important;
  margin-bottom: 0 !important;
  border-radius: 19px 0 !important;
}

/* Elementor forces its own border-radius — reset it */
.elementor-3568 .elementor-element.elementor-element-cbca9ac.e-con {
  border-radius: 0 !important;
}

.elementor-element-cbca9ac .elementor-heading-title {
  color: #fff !important;
  font-family: 'Poppins', sans-serif !important;
  font-size: 1.125rem !important;
  font-weight: 300 !important;
  letter-spacing: 2px !important;
  text-transform: uppercase !important;
}


/* ============================================
   3. FORM BODY & LAYOUT
   ============================================ */

.elementor-element-ee3d3f4 {
  background: #fff !important;
  padding: 0 !important;
  margin-top: 0 !important;
}

.wpforms-page {
  padding: 20px !important;
}

.wpforms-container {
  width: 100%;
}

div.wpforms-container-full:not(:empty) {
  margin: 0 auto !important;
}

.wpforms-container .wpforms-field,
.wp-core-ui div.wpforms-container .wpforms-field {
  padding: 0 !important;
  margin: 0 0 6px !important;
  position: inherit !important;
}

/* Flush field rows edge-to-edge */
#wpforms-3550 .wpforms-field-row {
  margin-left: 0 !important;
  margin-right: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* Remove extra margin on right-column fields */
#wpforms-3550 .wpforms-field-row-block.wpforms-one-half:last-child,
#wpforms-3550 .wpforms-field-email,
#wpforms-3550 .wpforms-layout-column:last-child,
#wpforms-3550 .wpforms-layout-column-50:last-child {
  margin-left: 0 !important;
  padding-left: 0 !important;
}

/* Honeypot — hidden */
#wpforms-3550-field_1-container {
  display: none;
}

/* Back button */
#wpforms-3550 .wpforms-page-prev {
  position: absolute;
  top: -40px;
  left: 12px;
  color: #fff !important;
  background: transparent;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: auto !important;
  min-width: 100px !important;
}

/* Hide back button on page 30 */
.wpforms-3550-field_30-container .wpforms-page-prev {
  display: none !important;
}

/* Submit container */
#wpforms-3550 .wpforms-submit-container {
  /* No display — WPForms JS sets display:none on this container
     to hide it on non-final pages. !important here overrides that. */
  flex-direction: column !important;
  align-items: center !important;
  gap: 10px !important;
  margin-bottom: 50px;
  padding: 8px 20px 20px !important;
  justify-self: anchor-center;
}


/* ============================================
   4. PROGRESS INDICATOR (CIRCLES)
   ============================================ */

#wpforms-3550 .wpforms-page-indicator.circles {
  background-color: #12317d !important;
  padding: 17px 20px 10px !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  position: relative;
  border-radius: 0 !important;
  border-top: 0;
  margin: 0 !important;
  width: 100% !important;
  gap: 0 !important;
  box-sizing: border-box !important;
}

/* Connecting line */
#wpforms-3550 .wpforms-page-indicator.circles::before {
  content: '';
  position: absolute;
  top: 22px;
  left: 50px;
  right: 40px;
  height: 3px;
  background: rgba(255, 255, 255, 0.25);
  z-index: 0;
}

#wpforms-3550 .wpforms-page-indicator-page {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  position: relative;
  z-index: 1;
  width: auto !important;
  flex: none !important;
}

/* Circle — inactive */
#wpforms-3550 .wpforms-page-indicator-page-number {
  width: 14px !important;
  height: 14px !important;
  min-width: 14px !important;
  min-height: 14px !important;
  border-radius: 50% !important;
  background: #2a4d7a !important;
  color: transparent !important;
  font-size: 0 !important;
  display: block !important;
  border: 2px solid rgba(255, 255, 255, 0.5) !important;
  margin-bottom: 6px !important;
  padding: 0 !important;
  line-height: 0 !important;
  text-indent: -9999px !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

/* Circle — active */
#wpforms-3550 .wpforms-page-indicator-page.active .wpforms-page-indicator-page-number {
  background: #fff !important;
  border-color: #fff !important;
  box-shadow: 0 0 10px rgba(255, 255, 255, 0.5) !important;
}

/* Step label — inactive */
#wpforms-3550 .wpforms-page-indicator-page-title {
  color: rgba(255, 255, 255, 0.7) !important;
  font-size: 11px !important;
  font-weight: 500 !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* Step label — active */
#wpforms-3550 .wpforms-page-indicator-page.active .wpforms-page-indicator-page-title {
  color: #fff !important;
  font-weight: 600 !important;
}


/* ============================================
   5. LABELS & FLOATING LABELS
   WPForms controls all label visibility natively.
   No overrides here — labels show/hide per field settings.
   ============================================ */

/* Floating label wrapper */
#wpforms-form-3550 .wpforms-field-text,
#wpforms-form-3550 .wpforms-field-phone,
#wpforms-form-3550 .wpforms-field-email,
#wpforms-form-3550 .wpforms-field-row-block,
#wpforms-form-3550 div[data-float-wrapper] {
  position: relative !important;
  display: block !important;
  margin-bottom: 6px !important;
}

/* Float label — resting */
#wpforms-form-3550 .float-label {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 14px;
  color: #9ca3af;
  pointer-events: none;
  transition: all 0.18s ease;
  background: #fff;
  padding: 0 3px;
  line-height: 1;
}

/* Float label — elevated (has value) */
#wpforms-form-3550 .float-label.floated {
  top: 0;
  transform: translateY(-50%);
  font-size: 11px;
  color: #0299ed;
}

#wpforms-form-3550 .float-label .req {
  color: #e53e3e;
  margin-left: 2px;
}

/* Hide floating labels on address sub-fields (sublabels handle these) */
#wpforms-3550-field_10-address2 + .float-label,
#wpforms-3550-field_10-city + .float-label,
#wpforms-3550-field_10-state + .float-label,
#wpforms-3550-field_10-postal + .float-label,
[data-float-wrapper] .float-label[for="wpforms-3550-field_10-address2"],
[data-float-wrapper] .float-label[for="wpforms-3550-field_10-city"],
[data-float-wrapper] .float-label[for="wpforms-3550-field_10-postal"] {
  display: none !important;
}

/* Address sub-field sublabels */
.wpforms-field-address .wpforms-field-address-city .wpforms-field-sublabel,
.wpforms-field-address .wpforms-field-address-state .wpforms-field-sublabel,
.wpforms-field-address .wpforms-field-address-postal .wpforms-field-sublabel,
.wpforms-field-address .wpforms-field-address-address2 .wpforms-field-sublabel {
  display: block !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  color: #9ca3af !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  margin-bottom: 2px !important;
}

/* Required asterisk */
#wpforms-form-3550 .wpforms-required-label {
  color: #e53e3e !important;
}


/* ============================================
   6. INPUT FIELDS
   ============================================ */

#wpforms-form-3550 input[type="text"],
#wpforms-form-3550 input[type="email"],
#wpforms-form-3550 input[type="tel"] {
  width: 100% !important;
  height: 56px !important;
  padding: 10px !important;
  background: #fff !important;
  border: 1px solid #ccc !important;
  border-radius: 6px !important;
  font-size: 16px !important;
  color: #374151 !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  margin: 0 !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

/* Active/focus state — all WPForms inputs
   Must use ID #elementor-popup-modal-3568 (#wpforms-form-3550) to beat the base input rule
   which also uses an ID + !important. Class #elementor-popup-modal-3568s lose that fight. */
#wpforms-form-3550 input[type="text"]:focus,
#wpforms-form-3550 input[type="email"]:focus,
#wpforms-form-3550 input[type="tel"]:focus,
#wpforms-form-3550 input[type="number"]:focus,
#wpforms-form-3550 textarea:focus,
#wpforms-form-3550 select:focus {
  border-color: #3b9edd !important;
  box-shadow: 0 0 0 3px rgba(59, 158, 221, 0.15) !important;
  outline: none !important;
  background-color: #f5fbff !important;
}

/* Textarea — matches input field styling */
#wpforms-form-3550 textarea {
  width: 100% !important;
  padding: 14px 16px !important;
  background: #fff !important;
  border: 1px solid #dde3ea !important;
  border-radius: 12px !important;
  font-size: 15px !important;
  color: #374151 !important;
  box-shadow: none !important;
  box-sizing: border-box !important;
  resize: vertical !important;
  min-height: 110px !important;
  line-height: 1.6 !important;
  font-family: Poppins, -apple-system, sans-serif !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}

#wpforms-form-3550 textarea::placeholder {
  color: #9ca3af !important;
}

/* Address field placeholder color */
#wpforms-form-3550 #wpforms-3550-field_10::placeholder {
  color: #9ca3af !important;
}

/* SMS consent checkbox size fix */
input#wpforms-3550-field_15_1 {
  width: fit-content !important;
}


/* ============================================
   7. DATEPICKER / TIMEPICKER
   ============================================ */

#wpforms-3550-field_37-time {
  height: 52px !important;
  padding: 0 16px !important;
  border: 1.5px solid #dde3ea !important;
  border-radius: 12px !important;
  background: #f8fafc !important;
  font-size: 16px !important;
  color: #111827 !important;
  width: 100% !important;
  box-shadow: none !important;
}

#wpforms-3550-field_37-time:focus {
  border-color: #1a3a6b !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(26, 58, 107, 0.1) !important;
  outline: none !important;
}

.ui-timepicker-wrapper {
  border-radius: 12px !important;
  border: 1.5px solid #dde3ea !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1) !important;
  overflow: hidden !important;
  overflow-y: auto !important;
  max-height: 300px !important;
  font-size: 15px !important;
}

.ui-timepicker-list li {
  padding: 12px 16px !important;
  color: #111827 !important;
  cursor: pointer !important;
}

.ui-timepicker-list li:hover,
.ui-timepicker-list .ui-timepicker-selected {
  background: #f0f4ff !important;
  color: #1a3a6b !important;
  font-weight: 600 !important;
}


/* ============================================
   8. ADDRESS & GOOGLE PLACES
   ============================================ */

/* Address confirmation banner */
#address-banner {
  display: none;
  background: #f0f5ff !important;
  border: 1px solid #d0e0ff !important;
  border-radius: 8px !important;
  padding: 12px 16px !important;
  margin-bottom: 16px !important;
  font-size: 14px !important;
  color: #374151 !important;
  line-height: 1.5 !important;
}

#address-banner strong {
  color: #1a1a2e !important;
  font-weight: 600 !important;
}

#address-banner .address-edit-btn {
  display: inline-block !important;
  margin-left: 12px !important;
  font-size: 13px !important;
  color: #1570ef !important;
  cursor: pointer !important;
  text-decoration: underline !important;
  font-weight: 500 !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
}

/* Address sub-fields — subtle but fully editable */
#wpforms-form-3550 #wpforms-3550-field_10-address2,
#wpforms-form-3550 #wpforms-3550-field_10-city,
#wpforms-form-3550 #wpforms-3550-field_10-state,
#wpforms-form-3550 #wpforms-3550-field_10-postal {
  border: 1px solid #e5e7eb !important;
  border-radius: 6px !important;
  background: #f9fafb !important;
  background-image: none !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 8px 10px !important;
  height: auto !important;
  min-height: 36px !important;
  font-size: 15px !important;
  font-weight: 500 !important;
  color: #1a1a2e !important;
  appearance: none !important;
  -webkit-appearance: none !important;
}

#wpforms-form-3550 #wpforms-3550-field_10-address2:focus,
#wpforms-form-3550 #wpforms-3550-field_10-city:focus,
#wpforms-form-3550 #wpforms-3550-field_10-state:focus,
#wpforms-form-3550 #wpforms-3550-field_10-postal:focus {
  border-color: #0299ed !important;
  background: #fff !important;
  outline: none !important;
}

/* Hide address line 2 when empty */
#wpforms-form-3550 input#wpforms-3550-field_10-address2:placeholder-shown {
  display: none !important;
}

/* Google Places autocomplete dropdown */
.pac-container {
  z-index: 2147483647 !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;
  border: 1px solid #ddd !important;
  margin-top: 2px !important;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
}

.pac-container::after {
  display: none !important;
}

.pac-container .pac-item {
  padding: 12px 14px !important;
  font-size: 14px !important;
  line-height: 1.4 !important;
  cursor: pointer !important;
  min-height: 44px !important;
  display: flex !important;
  align-items: center !important;
}

.pac-container .pac-item:hover,
.pac-container .pac-item:active {
  background: #f2f6ff !important;
}

.pac-container .pac-item-query {
  font-size: 14px !important;
  color: #1a1a2e !important;
  font-weight: 500 !important;
}

#wpforms-3550-field_10:focus {
  scroll-margin-top: 120px !important;
}


/* ============================================
   9. SMS CONSENT
   ============================================ */

#wpforms-3550-field_15-container {
  background: #f8f9fb !important;
  border: 1px solid #eee !important;
  border-radius: 8px !important;
  padding: 10px !important;
  margin-top: 8px !important;
}

#wpforms-3550-field_15 {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

#wpforms-3550-field_15 li {
  display: flex !important;
  align-items: flex-start !important;
  gap: 10px !important;
}

#wpforms-3550-field_15 li input[type="checkbox"] {
  flex-shrink: 0 !important;
  margin-top: 3px !important;
  width: 20px !important;
  height: 20px !important;
}

#wpforms-3550-field_15 li .wpforms-field-label-inline {
  flex: 1 !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #1a1a2e !important;
  line-height: 1.4 !important;
  text-align: left !important;
}

#wpforms-3550-field_15-description {
  font-size: 12px !important;
  color: #6b7280 !important;
  line-height: 1.55 !important;
}


/* ============================================
   10. STEP 4 SPECIAL FIELDS
   ============================================ */

/* field_11 (homeowner) now uses pill styling — no gray box */
#wpforms-3550-field_11-container {
  background: none !important;
  padding: 0 !important;
  margin-bottom: 6px !important;
}

#wpforms-3550-field_48-container {
  background-color: #eee;
  padding: 20px !important;
  clear: both;
  margin-bottom: 15px !important;
}

ul#wpforms-3550-field_48 {
  padding: 0;
  list-style: none;
}


/* ============================================
   11. BUTTONS
   ============================================ */

/* Shared visual base — Next + Submit (NO display property — each controlled separately) */
#wpforms-3550 .wpforms-page-next,
#wpforms-3550 .wpforms-submit {
  align-items: center !important;
  justify-content: center !important;
  height: 44px !important;
  min-width: 180px !important;
  padding: 0 28px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: 0.3px !important;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  border-radius: 10px !important;
  border: none !important;
  cursor: pointer !important;
  background: linear-gradient(180deg, #1570ef 0%, #1260d6 100%) !important;
  color: #fff !important;
  box-shadow:
    0 1px 2px rgba(16, 24, 40, 0.06),
    0 1px 3px rgba(16, 24, 40, 0.10),
    inset 0 1px 0 rgba(255, 255, 255, 0.12) !important;
  transition: background 0.15s ease, box-shadow 0.15s ease, transform 0.1s ease !important;
  user-select: none !important;
  overflow: hidden !important;
  -webkit-font-smoothing: antialiased !important;
  margin: 0 !important;
  width: auto !important;
}

/* Next — always visible, safe to force display */
#wpforms-3550 .wpforms-page-next {
  display: inline-flex !important;
}

/* Submit — NO display property here.
   WPForms JS controls visibility on the parent .wpforms-submit-container,
   not the button itself. Let it own show/hide entirely. */

/* Submit — slightly larger, stacked above back */
#wpforms-3550 .wpforms-submit {
  min-width: 220px !important;
  height: 48px !important;
  padding: 0 32px !important;
  font-size: 14px !important;
  position: static !important;
  float: none !important;
  order: -1 !important;
  align-self: center !important;
}

/* Hover */
#wpforms-3550 .wpforms-page-next:hover,
#wpforms-3550 .wpforms-submit:hover {
  background: linear-gradient(180deg, #1878f5 0%, #1366e0 100%) !important;
  box-shadow:
    0 2px 4px rgba(16, 24, 40, 0.08),
    0 4px 12px rgba(21, 112, 239, 0.24),
    inset 0 1px 0 rgba(255, 255, 255, 0.14) !important;
  transform: translateY(-0.5px) !important;
}

/* Active */
#wpforms-3550 .wpforms-page-next:active,
#wpforms-3550 .wpforms-submit:active {
  background: linear-gradient(180deg, #1058c0 0%, #0e4fa8 100%) !important;
  box-shadow:
    0 1px 2px rgba(16, 24, 40, 0.08),
    inset 0 1px 3px rgba(0, 0, 0, 0.12) !important;
  transform: translateY(0.5px) !important;
}

/* Back button active */
#wpforms-3550 .wpforms-page-prev:active {
  background: rgba(21, 112, 239, 0.10) !important;
  border-color: #1058c0 !important;
  color: #1058c0 !important;
  box-shadow: none !important;
  transform: translateY(0.5px) !important;
}

/* Keyboard focus */
#wpforms-3550 .wpforms-page-next:focus-visible,
#wpforms-3550 .wpforms-page-prev:focus-visible,
#wpforms-3550 .wpforms-submit:focus-visible {
  outline: 2px solid #84caff !important;
  outline-offset: 2px !important;
}

/* Button row layout */
#wpforms-3550 .wpforms-pagebreak-left {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 20px 0 8px !important;
}


/* ============================================
   12. ENTRY PREVIEW (CONFIRM STEP)
   ============================================ */

#wpforms-3550 .wpforms-entry-preview {
  padding: 0 4px !important;
}

#wpforms-3550 .wpforms-entry-preview-label {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #1a1a2e !important;
  text-transform: none !important;
  margin-bottom: 2px !important;
  padding-top: 14px !important;
}

#wpforms-3550 .wpforms-entry-preview-value {
  font-size: 15px !important;
  color: #374151 !important;
  line-height: 1.5 !important;
  padding-bottom: 14px !important;
  border-bottom: 1px solid #eee !important;
  margin-bottom: 0 !important;
}

#wpforms-3550 .wpforms-entry-preview-notice {
  background: #fff8ed !important;
  border: 1px solid #f5deb3 !important;
  border-radius: 10px !important;
  padding: 16px 18px !important;
  margin-bottom: 10px !important;
}

#wpforms-3550 .wpforms-entry-preview-notice strong {
  display: block !important;
  font-size: 16px !important;
  color: #1a1a2e !important;
  margin-bottom: 4px !important;
}

#wpforms-3550 .wpforms-entry-preview-notice p,
#wpforms-3550 .wpforms-entry-preview-notice span {
  font-size: 14px !important;
  color: #4b5563 !important;
}


/* ============================================
   13. CONFIRMATION MESSAGE
   ============================================ */

div.wpforms-container-full .wpforms-confirmation-container-full,
div[submit-success] > .wpforms-confirmation-container-full:not(.wpforms-redirection-message) {
  background: #fff !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box;
}


/* ============================================
   14. RESPONSIVE — FULL-SCREEN MODAL
       Shared rules: Tablet (769–1024px) + Mobile (≤768px)
   ============================================ */

@media (max-width: 1024px) {

  .elementor-popup-modal .dialog-widget-content {
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
    border-radius: 0 !important;
    overflow-y: auto !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
  }

  .elementor-popup-modal .elementor-element-f56d0d0 > .e-con-inner {
    border-radius: 0 !important;
    min-height: 100vh !important;
    min-height: 100dvh !important;
  }

  /* Close button handled globally above */

  #wpforms-3550 .wpforms-page-prev {
    left: 10px;
  }

}


/* ============================================
   15. RESPONSIVE — MOBILE (≤768px)
   ============================================ */

@media (max-width: 768px) {

  /* Header */
  .elementor-element-cbca9ac {
    border-radius: 0 !important;
    padding: 5px 12px !important;
  }

  .elementor-element-cbca9ac .elementor-heading-title {
    font-size: 14px !important;
    letter-spacing: 1px !important;
  }



  /* Form body */
  .elementor-3568 .elementor-element.elementor-element-ee3d3f4.e-con {
    flex-grow: 1;
  }

  .elementor-element-ee3d3f4 {
    padding: 0 !important;
  }

  .wpforms-page {
    padding: 16px 14px !important;
  }

  /* Field layout columns */
  div.wpforms-container .wpforms-form .wpforms-field-layout .wpforms-layout-row,
  div.wpforms-container .wpforms-form .wpforms-field-repeater .wpforms-layout-row {
    margin: inherit !important;
  }

  div.wpforms-container .wpforms-form .wpforms-field-layout .wpforms-layout-column,
  div.wpforms-container .wpforms-form .wpforms-field-repeater .wpforms-layout-column {
    padding: 0 !important;
  }

  /* Stack field rows vertically */
  #wpforms-3550 .wpforms-field-row,
  #wpforms-3550 .wpforms-layout-row {
    flex-direction: column !important;
  }

  #wpforms-3550 .wpforms-field-row-block.wpforms-one-half,
  #wpforms-3550 .wpforms-layout-column.wpforms-layout-column-50 {
    width: 100% !important;
    flex: none !important;
    margin-bottom: 12px !important;
  }

  /* Full-width inputs */
  #wpforms-form-3550 .wpforms-field,
  #wpforms-form-3550 .wpforms-field-email,
  #wpforms-form-3550 .wpforms-field-text,
  #wpforms-form-3550 .wpforms-field-phone,
  #wpforms-form-3550 .wpforms-field-row-block,
  #wpforms-form-3550 input[type="text"],
  #wpforms-form-3550 input[type="email"],
  #wpforms-form-3550 input[type="tel"] {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    float: none !important;
  }

  /* Prevent iOS zoom on focus (must stay 16px) */
  #wpforms-3550 input,
  #wpforms-3550 select,
  #wpforms-3550 textarea {
    font-size: 16px !important;
    -webkit-text-size-adjust: 100% !important;
  }

  /* Progress indicator */
  #wpforms-3550 .wpforms-page-indicator.circles {
    padding: 12px 16px 10px !important;
  }

  /* left/right = 16px padding + 6px (half of 12px circle) = 22px */
  #wpforms-3550 .wpforms-page-indicator.circles::before {
    left: 22px;
    right: 22px;
    width: auto;
    top: 18px;
    height: 2px;
  }

  #wpforms-3550 .wpforms-page-indicator-page {
    width: auto !important;
  }

  #wpforms-3550 .wpforms-page-indicator-page-number {
    width: 12px !important;
    height: 12px !important;
    min-width: 12px !important;
    min-height: 12px !important;
  }

  #wpforms-3550 .wpforms-page-indicator-page-title {
    font-size: 9px !important;
  }

  /* Image field */
  #wpforms-3550-field_43 img {
    max-height: 70px !important;
  }

  /* SMS consent */
  #wpforms-3550-field_15-container {
    padding: 12px !important;
    margin-top: 6px !important;
  }

  #wpforms-3550-field_15-description {
    font-size: 11px !important;
    line-height: 1.4 !important;
  }

  /* Button row — side by side */
  #wpforms-3550 .wpforms-pagebreak-left {
    flex-direction: row !important;
    justify-content: space-between !important;
    padding: 14px 0 6px !important;
  }

  #wpforms-3550 .wpforms-page-prev,
  #wpforms-3550 .wpforms-page-next {
    flex: 1 !important;
    min-width: unset !important;
    width: auto !important;
    height: 48px !important;
    font-size: 14px !important;
    border-radius: 12px !important;
  }

  #wpforms-3550 .wpforms-page-next {
    order: 2 !important;
  }

  #wpforms-3550 .wpforms-submit {
    width: 100% !important;
    min-width: unset !important;
    height: 52px !important;
    font-size: 15px !important;
    border-radius: 12px !important;
  }

  #wpforms-3550 .wpforms-submit-container {
    padding: 8px 14px 16px !important;
  }

  /* Google Places dropdown */
  .pac-container {
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
    font-size: 16px !important;
  }

  .pac-container .pac-item {
    padding: 14px 12px !important;
    font-size: 15px !important;
    min-height: 48px !important;
  }

  .pac-container .pac-item-query {
    font-size: 15px !important;
  }

}


/* ============================================
   16. EXTRA SMALL MOBILE (≤400px)
   ============================================ */

@media (max-width: 400px) {

  #wpforms-form-3550 input {
    width: 100% !important;
    display: block !important;
    margin-left: 0;
  }

  .elementor-element-cbca9ac {
    padding: 5px 8px !important;
    border-radius: 0 !important;
  }

  .elementor-element-cbca9ac .elementor-heading-title {
    font-size: 13px !important;
  }

  .wpforms-page {
    padding: 14px 10px !important;
  }

  #wpforms-3550 .wpforms-page-indicator.circles {
    padding: 10px 12px 8px !important;
  }

  /* left/right = 12px padding + 6px (half of 12px circle) = 18px */
  #wpforms-3550 .wpforms-page-indicator.circles::before {
    left: 18px;
    right: 18px;
    width: auto;
    top: 16px;
    height: 2px;
  }

  #wpforms-3550 .wpforms-page-indicator-page {
    width: auto !important;
  }

  #wpforms-3550 .wpforms-page-indicator-page-title {
    font-size: 8px !important;
  }

  #wpforms-3550-field_15-container {
    padding: 10px !important;
  }

  #wpforms-3550 .wpforms-submit-container {
    padding: 6px 10px 14px !important;
  }

  #wpforms-3550 .wpforms-pagebreak-left {
    gap: 8px !important;
    padding: 12px 0 4px !important;
  }

  #wpforms-3550 .wpforms-page-prev {
    left: 10px !important;
  }

}

/* ============================================================
   ADDRESS FIELD OVERLAY
   Hides WPForms sub-fields, shows clean single-line lookup
   ============================================================ */

/* ── FALLBACK for browsers without :has() (old Android WebView) ──
   Hides the sub-field inputs directly. JS hideSubFields() handles
   the row-level hiding. The address1 input always remains visible.
   ──────────────────────────────────────────────────────────────── */
@supports not (#elementor-popup-modal-3568(:has(*))) {
  #wpforms-3550-field_10-address2,
  #wpforms-3550-field_10-city,
  #wpforms-3550-field_10-state,
  #wpforms-3550-field_10-postal {
    display: none !important;
  }
}

/* ── ADDRESS FIELD: hide sub-fields, preserve address1 for Google Places ──
   Target ONLY the sub-field rows using :has() — never touch the
   address1 row so Google Places always has a visible input to attach to.
   ──────────────────────────────────────────────────────────────────────── */

/* Hide legend */
#wpforms-3550-field_10-container fieldset > legend {
  display: none !important;
}

/* Hide address2 row */
#wpforms-3550-field_10-container .wpforms-field-row:has(#wpforms-3550-field_10-address2) {
  display: none !important;
}

/* Hide city/state row */
#wpforms-3550-field_10-container .wpforms-field-row:has(#wpforms-3550-field_10-city) {
  display: none !important;
}

/* Hide postal/zip row — this was the Zip Code flash culprit */
#wpforms-3550-field_10-container .wpforms-field-row:has(#wpforms-3550-field_10-postal) {
  display: none !important;
}

/* ── Class-based address styling ──
   JS adds .hvac-addr-styled to the row.
   ALL input styling is in CSS — JS never touches input inline styles.
   This prevents interference with Google Places autocomplete. */

.hvac-addr-styled {
  position: relative !important;
  display: block !important;
  height: 56px !important;
  border: 1.5px solid #dde3ea !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

.hvac-addr-styled:focus-within {
  border-color: #3b9edd !important;
  box-shadow: 0 0 0 3px rgba(59, 158, 221, 0.15) !important;
}

.hvac-addr-styled > div {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

.hvac-addr-styled input#wpforms-3550-field_10 {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 16px 0 42px !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  font-size: 16px !important;
  color: #111827 !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

.hvac-addr-styled label[for="wpforms-3550-field_10"] {
  display: none !important;
  width: 0 !important;
}

/* Address1 row — search input styling (never hidden, Google Places needs it)
   Must match .hvac-addr-styled rules. display:block + position:relative
   so the icon can be position:absolute inside the row. */
#wpforms-3550-field_10-container .wpforms-field-row:has(#wpforms-3550-field_10) {
  position: relative !important;
  display: block !important;
  height: 56px !important;
  border: 1.5px solid #dde3ea !important;
  border-radius: 12px !important;
  background: #fff !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

/* Input inside the address row */
#wpforms-3550-field_10-container .wpforms-field-row:has(#wpforms-3550-field_10) input {
  -webkit-flex: 1 !important;
  flex: 1 !important;
  min-width: 0 !important;
  height: 100% !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 16px 0 42px !important;
  margin: 0 !important;
  font-size: 16px !important;
  color: #111827 !important;
  -webkit-appearance: none !important;
  appearance: none !important;
  box-sizing: border-box !important;
}

#wpforms-3550-field_10-container .wpforms-field-row:has(#wpforms-3550-field_10):focus-within {
  border-color: #3b9edd !important;
  box-shadow: 0 0 0 3px rgba(59, 158, 221, 0.15) !important;
}

/* Wrapper div + label inside address row */
#wpforms-3550-field_10-container .wpforms-field-row:has(#wpforms-3550-field_10) > div {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

#wpforms-3550-field_10-container .wpforms-field-row:has(#wpforms-3550-field_10) label {
  display: none !important;
}

/* Address1 input */
#wpforms-3550-field_10 {
  flex: 1 !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  font-size: 15px !important;
  color: #111827 !important;
  height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}

#wpforms-3550-field_10::placeholder {
  color: #9ca3af !important;
}

/* Remove the container's default border/background */
#wpforms-3550-field_10-container fieldset {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* ============================================================
   RADIO + CHECKBOX TAG PILLS
   Applies to all radio fields AND field_11 (homeowner Yes/No).
   Native inputs stay in DOM — WPForms validation unchanged.
   ============================================================ */

/* Hide native inputs visually */
#wpforms-form-3550 .wpforms-field-radio input[type="radio"],
#wpforms-3550-field_11 input[type="checkbox"] {
  position: absolute !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  pointer-events: none !important;
}

/* UL — flex wrap row */
#wpforms-form-3550 .wpforms-field-radio ul,
#wpforms-3550-field_11 {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  list-style: none !important;
  padding: 0 !important;
  margin: 4px 0 0 !important;
}

/* LI — reset */
#wpforms-form-3550 .wpforms-field-radio ul li,
#wpforms-3550-field_11 li {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
}

/* Label — pill base */
#wpforms-form-3550 .wpforms-field-radio .wpforms-field-label-inline,
#wpforms-3550-field_11 .wpforms-field-label-inline {
  display: inline-flex !important;
  align-items: center !important;
  padding: 9px 18px !important;
  border-radius: 100px !important;
  border: 1.5px solid #e5e7eb !important;
  background: #f9fafb !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #374151 !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
  user-select: none !important;
  line-height: 1.2 !important;
  font-family: Poppins, -apple-system, sans-serif !important;
  white-space: nowrap !important;
}

/* Hover */
#wpforms-form-3550 .wpforms-field-radio .wpforms-field-label-inline:hover,
#wpforms-3550-field_11 .wpforms-field-label-inline:hover {
  border-color: #13327d !important;
  background: #f0f4ff !important;
  color: #13327d !important;
}

/* Selected — radio */
#wpforms-form-3550 .wpforms-field-radio input[type="radio"]:checked + .wpforms-field-label-inline {
  background: #13327d !important;
  border-color: #13327d !important;
  color: #fff !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 8px rgba(19, 50, 125, 0.25) !important;
}

/* Selected — checkbox (homeowner Yes/No) */
#wpforms-3550-field_11 input[type="checkbox"]:checked + .wpforms-field-label-inline {
  background: #13327d !important;
  border-color: #13327d !important;
  color: #fff !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 8px rgba(19, 50, 125, 0.25) !important;
}

/* Fieldset reset — browser defaults cause legends to float
   oddly on mobile, clipping them in some layouts */
#wpforms-form-3550 .wpforms-field-radio fieldset,
#wpforms-3550-field_11-container fieldset {
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
  min-width: 0 !important;
  -webkit-margin-start: 0 !important;
  -webkit-padding-start: 0 !important;
}

/* Legend — pulled out of fieldset float and rendered as normal block */
#wpforms-form-3550 .wpforms-field-radio legend.wpforms-field-label,
#wpforms-3550-field_11-container legend.wpforms-field-label {
  display: block !important;
  float: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 0 10px 0 !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  color: #111827 !important;
  font-family: Poppins, -apple-system, sans-serif !important;
  line-height: 1.4 !important;
  -webkit-padding-start: 0 !important;
}

/* Mobile — pill overrides */
@media (max-width: 768px) {

  /* Hide native inputs */
  #wpforms-form-3550 .wpforms-field-radio input[type="radio"],
  #wpforms-3550-field_11-container input[type="checkbox"] {
    position: absolute !important;
    opacity: 0 !important;
    width: 0 !important;
    height: 0 !important;
    pointer-events: none !important;
    margin: 0 !important;
  }

  /* Pill list — flex wrap */
  #wpforms-form-3550 .wpforms-field-radio ul,
  #wpforms-3550-field_11 {
    display: -webkit-flex !important;
    display: flex !important;
    -webkit-flex-wrap: wrap !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 4px 0 0 !important;
  }

  /* Pill list items */
  #wpforms-form-3550 .wpforms-field-radio ul li,
  #wpforms-3550-field_11 li {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: -webkit-flex !important;
    display: flex !important;
  }

  /* Pill label */
  #wpforms-form-3550 .wpforms-field-radio .wpforms-field-label-inline,
  #wpforms-3550-field_11 .wpforms-field-label-inline {
    display: -webkit-inline-flex !important;
    display: inline-flex !important;
    -webkit-align-items: center !important;
    align-items: center !important;
    padding: 10px 18px !important;
    border-radius: 100px !important;
    border: 1.5px solid #e5e7eb !important;
    background: #f9fafb !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    color: #374151 !important;
    cursor: pointer !important;
    -webkit-user-select: none !important;
    user-select: none !important;
    min-height: 44px !important;
    white-space: nowrap !important;
    -webkit-tap-highlight-color: transparent !important;
  }

  /* Selected state */
  #wpforms-form-3550 .wpforms-field-radio input[type="radio"]:checked + .wpforms-field-label-inline,
  #wpforms-3550-field_11 input[type="checkbox"]:checked + .wpforms-field-label-inline {
    background: #13327d !important;
    border-color: #13327d !important;
    color: #fff !important;
    font-weight: 600 !important;
  }
}

@media (max-width: 480px) {
  #wpforms-form-3550 .wpforms-field-radio .wpforms-field-label-inline,
  #wpforms-3550-field_11 .wpforms-field-label-inline {
    padding: 8px 14px !important;
    font-size: 13px !important;
  }
}/* End custom CSS */