www.culliganwatertreatment.com Open in urlscan Pro
174.138.117.104  Public Scan

Submitted URL: https://culliganwatertreatment.com/
Effective URL: https://www.culliganwatertreatment.com/
Submission: On March 24 via api from US — Scanned from US

Form analysis 3 forms found in the DOM

Name: dealer-locatorGET /dealer-locator

<form data-component="flow.dealer-locator" name="dealer-locator" method="get" action="/dealer-locator" class="flex flex-nowrap">
  <input name="pc" type="text" id="dealerLocator" size="10" class="form-control border border-blue-500 rounded-l-full rounded-r-none w-auto" placeholder="Zip Code" aria-label="Zip Code" aria-describedby="Dealer Locator">
  <button type="submit" class="btn btn-azure rounded-l-none rounded-r-full whitespace-nowrap">Find a Dealer</button>
</form>

POST

<form x-bind:id="makeId('contact')" method="post" novalidate="novalidate" x-on:submit.prevent="submitForm()" class="grid grid-cols-1 md:grid-cols-2 gap-x-4 gap-y-3" id="drawer.contact">
  <!--hidden-->
  <input name="force_id" type="hidden" value="">
  <!--first_name-->
  <div x-bind:class="{'col-span-full': layout === 'inline'}">
    <label x-bind:for="makeId('first_name')" class="ml-3 mb-1 text-sm" for="drawer.first_name">First name</label>
    <input name="first_name" type="text" class="form-control rounded-full" x-bind:class="validationClass('firstName')" x-bind:id="makeId('first_name')" placeholder="First name" autocomplete="given-name" required="" x-model.debounce="firstName"
      value="" id="drawer.first_name">
    <div x-show="showValidation('firstName')" class="invalid-feedback" style="display: none;">Please enter your first name.</div>
  </div>
  <!--last_name-->
  <div x-bind:class="{'col-span-full': layout === 'inline'}">
    <label x-bind:for="makeId('last_name')" class="ml-3 mb-1 text-sm" for="drawer.last_name">Last name</label>
    <input name="last_name" type="text" class="form-control rounded-full" x-bind:class="validationClass('lastName')" x-bind:id="makeId('last_name')" placeholder="Last name" autocomplete="family-name" required="" x-model.debounce="lastName" value=""
      id="drawer.last_name">
    <div x-show="showValidation('lastName')" class="invalid-feedback" style="display: none;">Please enter your last name.</div>
  </div>
  <!--street-->
  <div x-bind:class="{'col-span-full': layout === 'inline'}" x-show="shownFields().street">
    <label x-bind:for="makeId('street')" class="ml-3 mb-1 text-sm" for="drawer.street">Street</label>
    <input name="street" type="text" class="form-control rounded-full" x-bind:class="validationClass('street')" x-bind:id="makeId('street')" placeholder="Street" autocomplete="street-address" required="" x-model.debounce="street" value=""
      id="drawer.street">
    <div x-show="showValidation('street')" class="invalid-feedback" style="display: none;">Please enter your street.</div>
  </div>
  <!--postal_code-->
  <div x-bind:class="{'col-span-full': layout === 'inline'}">
    <label x-bind:for="makeId('postal_code')" class="ml-3 mb-1 text-sm" x-text="postalCodeName()" for="drawer.postal_code">Zip code</label>
    <input name="postal_code" type="text" class="form-control rounded-full" x-bind:class="validationClass('postalCode')" x-bind:id="makeId('postal_code')" x-bind:placeholder="postalCodeName()" autocomplete="postal-code" required="" maxlength="7"
      x-model="postalCode" value="" x-on:change="searchDealers()" id="drawer.postal_code" placeholder="Zip code">
    <div x-show="showValidation('postalCode')" class="invalid-feedback" style="display: none;">Please enter your <span x-text="postalCodeName().toLowerCase()">zip code</span>.</div>
  </div>
  <template x-if="selectedDealer">
    <div class="col-span-full bg-gray-200 rounded-lg p-3">
      <i class="fa-solid fa-map-marker"></i> Your dealer is <span x-text="selectedDealer.name"></span>.
    </div>
  </template>
  <div class="col-span-full bg-gray-200 rounded-xl p-3" x-show="showBottledWaterInterest()" style="display: none;">
    <div class="mb-2">Are you interested in bottled water?</div>
    <div>
      <button type="button" class="btn btn-blue rounded-full" x-on:click="updateBottledWaterInterest('yes')">Yes <svg class="svg-inline--fa fa-check" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check" role="img"
          xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg="">
          <path fill="currentColor" d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path>
        </svg><!-- <i class="fa-solid fa-check"></i> --></button>
      <button type="button" class="btn btn-blue rounded-full" x-on:click="updateBottledWaterInterest('no')">No <svg class="svg-inline--fa fa-times" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="times" role="img"
          xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg="">
          <path fill="currentColor"
            d="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z">
          </path>
        </svg><!-- <i class="fa-solid fa-times"></i> --></button>
    </div>
  </div>
  <div class="col-span-full grid grid-cols-1 gap-2" x-show="showDealerSelect()" style="display: none;">
    <template x-for="dealer in filteredDealers()" x-bind:key="dealer.id">
      <div class="bg-gray-100 hover:bg-gray-200 rounded-xl p-3" x-bind:class="{ 'border-2 shadow' : dealer.preferred_dealer}">
        <div class="flex items-center">
          <div class="grow">
            <h4 class="text-blue-500 text-lg" x-text="dealer.name"></h4>
            <div x-text="dealer.city + ', ' + dealer.state"></div>
            <div class="mt-1" x-show="dealer.preferred_dealer">
              <span class="text-xs px-2 py-1 rounded-full bg-blue-500 text-blue-800">Suggested Dealer</span>
            </div>
          </div>
          <div>
            <button type="button" class="btn btn-blue rounded-full text-sm px-2 py-1 whitespace-nowrap" x-on:click="selectDealer(dealer)">Select <i class="fa-solid fa-plus-circle"></i></button>
          </div>
        </div>
      </div>
    </template>
  </div>
  <div class="col-span-full bg-gray-200 text-red-500 p-2" x-show="showNoDealers()" style="display: none;">
    <svg class="svg-inline--fa fa-exclamation-circle" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="exclamation-circle" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg="">
      <path fill="currentColor" d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"></path>
    </svg><!-- <i class="fa-solid fa-exclamation-circle"></i> --> No dealers found for this <span x-text="postalCodeName().toLowerCase()">zip code</span>.
  </div>
  <!--phone-->
  <div x-bind:class="{'col-span-full': layout === 'inline'}" x-show="shownFields().phone">
    <label x-bind:for="makeId('phone')" class="ml-3 mb-1 text-sm" for="drawer.phone">Telephone</label>
    <input name="phone" type="text" class="form-control rounded-full" x-bind:class="validationClass('phone')" x-bind:id="makeId('phone')" x-mask="999-999-9999" placeholder="Telephone" autocomplete="tel-national" required="" x-model.debounce="phone"
      value="" id="drawer.phone">
    <div x-show="showValidation('phone')" class="invalid-feedback" style="display: none;">Please enter your phone number.</div>
  </div>
  <!--email-->
  <div x-bind:class="{'col-span-full': layout === 'inline'}" x-show="shownFields().email">
    <label x-bind:for="makeId('email')" class="ml-3 mb-1 text-sm" for="drawer.email">Email</label>
    <input name="email" type="email" class="form-control rounded-full" x-bind:class="validationClass('email')" x-bind:id="makeId('email')" placeholder="Email" autocomplete="email" required="" x-model.debounce="email" value="" id="drawer.email">
    <div x-show="showValidation('email')" class="invalid-feedback" style="display: none;">Please enter your email.</div>
  </div>
  <!--product_interest-->
  <div class="col-span-full" x-show="shownFields().productInterest">
    <label x-bind:for="makeId('product_interest')" class="ml-3 mb-1 text-sm" for="drawer.product_interest">Product interest</label>
    <select name="product_interest" class="form-control rounded-full" x-bind:class="validationClass('productInterest')" x-bind:id="makeId('product_interest')" required="" x-model="productInterest" id="drawer.product_interest">
      <option disabled="" selected="" value="">Product interest</option>
      <option value="water_softener">Water Softening and Salt-Free Conditioner</option>
      <option value="drinking_water_system">Drinking Water System</option>
      <option value="bottled_water">Bottled Water</option>
      <option value="bottleless_coolers">Bottleless Coolers</option>
      <option value="service">Billing, Customer Service, Repair, Salt</option>
      <option value="commercial_and_industrial">Commercial / Industrial</option>
      <option value="culligan_brand">Other, Please Explain</option>
    </select>
    <div x-show="showValidation('productInterest')" class="invalid-feedback" style="display: none;">Please select your interest.</div>
  </div>
  <!--delivery_type-->
  <div class="col-span-full" x-show="shownFields().deliveryType" style="display: none;">
    <div class="items-center space-x-2" x-bind:class="validationClass('deliveryType')">
      <span class="text-sm&quot;">Delivery Type</span>
      <template x-for="value in deliveryTypes">
        <button type="button" class="btn rounded-full" x-bind:class="isDeliveryTypeSelected(value) ? 'btn-indigo' : 'btn-white'" x-on:click="selectDeliveryType(value)">
          <span x-text="value" class="capitalize"></span>
          <span x-show="isDeliveryTypeSelected(value)"><i class="fa-solid fa-check-square fa-fw"></i></span>
          <span x-show="!isDeliveryTypeSelected(value)"><i class="fa-solid fa-square fa-fw"></i></span>
        </button>
      </template><button type="button" class="btn rounded-full btn-white" x-bind:class="isDeliveryTypeSelected(value) ? 'btn-indigo' : 'btn-white'" x-on:click="selectDeliveryType(value)">
        <span x-text="value" class="capitalize">water</span>
        <span x-show="isDeliveryTypeSelected(value)" style="display: none;"><svg class="svg-inline--fa fa-check-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check-square" role="img"
            xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg="">
            <path fill="currentColor"
              d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z">
            </path>
          </svg><!-- <i class="fa-solid fa-check-square fa-fw"></i> --></span>
        <span x-show="!isDeliveryTypeSelected(value)"><svg class="svg-inline--fa fa-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="square" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"
            data-fa-i2svg="">
            <path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"></path>
          </svg><!-- <i class="fa-solid fa-square fa-fw"></i> --></span>
      </button><button type="button" class="btn rounded-full btn-white" x-bind:class="isDeliveryTypeSelected(value) ? 'btn-indigo' : 'btn-white'" x-on:click="selectDeliveryType(value)">
        <span x-text="value" class="capitalize">salt</span>
        <span x-show="isDeliveryTypeSelected(value)" style="display: none;"><svg class="svg-inline--fa fa-check-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check-square" role="img"
            xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg="">
            <path fill="currentColor"
              d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z">
            </path>
          </svg><!-- <i class="fa-solid fa-check-square fa-fw"></i> --></span>
        <span x-show="!isDeliveryTypeSelected(value)"><svg class="svg-inline--fa fa-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="square" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"
            data-fa-i2svg="">
            <path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"></path>
          </svg><!-- <i class="fa-solid fa-square fa-fw"></i> --></span>
      </button>
    </div>
    <div x-show="showValidation('deliveryType')" class="invalid-feedback" style="display: none;">Select a valid delivery type.</div>
  </div>
  <!--free_water_test-->
  <div class="col-span-full" x-show="shownFields().freeWaterTest" style="display: none;">
    <label x-bind:for="makeId('free_water_test_yes')" class="ml-3 mb-1 text-sm" for="drawer.free_water_test_yes">Free water test</label>
    <div class="px-1 py-2" x-bind:class="validationClass('freeWaterTest')">
      <input name="free_water_test" type="radio" x-bind:id="makeId('free_water_test_yes')" value="yes" x-model.debounce="freeWaterTest" id="drawer.free_water_test_yes">
      <label x-bind:for="makeId('free_water_test_yes')" for="drawer.free_water_test_yes">Yes</label>
      <input name="free_water_test" type="radio" class="ml-2" x-bind:id="makeId('free_water_test_no')" value="no" x-model.debounce="freeWaterTest" id="drawer.free_water_test_no">
      <label x-bind:for="makeId('free_water_test_no')" for="drawer.free_water_test_no">No</label>
    </div>
    <div x-show="showValidation('freeWaterTest')" class="invalid-feedback" style="display: none;">Please select if you would like a free water test.</div>
  </div>
  <!--appointment_request-->
  <div class="col-span-full space-y-3" x-show="shownFields().appointmentRequest">
    <div>
      <input name="appointment_request" type="checkbox" class="rounded-md" x-bind:id="makeId('appointment_request')" value="" x-model="appointmentRequest" id="drawer.appointment_request">
      <label x-bind:for="makeId('appointment_request')" for="drawer.appointment_request">Interested in an appointment?</label>
    </div>
    <div class="space-y-3" x-show="appointmentRequest" style="display: none;">
      <div>
        <div class="mb-1&quot;">Your Culligan professional will contact you to confirm your request.</div>
        <div>Your request is subject to availability, holidays and hours of operation.</div>
      </div>
      <div x-show="shownFields().preferredTime">
        <label x-bind:for="makeId('preferred_time')" class="ml-3 mb-1 text-sm" for="drawer.preferred_time">Preferred time</label>
        <select name="preferred_time" class="form-control rounded-full" x-bind:class="validationClass('preferredTime')" x-bind:id="makeId('preferred_time')" required="" x-model="preferredTime" id="drawer.preferred_time">
          <option disabled="" selected="" value="">Select a time</option>
          <template x-for="time in preferredTimes">
            <option x-bind:value="time" x-text="time"></option>
          </template>
          <option x-bind:value="time" x-text="time" value="Morning">Morning</option>
          <option x-bind:value="time" x-text="time" value="Afternoon">Afternoon</option>
        </select>
        <div x-show="showValidation('preferredTime')" class="invalid-feedback" style="display: none;">Please select your preferred time.</div>
      </div>
      <div x-show="shownFields().preferredDate">
        <div class="ml-3 mb-1 text-sm block">Preferred date</div>
        <div class="form-control rounded-full" x-bind:class="validationClass('preferredDate')">
          <div class="flatpickr-wrapper"><input name="preferred_date" class="border-none p-0 w-11/12 focus:ring-0 flatpickr-input" placeholder="Select a date" x-ref="preferredDate" x-model="preferredDate" type="hidden"><input
              class="border-none p-0 w-11/12 focus:ring-0 " placeholder="Select a date" tabindex="0" type="text" readonly="readonly">
            <div class="flatpickr-calendar animate static" tabindex="-1">
              <div class="flatpickr-months"><span class="flatpickr-prev-month flatpickr-disabled"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 17 17">
                    <g></g>
                    <path d="M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z"></path>
                  </svg></span>
                <div class="flatpickr-month">
                  <div class="flatpickr-current-month"><span class="cur-month">March </span>
                    <div class="numInputWrapper"><input class="numInput cur-year" type="number" tabindex="-1" aria-label="Year" min="2024" max="2024" disabled=""><span class="arrowUp"></span><span class="arrowDown"></span></div>
                  </div>
                </div><span class="flatpickr-next-month"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 17 17">
                    <g></g>
                    <path d="M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z"></path>
                  </svg></span>
              </div>
              <div class="flatpickr-innerContainer">
                <div class="flatpickr-rContainer">
                  <div class="flatpickr-weekdays">
                    <div class="flatpickr-weekdaycontainer">
                      <span class="flatpickr-weekday"> Sun</span><span class="flatpickr-weekday">Mon</span><span class="flatpickr-weekday">Tue</span><span class="flatpickr-weekday">Wed</span><span class="flatpickr-weekday">Thu</span><span
                        class="flatpickr-weekday">Fri</span><span class="flatpickr-weekday">Sat </span>
                    </div>
                  </div>
                  <div class="flatpickr-days" tabindex="-1">
                    <div class="dayContainer"><span class="flatpickr-day prevMonthDay flatpickr-disabled" aria-label="February 25, 2024">25</span><span class="flatpickr-day prevMonthDay flatpickr-disabled"
                        aria-label="February 26, 2024">26</span><span class="flatpickr-day prevMonthDay flatpickr-disabled" aria-label="February 27, 2024">27</span><span class="flatpickr-day prevMonthDay flatpickr-disabled"
                        aria-label="February 28, 2024">28</span><span class="flatpickr-day prevMonthDay flatpickr-disabled" aria-label="February 29, 2024">29</span><span class="flatpickr-day flatpickr-disabled"
                        aria-label="March 1, 2024">1</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 2, 2024">2</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 3, 2024">3</span><span
                        class="flatpickr-day flatpickr-disabled" aria-label="March 4, 2024">4</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 5, 2024">5</span><span class="flatpickr-day flatpickr-disabled"
                        aria-label="March 6, 2024">6</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 7, 2024">7</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 8, 2024">8</span><span
                        class="flatpickr-day flatpickr-disabled" aria-label="March 9, 2024">9</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 10, 2024">10</span><span class="flatpickr-day flatpickr-disabled"
                        aria-label="March 11, 2024">11</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 12, 2024">12</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 13, 2024">13</span><span
                        class="flatpickr-day flatpickr-disabled" aria-label="March 14, 2024">14</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 15, 2024">15</span><span class="flatpickr-day flatpickr-disabled"
                        aria-label="March 16, 2024">16</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 17, 2024">17</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 18, 2024">18</span><span
                        class="flatpickr-day flatpickr-disabled" aria-label="March 19, 2024">19</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 20, 2024">20</span><span class="flatpickr-day flatpickr-disabled"
                        aria-label="March 21, 2024">21</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 22, 2024">22</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 23, 2024">23</span><span
                        class="flatpickr-day today flatpickr-disabled" aria-label="March 24, 2024" aria-current="date">24</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 25, 2024">25</span><span class="flatpickr-day"
                        aria-label="March 26, 2024" tabindex="-1">26</span><span class="flatpickr-day" aria-label="March 27, 2024" tabindex="-1">27</span><span class="flatpickr-day" aria-label="March 28, 2024" tabindex="-1">28</span><span
                        class="flatpickr-day" aria-label="March 29, 2024" tabindex="-1">29</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 30, 2024">30</span><span class="flatpickr-day flatpickr-disabled"
                        aria-label="March 31, 2024">31</span><span class="flatpickr-day nextMonthDay" aria-label="April 1, 2024" tabindex="-1">1</span><span class="flatpickr-day nextMonthDay" aria-label="April 2, 2024" tabindex="-1">2</span><span
                        class="flatpickr-day nextMonthDay" aria-label="April 3, 2024" tabindex="-1">3</span><span class="flatpickr-day nextMonthDay" aria-label="April 4, 2024" tabindex="-1">4</span><span class="flatpickr-day nextMonthDay"
                        aria-label="April 5, 2024" tabindex="-1">5</span><span class="flatpickr-day nextMonthDay flatpickr-disabled" aria-label="April 6, 2024">6</span></div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
        <div x-show="showValidation('preferredDate')" class="invalid-feedback" style="display: none;">Please select your preferred date.</div>
      </div>
    </div>
  </div>
  <!--message-->
  <div class="col-span-full" x-show="shownFields().message">
    <label x-bind:for="makeId('message')" class="ml-3 mb-1 text-sm" for="drawer.message">Additional information</label>
    <textarea name="message" rows="5" class="form-control rounded-lg" x-bind:class="validationClass('message')" x-bind:id="makeId('message')" required="" x-model.debounce="message" placeholder="Add a message" id="drawer.message"></textarea>
    <div x-show="showValidation('message')" class="invalid-feedback" style="display: none;">Add a message</div>
  </div>
  <!--nurture-->
  <div class="col-span-full" x-show="showNurture()" style="display: none;">
    <div>
      <input name="nurture" type="checkbox" x-bind:id="makeId('nurture')" x-model.debounce="nurture" id="drawer.nurture">
      <label x-bind:for="makeId('nurture')" class="ml-3 mb-1 text-sm" for="drawer.nurture">Receive news and announcements</label>
    </div>
    <div class="text-xs">*By checking this box, I give consent to Culligan to send me newsletters, special offers, and news about the water in my area. You may unsubscribe at any time.</div>
  </div>
  <!--submit-->
  <div class="col-span-full">
    <button type="submit" x-bind:id="makeId('submit')" class="btn btn-white-blue rounded-full" x-bind:class="{'opacity-60' : submitStatus === 'in progress'}" id="drawer.submit">Submit <span x-show="hasLeadInSession"
        style="display: none;">Again</span>
      <span x-show="submitStatus !== 'in progress'"><svg class="svg-inline--fa fa-arrow-right ml-1" aria-hidden="true" focusable="false" data-prefix="fasr" data-icon="arrow-right" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"
          data-fa-i2svg="">
          <path fill="currentColor" d="M429.8 273l17-17-17-17L276.2 85.4l-17-17-33.9 33.9 17 17L354.9 232 24 232 0 232l0 48 24 0 330.8 0L242.2 392.6l-17 17 33.9 33.9 17-17L429.8 273z"></path>
        </svg><!-- <i class="fa-sharp fa-regular fa-arrow-right ml-1"></i> --></span>
      <span x-show="submitStatus === 'in progress'" style="display: none;"><svg class="svg-inline--fa fa-spinner fa-fw fa-spin" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="spinner" role="img" xmlns="http://www.w3.org/2000/svg"
          viewBox="0 0 512 512" data-fa-i2svg="">
          <path fill="currentColor"
            d="M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z">
          </path>
        </svg><!-- <i class="fa-solid fa-spinner fa-fw fa-spin"></i> --></span>
    </button>
  </div>
