.elementor-kit-2166{--e-global-color-primary:#003DA6;--e-global-color-secondary:#EA0029;--e-global-color-text:#202020;--e-global-color-accent:#EA0029;--e-global-color-8fdac62:#FFFFFF;--e-global-color-10230b3:#0A0A0A;--e-global-color-6bfe3f2:#D20025;--e-global-typography-primary-font-family:"Montserrat";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Montserrat";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-weight:500;--e-global-typography-0ebf748-font-family:"Roboto";--e-global-typography-0ebf748-font-weight:400;}.elementor-kit-2166 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){margin-block-end:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}:root { --brand-blue:#003DA6; --brand-red:#EA0029; --brand-red-dark:#D20025; --text-body:#202020; --white:#FFFFFF; --near-black:#0A0A0A; --surface-soft:#F0F3FA; --overlay-hero:rgba(0,0,0,0.32); --font-main:Montserrat; --content-width:1140px; --gap-base:20px; --radius-button:5px; --text-base:16px; --h1-size:clamp(45px, 6vw, 91px); --h2-size:clamp(36px, 4.2vw, 53px); --h3-size:30px; --section-pad-y:clamp(60px, 9vw, 120px); --section-pad-x:30px; --full-width:100%; }
/* Start custom CSS *//* ==========================================================
   PlumbingPro form styling (design tokens). Visual only.
   Covers Gravity Forms (Orbital theme) and Elementor Pro forms.
   Page 2272 (dev-only, out of scope) is excluded.
   ========================================================== */

/* ---------- Gravity Forms ---------- */
body:not(.page-id-2272) .gform_wrapper.gform-theme--framework {
  --gf-color-primary: #EA0029;
  --gf-color-primary-rgb: 234, 0, 41;
  --gf-color-primary-contrast: #FFFFFF;
  --gf-color-primary-darker: #D20025;
  --gf-ctrl-border-color: #C5CEE0;
  --gf-ctrl-radius: 5px;
  --gf-ctrl-outline-color-focus: rgba(0, 61, 166, .35);
  font-family: 'Montserrat', sans-serif;
}
body:not(.page-id-2272) .gform_wrapper .gform_title {
  font-family: 'Montserrat', sans-serif; font-weight: 700; color: #003DA6;
}
body:not(.page-id-2272) .gform_wrapper .gfield_label,
body:not(.page-id-2272) .gform_wrapper .gform-field-label {
  font-family: 'Montserrat', sans-serif !important; font-size: 15px !important; font-weight: 600 !important; color: #003DA6 !important;
}
body:not(.page-id-2272) .gform_wrapper .gfield_required { color: #EA0029 !important; }
body:not(.page-id-2272) .gform_wrapper .gfield input:not([type=submit]):not([type=button]):not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),
body:not(.page-id-2272) .gform_wrapper .gfield select,
body:not(.page-id-2272) .gform_wrapper .gfield textarea {
  font-family: 'Montserrat', sans-serif !important; font-size: 16px !important; color: #202020 !important;
  background-color: #FFFFFF !important; border: 1px solid #C5CEE0 !important; border-radius: 5px !important;
  padding: 12px 14px !important; min-height: 48px; box-shadow: none !important;
  transition: border-color .2s, box-shadow .2s;
}
body:not(.page-id-2272) .gform_wrapper .gfield input:focus,
body:not(.page-id-2272) .gform_wrapper .gfield select:focus,
body:not(.page-id-2272) .gform_wrapper .gfield textarea:focus {
  border-color: #003DA6 !important; box-shadow: 0 0 0 3px rgba(0, 61, 166, .2) !important; outline: none !important;
}
body:not(.page-id-2272) .gform_wrapper .gform_footer input[type=submit],
body:not(.page-id-2272) .gform_wrapper .gform_footer button,
body:not(.page-id-2272) .gform_wrapper .gform_page_footer input[type=submit],
body:not(.page-id-2272) .gform_wrapper .gform_button {
  font-family: 'Montserrat', sans-serif !important; font-size: 20px !important; font-weight: 700 !important; line-height: 1.2 !important;
  color: #FFFFFF !important; background-color: #EA0029 !important; border: 0 !important; border-radius: 5px !important;
  padding: 20px !important; cursor: pointer; transition: background-color .2s;
}
body:not(.page-id-2272) .gform_wrapper .gform_footer input[type=submit]:hover,
body:not(.page-id-2272) .gform_wrapper .gform_footer button:hover,
body:not(.page-id-2272) .gform_wrapper .gform_button:hover,
body:not(.page-id-2272) .gform_wrapper .gform_button:focus {
  background-color: #D20025 !important;
}
body:not(.page-id-2272) .gform_wrapper .gfield_error input,
body:not(.page-id-2272) .gform_wrapper .gfield_error select,
body:not(.page-id-2272) .gform_wrapper .gfield_error textarea { border-color: #EA0029 !important; }
body:not(.page-id-2272) .gform_wrapper .gfield_validation_message,
body:not(.page-id-2272) .gform_wrapper .validation_message { color: #D20025 !important; font-family: 'Montserrat', sans-serif; }
body:not(.page-id-2272) .gform_confirmation_message { font-family: 'Montserrat', sans-serif; color: #003DA6; font-weight: 600; }

/* ---------- Elementor Pro forms ---------- */
body:not(.page-id-2272) .elementor-form .elementor-field-group .elementor-field-label {
  font-family: 'Montserrat', sans-serif !important; font-size: 15px !important; font-weight: 600 !important; color: #003DA6 !important;
}
body:not(.page-id-2272) .elementor-form .elementor-field-group .elementor-field-textual,
body:not(.page-id-2272) .elementor-form .elementor-field-group .elementor-select-wrapper select {
  font-family: 'Montserrat', sans-serif !important; font-size: 16px !important; color: #202020 !important;
  background-color: #FFFFFF !important; border: 1px solid #C5CEE0 !important; border-radius: 5px !important;
  padding: 12px 14px !important; min-height: 48px; box-shadow: none !important;
  transition: border-color .2s, box-shadow .2s;
}
body:not(.page-id-2272) .elementor-form .elementor-field-group .elementor-field-textual::placeholder { color: #6B7280 !important; opacity: 1; }
body:not(.page-id-2272) .elementor-form .elementor-field-group .elementor-field-textual:focus,
body:not(.page-id-2272) .elementor-form .elementor-field-group select:focus {
  border-color: #003DA6 !important; box-shadow: 0 0 0 3px rgba(0, 61, 166, .2) !important; outline: none !important;
}
body:not(.page-id-2272) .elementor-form .elementor-button {
  font-family: 'Montserrat', sans-serif !important; font-size: 20px !important; font-weight: 700 !important; line-height: 1.2 !important;
  color: #FFFFFF !important; background-color: #EA0029 !important; border: 0 !important; border-radius: 5px !important;
  padding: 20px !important; transition: background-color .2s;
}
body:not(.page-id-2272) .elementor-form .elementor-button:hover,
body:not(.page-id-2272) .elementor-form .elementor-button:focus { background-color: #D20025 !important; }
body:not(.page-id-2272) .elementor-form .elementor-message-success { color: #003DA6; font-family: 'Montserrat', sans-serif; font-weight: 600; }
body:not(.page-id-2272) .elementor-form .elementor-message-danger,
body:not(.page-id-2272) .elementor-form .elementor-error .elementor-field { border-color: #EA0029 !important; }

/* ---------- Wave dividers (Step 10). Same "mountains" SVG and CSS as the location sites (pp-wave-*).
   pp-wave-bottom-white: white waves over the bottom of a hero (soft gray when the next section is .pp-section-soft).
   pp-wave-rise-X: waves in the section's own color rising over the bottom padding of the section above.
   pp-wave-drop-X: waves in the section's own color dropping over the top padding of the section below.
   pp-wave-footer: blue waves rising from the footer, only on pages without a red CTA (the CTA's drop wave covers that edge). ---------- */
.pp-wave-bottom-white::after, .pp-wave-rise-blue::before, .pp-wave-drop-blue::after, .pp-wave-rise-red::before, .pp-wave-drop-red::after, .pp-wave-footer::before {
  content: ""; position: absolute; left: 0; right: 0; height: 80px; z-index: 3; pointer-events: none;
  background-repeat: no-repeat; background-size: 100% 100%;
}
.pp-wave-bottom-white::after { bottom: -1px; transform: rotate(180deg); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cpath fill='%23FFFFFF' opacity='0.33' d='M473,67.3c-203.9,88.3-263.1-34-320.3,0C66,119.1,0,59.7,0,59.7V0h1000v59.7c0,0-62.1,26.1-94.9,29.3c-32.8,3.3-62.8-12.3-75.8-22.1C806,49.6,745.3,8.7,694.9,4.7S492.4,59,473,67.3z'/%3E%3Cpath fill='%23FFFFFF' opacity='0.66' d='M734,67.3c-45.5,0-77.2-23.2-129.1-39.1c-28.6-8.7-150.3-10.1-254,39.1s-91.7-34.4-149.2,0C115.7,118.3,0,39.8,0,39.8V0h1000v36.5c0,0-28.2-18.5-92.1-18.5C810.2,18.1,775.7,67.3,734,67.3z'/%3E%3Cpath fill='%23FFFFFF' d='M766.1,28.9c-200-57.5-266,65.5-395.1,19.5C242,1.8,242,5.4,184.8,20.6C128,35.8,132.3,44.9,89.9,52.5C28.6,63.7,0,0,0,0h1000c0,0-9.9,40.9-83.6,48.1S829.6,47,766.1,28.9z'/%3E%3C/svg%3E"); }
.pp-wave-bottom-white:has(+ .pp-section-soft)::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cpath fill='%23F0F3FA' opacity='0.33' d='M473,67.3c-203.9,88.3-263.1-34-320.3,0C66,119.1,0,59.7,0,59.7V0h1000v59.7c0,0-62.1,26.1-94.9,29.3c-32.8,3.3-62.8-12.3-75.8-22.1C806,49.6,745.3,8.7,694.9,4.7S492.4,59,473,67.3z'/%3E%3Cpath fill='%23F0F3FA' opacity='0.66' d='M734,67.3c-45.5,0-77.2-23.2-129.1-39.1c-28.6-8.7-150.3-10.1-254,39.1s-91.7-34.4-149.2,0C115.7,118.3,0,39.8,0,39.8V0h1000v36.5c0,0-28.2-18.5-92.1-18.5C810.2,18.1,775.7,67.3,734,67.3z'/%3E%3Cpath fill='%23F0F3FA' d='M766.1,28.9c-200-57.5-266,65.5-395.1,19.5C242,1.8,242,5.4,184.8,20.6C128,35.8,132.3,44.9,89.9,52.5C28.6,63.7,0,0,0,0h1000c0,0-9.9,40.9-83.6,48.1S829.6,47,766.1,28.9z'/%3E%3C/svg%3E"); }
.pp-wave-rise-blue::before, .pp-wave-rise-red::before, .pp-wave-footer::before { top: auto; bottom: calc(100% - 1px); transform: rotate(180deg); }
.pp-wave-drop-blue::after, .pp-wave-drop-red::after { top: calc(100% - 1px); }
.pp-wave-rise-blue::before, .pp-wave-drop-blue::after, .pp-wave-footer::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cpath fill='%23003DA6' opacity='0.33' d='M473,67.3c-203.9,88.3-263.1-34-320.3,0C66,119.1,0,59.7,0,59.7V0h1000v59.7c0,0-62.1,26.1-94.9,29.3c-32.8,3.3-62.8-12.3-75.8-22.1C806,49.6,745.3,8.7,694.9,4.7S492.4,59,473,67.3z'/%3E%3Cpath fill='%23003DA6' opacity='0.66' d='M734,67.3c-45.5,0-77.2-23.2-129.1-39.1c-28.6-8.7-150.3-10.1-254,39.1s-91.7-34.4-149.2,0C115.7,118.3,0,39.8,0,39.8V0h1000v36.5c0,0-28.2-18.5-92.1-18.5C810.2,18.1,775.7,67.3,734,67.3z'/%3E%3Cpath fill='%23003DA6' d='M766.1,28.9c-200-57.5-266,65.5-395.1,19.5C242,1.8,242,5.4,184.8,20.6C128,35.8,132.3,44.9,89.9,52.5C28.6,63.7,0,0,0,0h1000c0,0-9.9,40.9-83.6,48.1S829.6,47,766.1,28.9z'/%3E%3C/svg%3E"); }
.pp-wave-rise-red::before, .pp-wave-drop-red::after { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cpath fill='%23EA0029' opacity='0.33' d='M473,67.3c-203.9,88.3-263.1-34-320.3,0C66,119.1,0,59.7,0,59.7V0h1000v59.7c0,0-62.1,26.1-94.9,29.3c-32.8,3.3-62.8-12.3-75.8-22.1C806,49.6,745.3,8.7,694.9,4.7S492.4,59,473,67.3z'/%3E%3Cpath fill='%23EA0029' opacity='0.66' d='M734,67.3c-45.5,0-77.2-23.2-129.1-39.1c-28.6-8.7-150.3-10.1-254,39.1s-91.7-34.4-149.2,0C115.7,118.3,0,39.8,0,39.8V0h1000v36.5c0,0-28.2-18.5-92.1-18.5C810.2,18.1,775.7,67.3,734,67.3z'/%3E%3Cpath fill='%23EA0029' d='M766.1,28.9c-200-57.5-266,65.5-395.1,19.5C242,1.8,242,5.4,184.8,20.6C128,35.8,132.3,44.9,89.9,52.5C28.6,63.7,0,0,0,0h1000c0,0-9.9,40.9-83.6,48.1S829.6,47,766.1,28.9z'/%3E%3C/svg%3E"); }
.pp-wave-drop-blue + .pp-wave-rise-red::before { display: none; }
body:has(.pp-wave-drop-red) .pp-wave-footer::before { display: none; }
@media (max-width: 1024px) { .pp-wave-bottom-white::after, .pp-wave-rise-blue::before, .pp-wave-drop-blue::after, .pp-wave-rise-red::before, .pp-wave-drop-red::after, .pp-wave-footer::before { height: 60px; } }
@media (max-width: 767px) { .pp-wave-bottom-white::after, .pp-wave-rise-blue::before, .pp-wave-drop-blue::after, .pp-wave-rise-red::before, .pp-wave-drop-red::after, .pp-wave-footer::before { height: 20px; } }
/* ---------- end wave dividers ---------- *//* End custom CSS */