</form>

POST

<form x-bind:id="makeId('contact')" method="post" novalidate="novalidate" x-on:submit.prevent="submitForm()" class="grid grid-cols-1 md:grid-cols-2 gap-x-4 gap-y-3" id="modal.contact">
  <!--hidden-->
  <input name="force_id" type="hidden" value="">
  <!--first_name-->
  <div x-bind:class="{'col-span-full': layout === 'inline'}">
    <label x-bind:for="makeId('first_name')" class="ml-3 mb-1 text-sm" for="modal.first_name">First name</label>
    <input name="first_name" type="text" class="form-control rounded-full" x-bind:class="validationClass('firstName')" x-bind:id="makeId('first_name')" placeholder="First name" autocomplete="given-name" required="" x-model.debounce="firstName"
      value="" id="modal.first_name">
    <div x-show="showValidation('firstName')" class="invalid-feedback" style="display: none;">Please enter your first name.</div>
  </div>
  <!--last_name-->
  <div x-bind:class="{'col-span-full': layout === 'inline'}">
    <label x-bind:for="makeId('last_name')" class="ml-3 mb-1 text-sm" for="modal.last_name">Last name</label>
    <input name="last_name" type="text" class="form-control rounded-full" x-bind:class="validationClass('lastName')" x-bind:id="makeId('last_name')" placeholder="Last name" autocomplete="family-name" required="" x-model.debounce="lastName" value=""
      id="modal.last_name">
    <div x-show="showValidation('lastName')" class="invalid-feedback" style="display: none;">Please enter your last name.</div>
  </div>
  <!--street-->
  <div x-bind:class="{'col-span-full': layout === 'inline'}" x-show="shownFields().street">
    <label x-bind:for="makeId('street')" class="ml-3 mb-1 text-sm" for="modal.street">Street</label>
    <input name="street" type="text" class="form-control rounded-full" x-bind:class="validationClass('street')" x-bind:id="makeId('street')" placeholder="Street" autocomplete="street-address" required="" x-model.debounce="street" value=""
      id="modal.street">
    <div x-show="showValidation('street')" class="invalid-feedback" style="display: none;">Please enter your street.</div>
  </div>
  <!--postal_code-->
  <div x-bind:class="{'col-span-full': layout === 'inline'}">
    <label x-bind:for="makeId('postal_code')" class="ml-3 mb-1 text-sm" x-text="postalCodeName()" for="modal.postal_code">Zip code</label>
    <input name="postal_code" type="text" class="form-control rounded-full" x-bind:class="validationClass('postalCode')" x-bind:id="makeId('postal_code')" x-bind:placeholder="postalCodeName()" autocomplete="postal-code" required="" maxlength="7"
      x-model="postalCode" value="" x-on:change="searchDealers()" id="modal.postal_code" placeholder="Zip code">
    <div x-show="showValidation('postalCode')" class="invalid-feedback" style="display: none;">Please enter your <span x-text="postalCodeName().toLowerCase()">zip code</span>.</div>
  </div>
  <template x-if="selectedDealer">
    <div class="col-span-full bg-gray-200 rounded-lg p-3">
      <i class="fa-solid fa-map-marker"></i> Your dealer is <span x-text="selectedDealer.name"></span>.
    </div>
  </template>
  <div class="col-span-full bg-gray-200 rounded-xl p-3" x-show="showBottledWaterInterest()" style="display: none;">
    <div class="mb-2">Are you interested in bottled water?</div>
    <div>
      <button type="button" class="btn btn-blue rounded-full" x-on:click="updateBottledWaterInterest('yes')">Yes <svg class="svg-inline--fa fa-check" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check" role="img"
          xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg="">
          <path fill="currentColor" d="M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"></path>
        </svg><!-- <i class="fa-solid fa-check"></i> --></button>
      <button type="button" class="btn btn-blue rounded-full" x-on:click="updateBottledWaterInterest('no')">No <svg class="svg-inline--fa fa-times" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="times" role="img"
          xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512" data-fa-i2svg="">
          <path fill="currentColor"
            d="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z">
          </path>
        </svg><!-- <i class="fa-solid fa-times"></i> --></button>
    </div>
  </div>
  <div class="col-span-full grid grid-cols-1 gap-2" x-show="showDealerSelect()" style="display: none;">
    <template x-for="dealer in filteredDealers()" x-bind:key="dealer.id">
      <div class="bg-gray-100 hover:bg-gray-200 rounded-xl p-3" x-bind:class="{ 'border-2 shadow' : dealer.preferred_dealer}">
        <div class="flex items-center">
          <div class="grow">
            <h4 class="text-blue-500 text-lg" x-text="dealer.name"></h4>
            <div x-text="dealer.city + ', ' + dealer.state"></div>
            <div class="mt-1" x-show="dealer.preferred_dealer">
              <span class="text-xs px-2 py-1 rounded-full bg-blue-500 text-blue-800">Suggested Dealer</span>
            </div>
          </div>
          <div>
            <button type="button" class="btn btn-blue rounded-full text-sm px-2 py-1 whitespace-nowrap" x-on:click="selectDealer(dealer)">Select <i class="fa-solid fa-plus-circle"></i></button>
          </div>
        </div>
      </div>
    </template>
  </div>
  <div class="col-span-full bg-gray-200 text-red-500 p-2" x-show="showNoDealers()" style="display: none;">
    <svg class="svg-inline--fa fa-exclamation-circle" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="exclamation-circle" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" data-fa-i2svg="">
      <path fill="currentColor" d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"></path>
    </svg><!-- <i class="fa-solid fa-exclamation-circle"></i> --> No dealers found for this <span x-text="postalCodeName().toLowerCase()">zip code</span>.
  </div>
  <!--phone-->
  <div x-bind:class="{'col-span-full': layout === 'inline'}" x-show="shownFields().phone">
    <label x-bind:for="makeId('phone')" class="ml-3 mb-1 text-sm" for="modal.phone">Telephone</label>
    <input name="phone" type="text" class="form-control rounded-full" x-bind:class="validationClass('phone')" x-bind:id="makeId('phone')" x-mask="999-999-9999" placeholder="Telephone" autocomplete="tel-national" required="" x-model.debounce="phone"
      value="" id="modal.phone">
    <div x-show="showValidation('phone')" class="invalid-feedback" style="display: none;">Please enter your phone number.</div>
  </div>
  <!--email-->
  <div x-bind:class="{'col-span-full': layout === 'inline'}" x-show="shownFields().email">
    <label x-bind:for="makeId('email')" class="ml-3 mb-1 text-sm" for="modal.email">Email</label>
    <input name="email" type="email" class="form-control rounded-full" x-bind:class="validationClass('email')" x-bind:id="makeId('email')" placeholder="Email" autocomplete="email" required="" x-model.debounce="email" value="" id="modal.email">
    <div x-show="showValidation('email')" class="invalid-feedback" style="display: none;">Please enter your email.</div>
  </div>
  <!--product_interest-->
  <div class="col-span-full" x-show="shownFields().productInterest">
    <label x-bind:for="makeId('product_interest')" class="ml-3 mb-1 text-sm" for="modal.product_interest">Product interest</label>
    <select name="product_interest" class="form-control rounded-full" x-bind:class="validationClass('productInterest')" x-bind:id="makeId('product_interest')" required="" x-model="productInterest" id="modal.product_interest">
      <option disabled="" selected="" value="">Product interest</option>
      <option value="water_softener">Water Softening and Salt-Free Conditioner</option>
      <option value="drinking_water_system">Drinking Water System</option>
      <option value="bottled_water">Bottled Water</option>
      <option value="bottleless_coolers">Bottleless Coolers</option>
      <option value="service">Billing, Customer Service, Repair, Salt</option>
      <option value="commercial_and_industrial">Commercial / Industrial</option>
      <option value="culligan_brand">Other, Please Explain</option>
    </select>
    <div x-show="showValidation('productInterest')" class="invalid-feedback" style="display: none;">Please select your interest.</div>
  </div>
  <!--delivery_type-->
  <div class="col-span-full" x-show="shownFields().deliveryType" style="display: none;">
    <div class="items-center space-x-2" x-bind:class="validationClass('deliveryType')">
      <span class="text-sm&quot;">Delivery Type</span>
      <template x-for="value in deliveryTypes">
        <button type="button" class="btn rounded-full" x-bind:class="isDeliveryTypeSelected(value) ? 'btn-indigo' : 'btn-white'" x-on:click="selectDeliveryType(value)">
          <span x-text="value" class="capitalize"></span>
          <span x-show="isDeliveryTypeSelected(value)"><i class="fa-solid fa-check-square fa-fw"></i></span>
          <span x-show="!isDeliveryTypeSelected(value)"><i class="fa-solid fa-square fa-fw"></i></span>
        </button>
      </template><button type="button" class="btn rounded-full btn-white" x-bind:class="isDeliveryTypeSelected(value) ? 'btn-indigo' : 'btn-white'" x-on:click="selectDeliveryType(value)">
        <span x-text="value" class="capitalize">water</span>
        <span x-show="isDeliveryTypeSelected(value)" style="display: none;"><svg class="svg-inline--fa fa-check-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check-square" role="img"
            xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg="">
            <path fill="currentColor"
              d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z">
            </path>
          </svg><!-- <i class="fa-solid fa-check-square fa-fw"></i> --></span>
        <span x-show="!isDeliveryTypeSelected(value)"><svg class="svg-inline--fa fa-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="square" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"
            data-fa-i2svg="">
            <path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"></path>
          </svg><!-- <i class="fa-solid fa-square fa-fw"></i> --></span>
      </button><button type="button" class="btn rounded-full btn-white" x-bind:class="isDeliveryTypeSelected(value) ? 'btn-indigo' : 'btn-white'" x-on:click="selectDeliveryType(value)">
        <span x-text="value" class="capitalize">salt</span>
        <span x-show="isDeliveryTypeSelected(value)" style="display: none;"><svg class="svg-inline--fa fa-check-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="check-square" role="img"
            xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512" data-fa-i2svg="">
            <path fill="currentColor"
              d="M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z">
            </path>
          </svg><!-- <i class="fa-solid fa-check-square fa-fw"></i> --></span>
        <span x-show="!isDeliveryTypeSelected(value)"><svg class="svg-inline--fa fa-square fa-fw" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="square" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"
            data-fa-i2svg="">
            <path fill="currentColor" d="M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z"></path>
          </svg><!-- <i class="fa-solid fa-square fa-fw"></i> --></span>
      </button>
    </div>
    <div x-show="showValidation('deliveryType')" class="invalid-feedback" style="display: none;">Select a valid delivery type.</div>
  </div>
  <!--free_water_test-->
  <div class="col-span-full" x-show="shownFields().freeWaterTest" style="display: none;">
    <label x-bind:for="makeId('free_water_test_yes')" class="ml-3 mb-1 text-sm" for="modal.free_water_test_yes">Free water test</label>
    <div class="px-1 py-2" x-bind:class="validationClass('freeWaterTest')">
      <input name="free_water_test" type="radio" x-bind:id="makeId('free_water_test_yes')" value="yes" x-model.debounce="freeWaterTest" id="modal.free_water_test_yes">
      <label x-bind:for="makeId('free_water_test_yes')" for="modal.free_water_test_yes">Yes</label>
      <input name="free_water_test" type="radio" class="ml-2" x-bind:id="makeId('free_water_test_no')" value="no" x-model.debounce="freeWaterTest" id="modal.free_water_test_no">
      <label x-bind:for="makeId('free_water_test_no')" for="modal.free_water_test_no">No</label>
    </div>
    <div x-show="showValidation('freeWaterTest')" class="invalid-feedback" style="display: none;">Please select if you would like a free water test.</div>
  </div>
  <!--appointment_request-->
  <div class="col-span-full space-y-3" x-show="shownFields().appointmentRequest">
    <div>
      <input name="appointment_request" type="checkbox" class="rounded-md" x-bind:id="makeId('appointment_request')" value="" x-model="appointmentRequest" id="modal.appointment_request">
      <label x-bind:for="makeId('appointment_request')" for="modal.appointment_request">Interested in an appointment?</label>
    </div>
    <div class="space-y-3" x-show="appointmentRequest" style="display: none;">
      <div>
        <div class="mb-1&quot;">Your Culligan professional will contact you to confirm your request.</div>
        <div>Your request is subject to availability, holidays and hours of operation.</div>
      </div>
      <div x-show="shownFields().preferredTime">
        <label x-bind:for="makeId('preferred_time')" class="ml-3 mb-1 text-sm" for="modal.preferred_time">Preferred time</label>
        <select name="preferred_time" class="form-control rounded-full" x-bind:class="validationClass('preferredTime')" x-bind:id="makeId('preferred_time')" required="" x-model="preferredTime" id="modal.preferred_time">
          <option disabled="" selected="" value="">Select a time</option>
          <template x-for="time in preferredTimes">
            <option x-bind:value="time" x-text="time"></option>
          </template>
          <option x-bind:value="time" x-text="time" value="Morning">Morning</option>
          <option x-bind:value="time" x-text="time" value="Afternoon">Afternoon</option>
        </select>
        <div x-show="showValidation('preferredTime')" class="invalid-feedback" style="display: none;">Please select your preferred time.</div>
      </div>
      <div x-show="shownFields().preferredDate">
        <div class="ml-3 mb-1 text-sm block">Preferred date</div>
        <div class="form-control rounded-full" x-bind:class="validationClass('preferredDate')">
          <div class="flatpickr-wrapper"><input name="preferred_date" class="border-none p-0 w-11/12 focus:ring-0 flatpickr-input" placeholder="Select a date" x-ref="preferredDate" x-model="preferredDate" type="hidden"><input
              class="border-none p-0 w-11/12 focus:ring-0 " placeholder="Select a date" tabindex="0" type="text" readonly="readonly">
            <div class="flatpickr-calendar animate static" tabindex="-1">
              <div class="flatpickr-months"><span class="flatpickr-prev-month flatpickr-disabled"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 17 17">
                    <g></g>
                    <path d="M5.207 8.471l7.146 7.147-0.707 0.707-7.853-7.854 7.854-7.853 0.707 0.707-7.147 7.146z"></path>
                  </svg></span>
                <div class="flatpickr-month">
                  <div class="flatpickr-current-month"><span class="cur-month">March </span>
                    <div class="numInputWrapper"><input class="numInput cur-year" type="number" tabindex="-1" aria-label="Year" min="2024" max="2024" disabled=""><span class="arrowUp"></span><span class="arrowDown"></span></div>
                  </div>
                </div><span class="flatpickr-next-month"><svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 17 17">
                    <g></g>
                    <path d="M13.207 8.472l-7.854 7.854-0.707-0.707 7.146-7.146-7.146-7.148 0.707-0.707 7.854 7.854z"></path>
                  </svg></span>
              </div>
              <div class="flatpickr-innerContainer">
                <div class="flatpickr-rContainer">
                  <div class="flatpickr-weekdays">
                    <div class="flatpickr-weekdaycontainer">
                      <span class="flatpickr-weekday"> Sun</span><span class="flatpickr-weekday">Mon</span><span class="flatpickr-weekday">Tue</span><span class="flatpickr-weekday">Wed</span><span class="flatpickr-weekday">Thu</span><span
                        class="flatpickr-weekday">Fri</span><span class="flatpickr-weekday">Sat </span>
                    </div>
                  </div>
                  <div class="flatpickr-days" tabindex="-1">
                    <div class="dayContainer"><span class="flatpickr-day prevMonthDay flatpickr-disabled" aria-label="February 25, 2024">25</span><span class="flatpickr-day prevMonthDay flatpickr-disabled"
                        aria-label="February 26, 2024">26</span><span class="flatpickr-day prevMonthDay flatpickr-disabled" aria-label="February 27, 2024">27</span><span class="flatpickr-day prevMonthDay flatpickr-disabled"
                        aria-label="February 28, 2024">28</span><span class="flatpickr-day prevMonthDay flatpickr-disabled" aria-label="February 29, 2024">29</span><span class="flatpickr-day flatpickr-disabled"
                        aria-label="March 1, 2024">1</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 2, 2024">2</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 3, 2024">3</span><span
                        class="flatpickr-day flatpickr-disabled" aria-label="March 4, 2024">4</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 5, 2024">5</span><span class="flatpickr-day flatpickr-disabled"
                        aria-label="March 6, 2024">6</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 7, 2024">7</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 8, 2024">8</span><span
                        class="flatpickr-day flatpickr-disabled" aria-label="March 9, 2024">9</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 10, 2024">10</span><span class="flatpickr-day flatpickr-disabled"
                        aria-label="March 11, 2024">11</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 12, 2024">12</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 13, 2024">13</span><span
                        class="flatpickr-day flatpickr-disabled" aria-label="March 14, 2024">14</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 15, 2024">15</span><span class="flatpickr-day flatpickr-disabled"
                        aria-label="March 16, 2024">16</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 17, 2024">17</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 18, 2024">18</span><span
                        class="flatpickr-day flatpickr-disabled" aria-label="March 19, 2024">19</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 20, 2024">20</span><span class="flatpickr-day flatpickr-disabled"
                        aria-label="March 21, 2024">21</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 22, 2024">22</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 23, 2024">23</span><span
                        class="flatpickr-day today flatpickr-disabled" aria-label="March 24, 2024" aria-current="date">24</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 25, 2024">25</span><span class="flatpickr-day"
                        aria-label="March 26, 2024" tabindex="-1">26</span><span class="flatpickr-day" aria-label="March 27, 2024" tabindex="-1">27</span><span class="flatpickr-day" aria-label="March 28, 2024" tabindex="-1">28</span><span
                        class="flatpickr-day" aria-label="March 29, 2024" tabindex="-1">29</span><span class="flatpickr-day flatpickr-disabled" aria-label="March 30, 2024">30</span><span class="flatpickr-day flatpickr-disabled"
                        aria-label="March 31, 2024">31</span><span class="flatpickr-day nextMonthDay" aria-label="April 1, 2024" tabindex="-1">1</span><span class="flatpickr-day nextMonthDay" aria-label="April 2, 2024" tabindex="-1">2</span><span
                        class="flatpickr-day nextMonthDay" aria-label="April 3, 2024" tabindex="-1">3</span><span class="flatpickr-day nextMonthDay" aria-label="April 4, 2024" tabindex="-1">4</span><span class="flatpickr-day nextMonthDay"
                        aria-label="April 5, 2024" tabindex="-1">5</span><span class="flatpickr-day nextMonthDay flatpickr-disabled" aria-label="April 6, 2024">6</span></div>
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
        <div x-show="showValidation('preferredDate')" class="invalid-feedback" style="display: none;">Please select your preferred date.</div>
      </div>
    </div>
  </div>
  <!--message-->
  <div class="col-span-full" x-show="shownFields().message">
    <label x-bind:for="makeId('message')" class="ml-3 mb-1 text-sm" for="modal.message">Additional information</label>
    <textarea name="message" rows="5" class="form-control rounded-lg" x-bind:class="validationClass('message')" x-bind:id="makeId('message')" required="" x-model.debounce="message" placeholder="Add a message" id="modal.message"></textarea>
    <div x-show="showValidation('message')" class="invalid-feedback" style="display: none;">Add a message</div>
  </div>
  <!--nurture-->
  <div class="col-span-full" x-show="showNurture()" style="display: none;">
    <div>
      <input name="nurture" type="checkbox" x-bind:id="makeId('nurture')" x-model.debounce="nurture" id="modal.nurture">
      <label x-bind:for="makeId('nurture')" class="ml-3 mb-1 text-sm" for="modal.nurture">Receive news and announcements</label>
    </div>
    <div class="text-xs">*By checking this box, I give consent to Culligan to send me newsletters, special offers, and news about the water in my area. You may unsubscribe at any time.</div>
  </div>
  <!--submit-->
  <div class="col-span-full">
    <button type="submit" x-bind:id="makeId('submit')" class="btn btn-white-blue rounded-full" x-bind:class="{'opacity-60' : submitStatus === 'in progress'}" id="modal.submit">Submit <span x-show="hasLeadInSession" style="display: none;">Again</span>
      <span x-show="submitStatus !== 'in progress'"><svg class="svg-inline--fa fa-arrow-right ml-1" aria-hidden="true" focusable="false" data-prefix="fasr" data-icon="arrow-right" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"
          data-fa-i2svg="">
          <path fill="currentColor" d="M429.8 273l17-17-17-17L276.2 85.4l-17-17-33.9 33.9 17 17L354.9 232 24 232 0 232l0 48 24 0 330.8 0L242.2 392.6l-17 17 33.9 33.9 17-17L429.8 273z"></path>
        </svg><!-- <i class="fa-sharp fa-regular fa-arrow-right ml-1"></i> --></span>
      <span x-show="submitStatus === 'in progress'" style="display: none;"><svg class="svg-inline--fa fa-spinner fa-fw fa-spin" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="spinner" role="img" xmlns="http://www.w3.org/2000/svg"
          viewBox="0 0 512 512" data-fa-i2svg="">
          <path fill="currentColor"
            d="M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z">
          </path>
        </svg><!-- <i class="fa-solid fa-spinner fa-fw fa-spin"></i> --></span>
    </button>
  </div>
</form>

Text Content

Give your people Culligan water for $49/month and receive FREE installation.
Get $200 OFF when you trade in and trade up to a new Culligan Aquasential Smart
HE Water Softener!
716-267-6210
Get Pricing
Residential | Office | Commercial
Current Customers
View or Pay Bill Service and Repair Softener Bypass Videos Manuals & Timers
Contact
Special Offers 716-267-6210
Softeners & Filters
Water Softeners Whole Home Water Filters
Drinking Water & Coolers
RO Drinking Water Systems Bottleless Coolers Bottled Water & Coolers
Services
Water Testing Water & Salt Delivery Service & Repairs Well Water Testing Order
Online Coupons & Specials
About
Culligan of Buffalo & Western New York Careers
Contact
Get Pricing


CULLIGAN OF BUFFALO & WESTERN NEW YORK

Your local water experts since 1936
Get Pricing Request Appointment

Water solutions you can trust
Backed by over 85 years of experience, your local Culligan water expert has a
wide range of products to address your unique water concerns.
Water Softeners
View All
Whole Home Water Filters
View All
RO Drinking Water Systems
View All
Bottleless Coolers
View All
Bottled Water & Coolers
View All

Order water online

--------------------------------------------------------------------------------

Save time and money with Culligan Bottled Water Delivery and Bottleless Water
Coolers
Buy Now

The Culligan advantage
As the leaders in water treatment for 85+ years, Culligan helps you provide your
family with better, safer water at every tap.
100% satisfaction guaranteed

--------------------------------------------------------------------------------

If you are dissatisfied for any reason, Culligan will refund your purchase
within 30 days.
600+ locations nationwide

--------------------------------------------------------------------------------

With locally-owned dealerships in communities across North America, Culligan is
your local water expert.
#1 in custom water solutions

--------------------------------------------------------------------------------

No one filters, softens and delivers more than Culligan.

Culligan of Buffalo & Western New York
When you choose Culligan for your water needs, you’re choosing an industry
leader with top-rated water treatment equipment, advanced technology and a 100%
satisfaction guarantee. Since 1936, Culligan's local water experts have been
committed to providing the best service available.
Get In Touch With Culligan of Buffalo & Western New York


WORRIED ABOUT YOUR WATER?

Get a FREE water consultation!

--------------------------------------------------------------------------------

Improving your home's water is easier and more convenient than ever with
Culligan's in-home or virtual appointments.
Schedule Your Water Test
Culligan services
You can count on Culligan service to exceed your expectations. Check out the
wide range of services provided by your local water expert below.
Free Water Test

--------------------------------------------------------------------------------

Stop wondering about what may be in your water. Your local Culligan expert can
provide a complete analysis for a wide range of contaminants.
Schedule test

Water & Salt Delivery

--------------------------------------------------------------------------------

Culligan delivery is the easiest and most convenient way to get better water in
your home.
Request delivery

Coupons & Specials

--------------------------------------------------------------------------------

Don't miss out on the limited-time deals happening in your local area.
Start saving

Service & Repair

--------------------------------------------------------------------------------

Keep your water softener and filtration systems running at peak performance.
Request service

Order Online

--------------------------------------------------------------------------------

Browse the inventory of available products and place your order in a few easy
steps.
Order now



Water quality your family can count on
Culligan's award-winning technology and service have attracted recognition from
some of the most trusted names in product testing and quality assurance.
 
 

The Culligan of Buffalo & Western New York difference
Great customer service, they worked with me on getting the correct system I
needed and where I wanted it. Kimberly came back again after install to make
sure the water was at desired levels and safe. She explained everything and was
upfront and honest about everything which I appreciate.
Mason Mastrangelo
03/13/2024

Our home had a 60-year-old water softener (was not functioning in the slightest)
and Culligan replaced our system in 90 minutes or less. Kim gave it to us
straight - about our cruddy water (she included history of the area and
everything) as well as no nonsense pricing. We were not surprised when it came
time to write the check. Chris was great. H... Read More
Emily Rangel
12/22/2023

We recently purchased a home with well water which was our first experience with
non public water. We requested an inspection with Culligan's to look at a
problem and they were able to come to our home promptly. Unfortunately we had
severe issues with water quality that needed to be resolved immediately. One day
after Culligan's inspection, their t... Read More
Jim Steinkirchner
09/24/2023

Current Customers
View or Pay Bill Service and Repair Softener Bypass Videos Manuals & Timers
Contact
Services
Water Testing Water & Salt Delivery Service & Repairs Well Water Testing Order
Online Coupons & Specials
Contact Us
Contact Us
716-267-6210
Facebook Instagram YouTube
Find a Dealer


--------------------------------------------------------------------------------

Locations in: Akron NY
Proudly serving: Akron NY | Buffalo NY | Williamsville NY | Niagara Falls NY |
Lockport NY | East Aurora NY | Albion NY | Warsaw NY | Batavia NY | Clarence NY

--------------------------------------------------------------------------------

©2024 Culligan. All Rights Reserved.
Privacy Policy | Sitemap | Accessibility
Softeners & Filters
Water Softeners Whole Home Water Filters
Drinking Water & Coolers
RO Drinking Water Systems Bottleless Coolers Bottled Water & Coolers
Services
Water Testing Water & Salt Delivery Service & Repairs Well Water Testing Order
Online Coupons & Specials
About
Culligan of Buffalo & Western New York Careers
Contact

--------------------------------------------------------------------------------

Current Customers
View or Pay Bill Service and Repair Softener Bypass Videos Manuals & Timers
Contact
Special Offers

--------------------------------------------------------------------------------


SWITCH SITES

Residential Office Commercial


GET PRICING & SPECIAL OFFERS

Call 716-267-6210 or fill out the form to get a custom water solution.
First name
Please enter your first name.
Last name
Please enter your last name.
Street
Please enter your street.
Zip code
Please enter your zip code.
Your dealer is .
Are you interested in bottled water?
Yes No
Suggested Dealer
Select
No dealers found for this zip code.
Telephone
Please enter your phone number.
Email
Please enter your email.
Product interest Product interest Water Softening and Salt-Free Conditioner
Drinking Water System Bottled Water Bottleless Coolers Billing, Customer
Service, Repair, Salt Commercial / Industrial Other, Please Explain
Please select your interest.
Delivery Type water salt
Select a valid delivery type.
Free water test
Yes No
Please select if you would like a free water test.
Interested in an appointment?
Your Culligan professional will contact you to confirm your request.
Your request is subject to availability, holidays and hours of operation.
Preferred time Select a time MorningAfternoon
Please select your preferred time.
Preferred date
March

SunMonTueWedThuFriSat
252627282912345678910111213141516171819202122232425262728293031123456
Please select your preferred date.
Additional information
Add a message
Receive news and announcements
*By checking this box, I give consent to Culligan to send me newsletters,
special offers, and news about the water in my area. You may unsubscribe at any
time.
Submit Again
Thank you for contacting us!

One of our representatives will contact you shortly.


GET PRICING & SPECIAL OFFERS


First name
Please enter your first name.
Last name
Please enter your last name.
Street
Please enter your street.
Zip code
Please enter your zip code.
Your dealer is .
Are you interested in bottled water?
Yes No
Suggested Dealer
Select
No dealers found for this zip code.
Telephone
Please enter your phone number.
Email
Please enter your email.
Product interest Product interest Water Softening and Salt-Free Conditioner
Drinking Water System Bottled Water Bottleless Coolers Billing, Customer
Service, Repair, Salt Commercial / Industrial Other, Please Explain
Please select your interest.
Delivery Type water salt
Select a valid delivery type.
Free water test
Yes No
Please select if you would like a free water test.
Interested in an appointment?
Your Culligan professional will contact you to confirm your request.
Your request is subject to availability, holidays and hours of operation.
Preferred time Select a time MorningAfternoon
Please select your preferred time.
Preferred date
March

SunMonTueWedThuFriSat
252627282912345678910111213141516171819202122232425262728293031123456
Please select your preferred date.
Additional information
Add a message
Receive news and announcements
*By checking this box, I give consent to Culligan to send me newsletters,
special offers, and news about the water in my area. You may unsubscribe at any
time.
Submit Again
Thank you for contacting us!

One of our representatives will contact you shortly.