www.lenscrafters.com Open in urlscan Pro
2a02:26f0:480:36::212:4005  Public Scan

Submitted URL: http://www.lenscrafters.com/
Effective URL: https://www.lenscrafters.com/
Submission: On June 19 via api from US — Scanned from DE

Form analysis 6 forms found in the DOM

Name: navigation-find-a-storeGET /lc-us/eye-exam

<form id="storeSearchFormHeader" action="/lc-us/eye-exam" name="navigation-find-a-store" method="get" class="ng-pristine ng-valid" novalidate="novalidate"><input type="hidden" name="storeId" value="10851" autocomplete="off"><input type="hidden"
    name="catalogId" value="11651" autocomplete="off"><input type="hidden" name="langId" value="-1" autocomplete="off"><input type="hidden" name="fromHeader" value="true" autocomplete="off"><input type="hidden" class="latLong" name="latLong" value=""
    autocomplete="off"><input type="hidden" name="page" value="0" autocomplete="off"><input type="hidden" name="apptId" value="" autocomplete="off"><input type="hidden" name="reschedule" value="" autocomplete="off"><input type="hidden"
    id="StoreLocator_ProductId_Header" name="productId" value="" autocomplete="off"><input id="requiredFieldCityStateOrZipCode" type="text" autocomplete="off" class="store-input blur" aria-label="Location entry" name="locationEntry" value=""
    maxlength="64" placeholder="Enter City / State or Zip Code"><button id="storeSearchFormHeaderBtnForm" class="store-search-submit submit-find-store button-medium-blue-fill" href="javascript:void(0);"
    onclick="javascript:utag.link({link_name:'In-Store Lookup',product_id:['']});checkRequiredFieldCityStateOrZipCode();" type="button" data-element-id="X_X_MainNav_EYE-ZipCode"> SEARCH </button></form>

Name: CatalogSearchForm

<form name="CatalogSearchForm" id="CatalogSearchForm" ng-show="searchOpen == true" class="ng-pristine ng-valid ng-hide">
  <div id="header-search" ng-class="searchInputHasGainFocus == true ? 'd-flex' : ''">
    <div class="logo-container ng-hide" ng-show="mobileMenuStatus">
      <a aria-label="LensCrafters Homepage" href="/lc-us" title="LensCrafters Homepage" data-element-id="X_X_MainNav_Logo"><svg alt="LensCrafters"><use xlink:href="#main-logo"></use></svg></a></div>
    <meta name="CommerceSearch" content="storeId_10851">
    <div id="SimpleSearchForm_SearchTerm">
      <div class="ais-SearchBox"><input class="ais-SearchBox-input" type="search" placeholder="Search products, brands or information" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" maxlength="512"
          aria-label="Search"><button class="ais-SearchBox-submit" type="submit" title="Submit the search query"><a data-element-id="MainNav_Search_ByImage"><svg class="icon"><use xlink:href="#search"></use></svg></a></button><button
          class="ais-SearchBox-reset" type="reset" title="Clear the search query" hidden=""><svg class="ais-SearchBox-resetIcon" viewBox="0 0 20 20" width="10" height="10" aria-hidden="true">
            <path d="M8.114 10L.944 2.83 0 1.885 1.886 0l.943.943L10 8.113l7.17-7.17.944-.943L20 1.886l-.943.943-7.17 7.17 7.17 7.17.943.944L18.114 20l-.943-.943-7.17-7.17-7.17 7.17-.944.943L0 18.114l.943-.943L8.113 10z"></path>
          </svg></button></div>
    </div>
    <a href="#" class="CloseHeader" ng-click="searchOpen = false; mobileMenuStatus = 0; enableScrolling(); removeHideFromNavLinkGVP()"><svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M23.7008 2.20078L22.3008 0.800781L12.0008 11.1008L1.70078 0.800781L0.300781 2.20078L10.6008 12.5008L0.300781 22.8008L1.70078 24.2008L12.0008 13.9008L22.3008 24.2008L23.7008 22.8008L13.4008 12.5008L23.7008 2.20078Z" fill="black"></path></svg></a>
  </div>
</form>

Name: navigation-find-a-storeGET /lc-us/eye-exam

<form id="storeSearchFormHome-home" action="/lc-us/eye-exam" name="navigation-find-a-store" method="get" class="ng-pristine ng-valid" novalidate="novalidate"><input type="hidden" name="storeId" value="10851" autocomplete="off"><input type="hidden"
    name="catalogId" value="22701" autocomplete="off"><input type="hidden" name="fromHeader" value="true" autocomplete="off"><input type="hidden" name="langId" value="-1" autocomplete="off"><input type="hidden" class="latLong" name="latLong" value=""
    autocomplete="off"><input type="hidden" name="page" value="0" autocomplete="off"><input type="hidden" name="apptId" value="" autocomplete="off"><input type="hidden" name="reschedule" value="" autocomplete="off"><input type="text"
    autocomplete="off" class="store-input" aria-label="Location entry" name="locationEntry" value="" maxlength="64" placeholder="Enter City / State or Zip Code" data-element-id="X_X_MainNav_EYE-ZipCode"><button
    class="store-search-submit submit-find-store" type="submit" data-element-id="X_X_1Hero_Banner1_CTA"> SCHEDULE </button></form>

Name: navigation-find-a-storeGET /lc-us/eye-exam

<form id="storeSearchFormHome-mob" action="/lc-us/eye-exam" name="navigation-find-a-store" method="get" class="ng-pristine ng-valid" novalidate="novalidate"><input type="hidden" name="storeId" value="10851" autocomplete="off"><input type="hidden"
    name="catalogId" value="22701" autocomplete="off"><input type="hidden" name="fromHeader" value="true" autocomplete="off"><input type="hidden" name="langId" value="-1" autocomplete="off"><input type="hidden" class="latLong" name="latLong" value=""
    autocomplete="off"><input type="hidden" name="page" value="0" autocomplete="off"><input type="hidden" name="apptId" value="" autocomplete="off"><input type="hidden" name="reschedule" value="" autocomplete="off"><input type="text"
    autocomplete="off" class="store-input" aria-label="Location entry" name="locationEntry" value="" maxlength="64" placeholder="Enter City / State or Zip Code" data-element-id="X_X_MainNav_EYE-ZipCode"><button
    class="store-search-submit submit-find-store" type="submit" data-element-id="X_X_1Hero_Banner1_CTA"> SCHEDULE </button></form>

<form class="section emailSignup ng-pristine ng-valid" id="emailSignup"><input name="preregister" ng-model="subscribe.preregister" type="hidden" ng-init="subscribe.preregister=true" autocomplete="off"
    class="ng-pristine ng-untouched ng-valid ng-not-empty"><input name="addressType" ng-model="subscribe.addressType" type="hidden" ng-init="subscribe.addressType='M'" autocomplete="off" class="ng-pristine ng-untouched ng-valid ng-not-empty"><input
    id="x__footer_lcGeneralEmailOptIn" name="lcGeneralEmailOptIn_10851_r_1" ng-model="subscribe.lcGeneralEmailOptIn" type="hidden" ng-init="subscribe.lcGeneralEmailOptIn=true" autocomplete="off"
    class="ng-pristine ng-untouched ng-valid ng-not-empty"><input id="x_footer_ageCheck" name="ageCheck_10851_r_1" ng-model="subscribe.ageCheck" type="hidden" ng-init="subscribe.ageCheck=true" autocomplete="off"
    class="ng-pristine ng-untouched ng-valid ng-not-empty"><input name="canAddOrigin" ng-model="subscribe.canAddOrigin" type="hidden" ng-init="subscribe.canAddOrigin=true" autocomplete="off"
    class="ng-pristine ng-untouched ng-valid ng-not-empty"><input name="optinStatus" ng-model="subscribe.optinStatus" type="hidden" ng-init="subscribe.optinStatus=true" autocomplete="off" class="ng-pristine ng-untouched ng-valid ng-not-empty"><input
    name="URL" ng-model="subscribe.URL" type="hidden" ng-init="subscribe.URL='SuccessView'" autocomplete="off" class="ng-pristine ng-untouched ng-valid ng-not-empty"><input id="x_footer_storeId" name="storeId" ng-model="subscribe.storeId"
    type="hidden" ng-init="subscribe.storeId='10851'" autocomplete="off" class="ng-pristine ng-untouched ng-valid ng-not-empty"><input id="x_footer_langId" "="" name=" langId" ng-model="subscribe.langId" type="hidden" ng-init="subscribe.langId='-1'"
    autocomplete="off" class="ng-pristine ng-untouched ng-valid ng-not-empty"><input name="emailType" ng-model="subscribe.emailType" type="hidden" ng-init="subscribe.emailType='Footer'" autocomplete="off"
    class="ng-pristine ng-untouched ng-valid ng-not-empty"><input name="showRegister" ng-model="subscribe.showRegister" type="hidden" ng-init="subscribe.showRegister=true" autocomplete="off"
    class="ng-pristine ng-untouched ng-valid ng-not-empty"><input name="email" ng-model="subscribe.enteredEmail" id="footer_email_signup_acc" placeholder="Enter your e-mail address" class="ng-pristine ng-untouched ng-valid ng-empty"><button
    type="submit" class="" ng-click="submitEmailSubscription();" data-element-id="X_X_Subscribe_SignUp"> SIGN UP </button></form>

Name: insuranceLoginForm

<form name="insuranceLoginForm" class="css-form ng-pristine ng-invalid ng-invalid-required ng-valid-pattern ng-valid-minlength ng-valid-maxlength" novalidate="">
  <span class="ng-binding"> </span>
  <div class="login-data">
    <div class="firstname-input untouched"
      ng-class="{'invalid': !firstname_resetenabled &amp;&amp; !insuranceLoginForm.firstname.$valid &amp;&amp; insuranceLoginForm.firstname.$touched, bold: important, 'valid': !firstname_resetenabled &amp;&amp; insuranceLoginForm.firstname.$valid, 'untouched':!insuranceLoginForm.firstname.$touched}">
      <section class="insurance-input-container">
        <input class="utagpiimask input ng-pristine ng-untouched ng-isolate-scope ng-empty ng-invalid ng-invalid-required ng-valid-pattern" reset-field="" placeholder=" "
          ng-class="{'invalid': !firstname_resetenabled &amp;&amp; !insuranceLoginForm.firstname.$valid &amp;&amp; insuranceLoginForm.firstname.$touched, 'valid': !firstname_resetenabled &amp;&amp; insuranceLoginForm.firstname.$valid}" id="firstname"
          type="text" ng-model="loginData.firstname" name="firstname" ng-change="preventWrongChars($event)" ng-pattern="/^\D*$/" ng-required="personalFormRequired()" aria-label="First name"
          required="required"><a ng-show="enabled" class="clear-input-icon ng-scope ng-hide" ng-mousedown="reset()"><svg class="icon close"><use xlink:href="#clear-input"></use></svg></a>
        <label>First Name<span class="required-field">*</span></label>
      </section>
      <span class="insurance-input-validation ng-hide" ng-show="(insuranceLoginForm.firstname.$viewValue == '' || insuranceLoginForm.firstname.$viewValue == null) &amp;&amp; insuranceLoginForm.firstname.$touched"
        aria-label="Please insert your first name." tabindex="0">Please insert your first name</span>
      <span ng-show="!insuranceLoginForm.firstname.$valid &amp;&amp; insuranceLoginForm.firstname.$viewValue != '' &amp;&amp; insuranceLoginForm.firstname.$viewValue != null &amp;&amp; insuranceLoginForm.firstname.$touched" tabindex="-1"
        aria-label="Please enter a valid first name" class="insurance-input-validation ng-hide">Please enter a valid first name</span>
    </div>
    <div class="lastname-input untouched"
      ng-class="{'invalid': !lastname_resetenabled &amp;&amp; !insuranceLoginForm.lastname.$valid &amp;&amp; insuranceLoginForm.lastname.$touched, bold: important, 'valid': !lastname_resetenabled &amp;&amp; insuranceLoginForm.lastname.$valid, 'untouched':!insuranceLoginForm.lastname.$touched}">
      <section class="insurance-input-container">
        <input class="utagpiimask input ng-pristine ng-untouched ng-isolate-scope ng-empty ng-invalid ng-invalid-required ng-valid-pattern" id="lastname" reset-field=""
          ng-class="{'invalid': !lastname_resetenabled &amp;&amp; !insuranceLoginForm.lastname.$valid &amp;&amp; insuranceLoginForm.lastname.$touched, 'valid': !lastname_resetenabled &amp;&amp; insuranceLoginForm.lastname.$valid}" placeholder=" "
          type="text" ng-model="loginData.lastname" name="lastname" ng-change="preventWrongChars($event)" ng-pattern="/^\D*$/" ng-required="personalFormRequired()" aria-label="Last name"
          required="required"><a ng-show="enabled" class="clear-input-icon ng-scope ng-hide" ng-mousedown="reset()"><svg class="icon close"><use xlink:href="#clear-input"></use></svg></a>
        <label>Last Name<span class="required-field">*</span></label>
      </section>
      <span ng-show="(insuranceLoginForm.lastname.$viewValue == '' || insuranceLoginForm.lastname.$viewValue == null) &amp;&amp; insuranceLoginForm.lastname.$touched" tabindex="-1" aria-label="Please enter a valid last name"
        class="insurance-input-validation ng-hide">Please insert your last name</span>
      <span class="insurance-input-validation required-lastname live-validation ng-hide"
        ng-show="!insuranceLoginForm.lastname.$valid &amp;&amp; insuranceLoginForm.lastname.$viewValue != '' &amp;&amp; insuranceLoginForm.lastname.$viewValue != null &amp;&amp; insuranceLoginForm.lastname.$touched"
        aria-label="Please insert your last name" tabindex="0">Please enter a valid last name</span>
    </div>
    <div class="dob-zip-container">
      <div class="dob-input insurance-input-container untouched"
        ng-class="{'invalid': !dob_resetenabled &amp;&amp; !insuranceLoginForm.dob.$valid &amp;&amp; insuranceLoginForm.dob.$touched, bold: important, 'valid': !dob_resetenabled &amp;&amp; insuranceLoginForm.dob.$valid, 'untouched':!insuranceLoginForm.dob.$touched  }">
        <input id="date-of-birth2" ng-class="{'invalid': !dob_resetenabled &amp;&amp; !insuranceLoginForm.dob.$valid &amp;&amp; insuranceLoginForm.dob.$touched, 'valid': !dob_resetenabled &amp;&amp; insuranceLoginForm.dob.$valid}" reset-field=""
          inputmode="numeric" type="text" class="lc-input lc-input-text utagpiimask ng-pristine ng-untouched ng-isolate-scope ng-empty ng-invalid ng-invalid-required ng-valid-minlength ng-valid-maxlength" name="dob" ng-minlength="10"
          ng-change="preventWrongChars($event)" ng-maxlength="10" ng-model="loginData.dob" placeholder="MM / DD / YYYY" angular-mask="00/00/0000" ng-required="personalFormRequired()" dob-ins-validation=""
          required="required"><a ng-show="enabled" class="clear-input-icon ng-scope ng-hide" ng-mousedown="reset()"><svg class="icon close"><use xlink:href="#clear-input"></use></svg></a>
        <label class="lc-input-label" for="dob">Date of birth*</label>
        <a class="calendar-btn" ng-click="dobDatePickerToggleFn()" aria-label="Open or close date picker">
										<svg width="20" height="22" viewBox="0 0 20 22" fill="none" xmlns="http://www.w3.org/2000/svg">
											<path d="M16.9231 3H3.07692C1.92987 3 1 4.00736 1 5.25V18.75C1 19.9926 1.92987 21 3.07692 21H16.9231C18.0701 21 19 19.9926 19 18.75V5.25C19 4.00736 18.0701 3 16.9231 3Z" stroke="#222222" stroke-width="1.5" stroke-linejoin="round"></path>
											<path d="M10.5 10.125C10.5 10.3321 10.3321 10.5 10.125 10.5C9.91789 10.5 9.75 10.3321 9.75 10.125C9.75 9.91789 9.91789 9.75 10.125 9.75C10.3321 9.75 10.5 9.91789 10.5 10.125Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
											<path d="M15.5 10.125C15.5 10.3321 15.3321 10.5 15.125 10.5C14.9179 10.5 14.75 10.3321 14.75 10.125C14.75 9.91789 14.9179 9.75 15.125 9.75C15.3321 9.75 15.5 9.91789 15.5 10.125Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
											<path d="M10.5 13.625C10.5 13.8321 10.3321 14 10.125 14C9.91789 14 9.75 13.8321 9.75 13.625C9.75 13.4179 9.91789 13.25 10.125 13.25C10.3321 13.25 10.5 13.4179 10.5 13.625Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
											<path d="M15.5 13.625C15.5 13.8321 15.3321 14 15.125 14C14.9179 14 14.75 13.8321 14.75 13.625C14.75 13.4179 14.9179 13.25 15.125 13.25C15.3321 13.25 15.5 13.4179 15.5 13.625Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
											<path d="M5.5 13.625C5.5 13.8321 5.33211 14 5.125 14C4.91789 14 4.75 13.8321 4.75 13.625C4.75 13.4179 4.91789 13.25 5.125 13.25C5.33211 13.25 5.5 13.4179 5.5 13.625Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
											<path d="M5.5 17.125C5.5 17.3321 5.33211 17.5 5.125 17.5C4.91789 17.5 4.75 17.3321 4.75 17.125C4.75 16.9179 4.91789 16.75 5.125 16.75C5.33211 16.75 5.5 16.9179 5.5 17.125Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
											<path d="M10.5 17.125C10.5 17.3321 10.3321 17.5 10.125 17.5C9.91789 17.5 9.75 17.3321 9.75 17.125C9.75 16.9179 9.91789 16.75 10.125 16.75C10.3321 16.75 10.5 16.9179 10.5 17.125Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
											<path d="M15.5 17.125C15.5 17.3321 15.3321 17.5 15.125 17.5C14.9179 17.5 14.75 17.3321 14.75 17.125C14.75 16.9179 14.9179 16.75 15.125 16.75C15.3321 16.75 15.5 16.9179 15.5 17.125Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
											<path d="M5.5 10.125C5.5 10.3321 5.33211 10.5 5.125 10.5C4.91789 10.5 4.75 10.3321 4.75 10.125C4.75 9.91789 4.91789 9.75 5.125 9.75C5.33211 9.75 5.5 9.91789 5.5 10.125Z" fill="#222222" stroke="#222222" stroke-width="1.5"></path>
											<path d="M6 1.25V2.75" stroke="#222222" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
											<path d="M14 1V2.5" stroke="#222222" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"></path>
											<path d="M19 6L1 6" stroke="#222222" stroke-width="1.5" stroke-linejoin="round"></path>
										</svg>
									</a>
        <span ng-show="(insuranceLoginForm.dob.$viewValue == '' || insuranceLoginForm.dob.$viewValue == null) &amp;&amp; insuranceLoginForm.dob.$touched" tabindex="-1" aria-label="Please insert your date of birth"
          class="insurance-input-validation ng-hide">Please insert your date of birth</span>
        <span class="insurance-input-validation ng-hide" ng-show="!insuranceLoginForm.dob.$valid &amp;&amp; insuranceLoginForm.dob.$viewValue != '' &amp;&amp; insuranceLoginForm.dob.$viewValue != null &amp;&amp; insuranceLoginForm.dob.$touched"
          aria-label="Please enter a valid date of birth" tabindex="0">Please enter a valid date of birth</span>
        <div class="d-none calendar-widget ng-scope" id="calendarWidget" ng-controller="DatePickerController" ng-init="init({})">
          <div class="calendar-widget-header">
            <div class="calendar-widget-month">
              <span ng-click="goToPrevMonth()" ng-class="{'disabled': prevMonthIsInvalid()}" ng-disabled="prevMonthIsInvalid()">
                <img src="/wcsstore/TargetOpticalStorefrontAssetStore/images/icons/arrow_left.svg" alt="Left arrow icon">
              </span>
              <span ng-click="goToMonthPage()" class="selected-month ng-binding">June</span>
              <span ng-class="{'disabled': nextMonthIsInvalid()}" ng-disabled="nextMonthIsInvalid()" ng-click="goToNextMonth()" disabled="disabled" class="disabled">
                <img src="/wcsstore/TargetOpticalStorefrontAssetStore/images/icons/arrow_right.svg" alt="Right arrow icon">
              </span>
            </div>
            <div class="calendar-widget-year" ng-switch="" on="currentPage">
              <span ng-click="goToYearPage()" class="ng-binding">2024</span>
              <!-- ngSwitchWhen: datePage -->
              <!-- ngSwitchDefault: --><span ng-switch-default="" ng-click="goToDayPage()" class="ng-scope">
                <img src="/wcsstore/TargetOpticalStorefrontAssetStore/images/icons/arrow_top.svg" alt="Arrow top icon">
              </span><!-- end ngSwitchWhen: -->
            </div>
          </div>
          <div class="calendar-widget-body">
            <div class="calendar-widget-days date-page d-none">
              <div class="calendar-widget-weekdays">
                <!-- ngRepeat: day in weekdays track by $index --><span ng-repeat="day in weekdays track by $index" "="" class=" ng-binding ng-scope">S</span><!-- end ngRepeat: day in weekdays track by $index --><span
                  ng-repeat="day in weekdays track by $index" "="" class=" ng-binding ng-scope">M</span><!-- end ngRepeat: day in weekdays track by $index --><span ng-repeat="day in weekdays track by $index" "="" class=" ng-binding
                  ng-scope">T</span><!-- end ngRepeat: day in weekdays track by $index --><span ng-repeat="day in weekdays track by $index" "="" class=" ng-binding ng-scope">W</span><!-- end ngRepeat: day in weekdays track by $index --><span
                  ng-repeat="day in weekdays track by $index" "="" class=" ng-binding ng-scope">T</span><!-- end ngRepeat: day in weekdays track by $index --><span ng-repeat="day in weekdays track by $index" "="" class=" ng-binding
                  ng-scope">F</span><!-- end ngRepeat: day in weekdays track by $index --><span ng-repeat="day in weekdays track by $index" "="" class=" ng-binding ng-scope">S</span><!-- end ngRepeat: day in weekdays track by $index -->
              </div>
              <!-- ngRepeat: date in pastMonth --><span class="date pastMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in pastMonth"
                ng-click="selectDate(date)">26</span><!-- end ngRepeat: date in pastMonth --><span class="date pastMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date)}"
                ng-repeat="date in pastMonth" ng-click="selectDate(date)">27</span><!-- end ngRepeat: date in pastMonth --><span class="date pastMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in pastMonth" ng-click="selectDate(date)">28</span><!-- end ngRepeat: date in pastMonth --><span
                class="date pastMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in pastMonth"
                ng-click="selectDate(date)">29</span><!-- end ngRepeat: date in pastMonth --><span class="date pastMonth ng-binding ng-scope" ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date)}"
                ng-repeat="date in pastMonth" ng-click="selectDate(date)">30</span><!-- end ngRepeat: date in pastMonth --><span class="date pastMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in pastMonth" ng-click="selectDate(date)">31</span><!-- end ngRepeat: date in pastMonth -->
              <!-- ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">1</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">2</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">3</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">4</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">5</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">6</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">7</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">8</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">9</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">10</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">11</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">12</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">13</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">14</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">15</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">16</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">17</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">18</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope selected today"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">19</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">20</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">21</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">22</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">23</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">24</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">25</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">26</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">27</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">28</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">29</span><!-- end ngRepeat: date in currentMonth --><span class="date currentMonth ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date), 'today':date.toDateString()===maxDate.toDateString()}" ng-repeat="date in currentMonth"
                ng-click="selectDate(date)">30</span><!-- end ngRepeat: date in currentMonth -->
              <!-- ngRepeat: date in nextMonth --><span class="date nextMonth ng-binding ng-scope invalid" ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in nextMonth"
                ng-click="selectDate(date)">1</span><!-- end ngRepeat: date in nextMonth --><span class="date nextMonth ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in nextMonth" ng-click="selectDate(date)">2</span><!-- end ngRepeat: date in nextMonth --><span
                class="date nextMonth ng-binding ng-scope invalid" ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in nextMonth"
                ng-click="selectDate(date)">3</span><!-- end ngRepeat: date in nextMonth --><span class="date nextMonth ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in nextMonth" ng-click="selectDate(date)">4</span><!-- end ngRepeat: date in nextMonth --><span
                class="date nextMonth ng-binding ng-scope invalid" ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in nextMonth"
                ng-click="selectDate(date)">5</span><!-- end ngRepeat: date in nextMonth --><span class="date nextMonth ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.toDateString() === date.toDateString(), 'invalid': dateIsInvalid(date)}" ng-repeat="date in nextMonth" ng-click="selectDate(date)">6</span><!-- end ngRepeat: date in nextMonth -->
            </div>
            <div class="calendar-widget-days months-page d-none">
              <!-- ngRepeat: m in months --><span class="month ng-binding ng-scope" ng-class="{'selected': selectedDate.getMonth()  === m &amp;&amp; selectedDate.getFullYear() === year, 'invalid': monthIsInvalid(m)}" ng-repeat="m in months"
                ng-click="selectMonth(m)">Jan</span><!-- end ngRepeat: m in months --><span class="month ng-binding ng-scope"
                ng-class="{'selected': selectedDate.getMonth()  === m &amp;&amp; selectedDate.getFullYear() === year, 'invalid': monthIsInvalid(m)}" ng-repeat="m in months" ng-click="selectMonth(m)">Feb</span><!-- end ngRepeat: m in months --><span
                class="month ng-binding ng-scope" ng-class="{'selected': selectedDate.getMonth()  === m &amp;&amp; selectedDate.getFullYear() === year, 'invalid': monthIsInvalid(m)}" ng-repeat="m in months"
                ng-click="selectMonth(m)">Mar</span><!-- end ngRepeat: m in months --><span class="month ng-binding ng-scope"
                ng-class="{'selected': selectedDate.getMonth()  === m &amp;&amp; selectedDate.getFullYear() === year, 'invalid': monthIsInvalid(m)}" ng-repeat="m in months" ng-click="selectMonth(m)">Apr</span><!-- end ngRepeat: m in months --><span
                class="month ng-binding ng-scope" ng-class="{'selected': selectedDate.getMonth()  === m &amp;&amp; selectedDate.getFullYear() === year, 'invalid': monthIsInvalid(m)}" ng-repeat="m in months"
                ng-click="selectMonth(m)">May</span><!-- end ngRepeat: m in months --><span class="month ng-binding ng-scope selected"
                ng-class="{'selected': selectedDate.getMonth()  === m &amp;&amp; selectedDate.getFullYear() === year, 'invalid': monthIsInvalid(m)}" ng-repeat="m in months" ng-click="selectMonth(m)">June</span><!-- end ngRepeat: m in months --><span
                class="month ng-binding ng-scope invalid" ng-class="{'selected': selectedDate.getMonth()  === m &amp;&amp; selectedDate.getFullYear() === year, 'invalid': monthIsInvalid(m)}" ng-repeat="m in months"
                ng-click="selectMonth(m)">July</span><!-- end ngRepeat: m in months --><span class="month ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.getMonth()  === m &amp;&amp; selectedDate.getFullYear() === year, 'invalid': monthIsInvalid(m)}" ng-repeat="m in months" ng-click="selectMonth(m)">Aug</span><!-- end ngRepeat: m in months --><span
                class="month ng-binding ng-scope invalid" ng-class="{'selected': selectedDate.getMonth()  === m &amp;&amp; selectedDate.getFullYear() === year, 'invalid': monthIsInvalid(m)}" ng-repeat="m in months"
                ng-click="selectMonth(m)">Sep</span><!-- end ngRepeat: m in months --><span class="month ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.getMonth()  === m &amp;&amp; selectedDate.getFullYear() === year, 'invalid': monthIsInvalid(m)}" ng-repeat="m in months" ng-click="selectMonth(m)">Oct</span><!-- end ngRepeat: m in months --><span
                class="month ng-binding ng-scope invalid" ng-class="{'selected': selectedDate.getMonth()  === m &amp;&amp; selectedDate.getFullYear() === year, 'invalid': monthIsInvalid(m)}" ng-repeat="m in months"
                ng-click="selectMonth(m)">Nov</span><!-- end ngRepeat: m in months --><span class="month ng-binding ng-scope invalid"
                ng-class="{'selected': selectedDate.getMonth()  === m &amp;&amp; selectedDate.getFullYear() === year, 'invalid': monthIsInvalid(m)}" ng-repeat="m in months" ng-click="selectMonth(m)">Dec</span><!-- end ngRepeat: m in months -->
            </div>
            <div class="calendar-widget-days years-page">
              <div class="calendar-widget-years-slider slick-initialized slick-slider slick-dotted slick-vertical">
                <div class="slick-list draggable" style="height: 0px;">
                  <div class="slick-track" style="opacity: 1; height: 0px; transform: translate3d(0px, 0px, 0px);">
                    <div class="slide slick-slide" data-slick-index="0" aria-hidden="true" style="width: 0px;" tabindex="-1" role="tabpanel" id="slick-slide20" aria-describedby="slick-slide-control20"><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1920)}" ng-click="selectYear(1920)">1920</span><span class="year" ng-class="{'invalid': yearIsInvalid(1921)}" ng-click="selectYear(1921)">1921</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1922)}" ng-click="selectYear(1922)">1922</span><span class="year" ng-class="{'invalid': yearIsInvalid(1923)}" ng-click="selectYear(1923)">1923</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1924)}" ng-click="selectYear(1924)">1924</span><span class="year" ng-class="{'invalid': yearIsInvalid(1925)}" ng-click="selectYear(1925)">1925</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1926)}" ng-click="selectYear(1926)">1926</span><span class="year" ng-class="{'invalid': yearIsInvalid(1927)}" ng-click="selectYear(1927)">1927</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1928)}" ng-click="selectYear(1928)">1928</span><span class="year" ng-class="{'invalid': yearIsInvalid(1929)}" ng-click="selectYear(1929)">1929</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1930)}" ng-click="selectYear(1930)">1930</span><span class="year" ng-class="{'invalid': yearIsInvalid(1931)}" ng-click="selectYear(1931)">1931</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1932)}" ng-click="selectYear(1932)">1932</span><span class="year" ng-class="{'invalid': yearIsInvalid(1933)}" ng-click="selectYear(1933)">1933</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1934)}" ng-click="selectYear(1934)">1934</span><span class="year" ng-class="{'invalid': yearIsInvalid(1935)}" ng-click="selectYear(1935)">1935</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1936)}" ng-click="selectYear(1936)">1936</span><span class="year" ng-class="{'invalid': yearIsInvalid(1937)}" ng-click="selectYear(1937)">1937</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1938)}" ng-click="selectYear(1938)">1938</span><span class="year" ng-class="{'invalid': yearIsInvalid(1939)}" ng-click="selectYear(1939)">1939</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1940)}" ng-click="selectYear(1940)">1940</span><span class="year" ng-class="{'invalid': yearIsInvalid(1941)}" ng-click="selectYear(1941)">1941</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1942)}" ng-click="selectYear(1942)">1942</span><span class="year" ng-class="{'invalid': yearIsInvalid(1943)}" ng-click="selectYear(1943)">1943</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1944)}" ng-click="selectYear(1944)">1944</span><span class="year" ng-class="{'invalid': yearIsInvalid(1945)}" ng-click="selectYear(1945)">1945</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1946)}" ng-click="selectYear(1946)">1946</span><span class="year" ng-class="{'invalid': yearIsInvalid(1947)}" ng-click="selectYear(1947)">1947</span></div>
                    <div class="slide slick-slide" data-slick-index="1" aria-hidden="true" style="width: 0px;" tabindex="-1" role="tabpanel" id="slick-slide21" aria-describedby="slick-slide-control21"><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1948)}" ng-click="selectYear(1948)">1948</span><span class="year" ng-class="{'invalid': yearIsInvalid(1949)}" ng-click="selectYear(1949)">1949</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1950)}" ng-click="selectYear(1950)">1950</span><span class="year" ng-class="{'invalid': yearIsInvalid(1951)}" ng-click="selectYear(1951)">1951</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1952)}" ng-click="selectYear(1952)">1952</span><span class="year" ng-class="{'invalid': yearIsInvalid(1953)}" ng-click="selectYear(1953)">1953</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1954)}" ng-click="selectYear(1954)">1954</span><span class="year" ng-class="{'invalid': yearIsInvalid(1955)}" ng-click="selectYear(1955)">1955</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1956)}" ng-click="selectYear(1956)">1956</span><span class="year" ng-class="{'invalid': yearIsInvalid(1957)}" ng-click="selectYear(1957)">1957</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1958)}" ng-click="selectYear(1958)">1958</span><span class="year" ng-class="{'invalid': yearIsInvalid(1959)}" ng-click="selectYear(1959)">1959</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1960)}" ng-click="selectYear(1960)">1960</span><span class="year" ng-class="{'invalid': yearIsInvalid(1961)}" ng-click="selectYear(1961)">1961</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1962)}" ng-click="selectYear(1962)">1962</span><span class="year" ng-class="{'invalid': yearIsInvalid(1963)}" ng-click="selectYear(1963)">1963</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1964)}" ng-click="selectYear(1964)">1964</span><span class="year" ng-class="{'invalid': yearIsInvalid(1965)}" ng-click="selectYear(1965)">1965</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1966)}" ng-click="selectYear(1966)">1966</span><span class="year" ng-class="{'invalid': yearIsInvalid(1967)}" ng-click="selectYear(1967)">1967</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1968)}" ng-click="selectYear(1968)">1968</span><span class="year" ng-class="{'invalid': yearIsInvalid(1969)}" ng-click="selectYear(1969)">1969</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1970)}" ng-click="selectYear(1970)">1970</span><span class="year" ng-class="{'invalid': yearIsInvalid(1971)}" ng-click="selectYear(1971)">1971</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1972)}" ng-click="selectYear(1972)">1972</span><span class="year" ng-class="{'invalid': yearIsInvalid(1973)}" ng-click="selectYear(1973)">1973</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1974)}" ng-click="selectYear(1974)">1974</span><span class="year" ng-class="{'invalid': yearIsInvalid(1975)}" ng-click="selectYear(1975)">1975</span></div>
                    <div class="slide slick-slide" data-slick-index="2" aria-hidden="true" style="width: 0px;" tabindex="-1" role="tabpanel" id="slick-slide22" aria-describedby="slick-slide-control22"><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1976)}" ng-click="selectYear(1976)">1976</span><span class="year" ng-class="{'invalid': yearIsInvalid(1977)}" ng-click="selectYear(1977)">1977</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1978)}" ng-click="selectYear(1978)">1978</span><span class="year" ng-class="{'invalid': yearIsInvalid(1979)}" ng-click="selectYear(1979)">1979</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1980)}" ng-click="selectYear(1980)">1980</span><span class="year" ng-class="{'invalid': yearIsInvalid(1981)}" ng-click="selectYear(1981)">1981</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1982)}" ng-click="selectYear(1982)">1982</span><span class="year" ng-class="{'invalid': yearIsInvalid(1983)}" ng-click="selectYear(1983)">1983</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1984)}" ng-click="selectYear(1984)">1984</span><span class="year" ng-class="{'invalid': yearIsInvalid(1985)}" ng-click="selectYear(1985)">1985</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1986)}" ng-click="selectYear(1986)">1986</span><span class="year" ng-class="{'invalid': yearIsInvalid(1987)}" ng-click="selectYear(1987)">1987</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1988)}" ng-click="selectYear(1988)">1988</span><span class="year" ng-class="{'invalid': yearIsInvalid(1989)}" ng-click="selectYear(1989)">1989</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1990)}" ng-click="selectYear(1990)">1990</span><span class="year" ng-class="{'invalid': yearIsInvalid(1991)}" ng-click="selectYear(1991)">1991</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1992)}" ng-click="selectYear(1992)">1992</span><span class="year" ng-class="{'invalid': yearIsInvalid(1993)}" ng-click="selectYear(1993)">1993</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1994)}" ng-click="selectYear(1994)">1994</span><span class="year" ng-class="{'invalid': yearIsInvalid(1995)}" ng-click="selectYear(1995)">1995</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1996)}" ng-click="selectYear(1996)">1996</span><span class="year" ng-class="{'invalid': yearIsInvalid(1997)}" ng-click="selectYear(1997)">1997</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(1998)}" ng-click="selectYear(1998)">1998</span><span class="year" ng-class="{'invalid': yearIsInvalid(1999)}" ng-click="selectYear(1999)">1999</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(2000)}" ng-click="selectYear(2000)">2000</span><span class="year" ng-class="{'invalid': yearIsInvalid(2001)}" ng-click="selectYear(2001)">2001</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(2002)}" ng-click="selectYear(2002)">2002</span><span class="year" ng-class="{'invalid': yearIsInvalid(2003)}" ng-click="selectYear(2003)">2003</span></div>
                    <div class="slide slick-slide slick-current slick-active" data-slick-index="3" aria-hidden="false" style="width: 0px;" tabindex="0" role="tabpanel" id="slick-slide23" aria-describedby="slick-slide-control23"><span class="year"
                        ng-class="{'invalid': yearIsInvalid(2004)}" ng-click="selectYear(2004)">2004</span><span class="year" ng-class="{'invalid': yearIsInvalid(2005)}" ng-click="selectYear(2005)">2005</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(2006)}" ng-click="selectYear(2006)">2006</span><span class="year" ng-class="{'invalid': yearIsInvalid(2007)}" ng-click="selectYear(2007)">2007</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(2008)}" ng-click="selectYear(2008)">2008</span><span class="year" ng-class="{'invalid': yearIsInvalid(2009)}" ng-click="selectYear(2009)">2009</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(2010)}" ng-click="selectYear(2010)">2010</span><span class="year" ng-class="{'invalid': yearIsInvalid(2011)}" ng-click="selectYear(2011)">2011</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(2012)}" ng-click="selectYear(2012)">2012</span><span class="year" ng-class="{'invalid': yearIsInvalid(2013)}" ng-click="selectYear(2013)">2013</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(2014)}" ng-click="selectYear(2014)">2014</span><span class="year" ng-class="{'invalid': yearIsInvalid(2015)}" ng-click="selectYear(2015)">2015</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(2016)}" ng-click="selectYear(2016)">2016</span><span class="year" ng-class="{'invalid': yearIsInvalid(2017)}" ng-click="selectYear(2017)">2017</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(2018)}" ng-click="selectYear(2018)">2018</span><span class="year" ng-class="{'invalid': yearIsInvalid(2019)}" ng-click="selectYear(2019)">2019</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(2020)}" ng-click="selectYear(2020)">2020</span><span class="year" ng-class="{'invalid': yearIsInvalid(2021)}" ng-click="selectYear(2021)">2021</span><span class="year"
                        ng-class="{'invalid': yearIsInvalid(2022)}" ng-click="selectYear(2022)">2022</span><span class="year" ng-class="{'invalid': yearIsInvalid(2023)}" ng-click="selectYear(2023)">2023</span><span class="year selected"
                        ng-class="{'invalid': yearIsInvalid(2024)}" ng-click="selectYear(2024)">2024</span></div>
                  </div>
                </div>
                <ul class="slick-dots" style="" role="tablist">
                  <li class="" role="presentation"><button type="button" role="tab" id="slick-slide-control20" aria-controls="slick-slide20" aria-label="1 of 4" tabindex="-1">1</button></li>
                  <li role="presentation"><button type="button" role="tab" id="slick-slide-control21" aria-controls="slick-slide21" aria-label="2 of 4" tabindex="-1">2</button></li>
                  <li role="presentation"><button type="button" role="tab" id="slick-slide-control22" aria-controls="slick-slide22" aria-label="3 of 4" tabindex="-1">3</button></li>
                  <li class="slick-active" role="presentation"><button type="button" role="tab" id="slick-slide-control23" aria-controls="slick-slide23" aria-label="4 of 4" tabindex="0" aria-selected="true">4</button></li>
                </ul>
              </div>
            </div>
          </div>
        </div>
      </div>
      <!-- ngIf: $root.storeId==10851 -->
      <div class="zipcode-input ng-scope untouched" ng-if="$root.storeId==10851"
        ng-class="{'invalid': (!insuranceLoginForm.zipcode.$valid || insuranceLoginForm.zipcode.$viewValue.length<5 ) &amp;&amp; insuranceLoginForm.zipcode.$touched &amp;&amp; !zipcode_resetenabled, 'valid': insuranceLoginForm.zipcode.$valid &amp;&amp; !zipcode_resetenabled, 'untouched':!insuranceLoginForm.zipcode.$touched}">
        <section class="insurance-input-container">
          <input class="utagpiimask input ng-pristine ng-untouched ng-isolate-scope ng-empty ng-valid-pattern ng-invalid ng-invalid-required ng-valid-maxlength" reset-field="" placeholder=" "
            ng-class="{'invalid': (!insuranceLoginForm.zipcode.$valid || insuranceLoginForm.zipcode.$viewValue.length<5 ) &amp;&amp; insuranceLoginForm.zipcode.$touched, 'valid': !zipcode_resetenabled &amp;&amp; insuranceLoginForm.zipcode.$valid &amp;&amp; insuranceLoginForm.zipcode.$viewValue.length>=5}"
            type="text" inputmode="numeric" ng-model="loginData.zipcode" pattern="\d{5}" maxlength="5" ng-pattern="/\d{5}/" name="zipcode" ng-change="preventWrongChars($event)" ng-focus="isZipCodeFocused(true)" ng-blur="isZipCodeFocused(false)"
            id="zipcode" ng-required="personalFormRequired()" aria-label="Zipcode"
            required="required"><a ng-show="enabled" class="clear-input-icon ng-scope ng-hide" ng-mousedown="reset()"><svg class="icon close"><use xlink:href="#clear-input"></use></svg></a>
          <label>Zip Code<span class="required-field">*</span></label>
        </section>
        <span ng-show="(insuranceLoginForm.zipcode.$viewValue == '' || insuranceLoginForm.zipcode.$viewValue == null) &amp;&amp; insuranceLoginForm.zipcode.$touched" tabindex="-1" aria-label="Please enter a valid zip code"
          class="insurance-input-validation ng-hide">Please insert your zip code</span>
        <span class="insurance-input-validation required-firstname live-validation ng-hide"
          ng-show="(!insuranceLoginForm.zipcode.$valid || insuranceLoginForm.zipcode.$viewValue.length<5) &amp;&amp; insuranceLoginForm.zipcode.$viewValue != '' &amp;&amp; insuranceLoginForm.zipcode.$viewValue != null &amp;&amp; insuranceLoginForm.zipcode.$touched"
          aria-label="The first name field cannot be empty." tabindex="0">Please enter a valid zip code</span>
      </div><!-- end ngIf: $root.storeId==10851 -->
      <!-- ngIf: $root.storeId==10852 -->
    </div>
  </div>
  <div class="submit-plan-info">
    <div class="age-check">
      <label class="lc-control lc-control--checkbox" for="certifyage">I certify that my use of this service abides by the <a aria-label="Luxottica privacy policies" target="_blank" class="hippa-privacypolicies" href="/lc-us/privacy-policy">
									Luxottica Retail HIPAA &amp; Privacy Policies</a> <input type="checkbox" ng-model="loginData.certifyage" name="certifyage" id="certifyage" ng-change="setCertifyAge()" data-element-id="D_X_MainNav_VisionInsurance-18YearsOld" required=""
          aria-label="18 years vision insurance checkbox" class="ng-pristine ng-untouched ng-empty ng-invalid ng-invalid-required">
        <div class="lc-control__indicator"></div>
      </label> <span class="age-check-error ng-hide" ng-show="!insuranceLoginForm.certifyage.$valid &amp;&amp; insuranceLoginForm.certifyage.$touched"
        aria-label="To proceed, tick the box above to certify you're 18 years or older. If you're not, you cannot proceed with this step.">To proceed, tick the box above to certify you're 18 years or older. If you're not, you cannot proceed with this
        step.</span>
    </div>
    <button class="submit-plan-info-button" aria-label="Apply insurance" name="submitplaninfobutton" ng-click="submitInsuranceLogin(insuranceLoginForm)" data-description="" data-element-id="X_X_InsurancePanel_Submit">Apply insurance</button>
    <button class="submit-plan-loading-button d-none" aria-label="Loading icon" disabled="">
      <i class="fa fa-spinner fa-spin"></i>
    </button>
  </div>
</form>

Text Content

Find a Store
Previous
Buy online, pick up in store. Shop Now
NEW | Adaptive™ Progressive Lenses by LensCrafters
INSURANCE ACCEPTED ONLINE & IN STORE
Book your eye exam online. Schedule now
Shop now, pay later with PayPal. Discover more
Buy online, pick up in store. Shop Now
NEW | Adaptive™ Progressive Lenses by LensCrafters
INSURANCE ACCEPTED ONLINE & IN STORE
Book your eye exam online. Schedule now
Shop now, pay later with PayPal. Discover more
Buy online, pick up in store. Shop Now
Next
Insurance accepted online and in store
0

EYEGLASSES
Eyeglasses


SHOP BY gender
Women’s Eyeglasses

Men’s Eyeglasses

Kid’s Eyeglasses

Shop all eyeglasses
SHOP STYLES FOR YOU
Ray-Ban | Meta smart glasses Our Style Guide Frame Advisor
SHOP BY OFFER
Designer Sale | 50% off frame + lenses* Frame + lenses starting at $99
SHOP BY LENSES
Blue-Violet light filter Transitions
SHOP BY our picks
Best sellers Ray-Ban Prada Oakley Sustainable styles New arrivals
view all eyeglasses


40% OFF LENSES

with frame purchase

SHOP NOW

40% OFF LENSES

with frame purchase

SHOP NOW
SUNGLASSES
Sunglasses


SHOP BY gender
Women’s Sunglasses

Men’s Sunglasses

Kid’s Sunglasses

Shop all sunglasses
SHOP STYLES FOR YOU
Ray-Ban | Meta smart glasses Our Style Guide Frame Advisor
SHOP BY OFFER
Designer Sale | 50% off frame + lenses* Frame + lenses starting at $99
SHOP BY LENSES
Polarized Oakley Prizm
SHOP BY our picks
Best sellers Ray-Ban Prada Oakley Sustainable styles New arrivals
view all sunglasses


40% OFF LENSES

with frame purchase

SHOP NOW

40% OFF LENSES

with frame purchase

SHOP NOW
CONTACT LENSES
Contact lenses


Need a contact lenses refill?
LOGIN TO REORDER
Complete your first contact lens purchase and you can reorder next time with
just one click.

Your last purchase



PreviousNext
 / 
REORDER NOW
Acuvue contacts
Dailies contacts
Air Optix contacts
Biofinity contacts
LensCrafters contacts
Ray-Ban contacts
Biotrue contacts
Precision 1 contacts
Ultra contacts

Shop all contact lenses
OUR PICKS View all
Acuvue Oasys® 1-Day with HydraLuxe™ Technology 90
1-Day Acuvue® Moist 90
Acuvue Oasys® for Astigmatism 6
Acuvue Oasys® 1-Day for Astigmatism 90
ACUVUE OASYS® with HYDRACLEAR® PLUS Technology 24
1-Day Acuvue® Moist for Astigmatism 90
ACUVUE OASYS® with HYDRACLEAR® PLUS Technology 12
Acuvue Oasys® 1-Day for Astigmatism 30
ACUVUE® OASYS MAX 1-Day 90
ACUVUE® VITA 12

$75 INSTANT SAVINGS

ON AN ANNUAL SUPPLY

SHOP NOW

$75 INSTANT
SAVINGS

ON AN ANNUAL SUPPLY

SHOP NOW
Need a contact lenses refill?
LOGIN TO REORDER
Complete your first contact lens purchase and you can reorder next time with
just one click.

Loading your previous order...


Your last purchase
here's your last purchase

PreviousNextREORDER NOW
 / 
LENSES
Lenses


POPULAR LENS OPTIONS
Blue-violet light filtering

Transitions®

Polarized sun
OUR BRANDED LENSES

DISCOVER ALL LENSES

Introducing the new LensCrafters Adaptive™ Progressive Lenses

Learn more

DISCOVER ALL LENSES
configure your glasses

Discover our wide range of designer
eyewear and select your favorite frame.



Add your prescription and we’ll recommend
the most suitable lens in the configurator.



Choose the lens brand and thickness,
then add any treatments you may want.



Order your glasses and enjoy thorough
aftercare both in stores and online.


SHOP EYEWEAR

TRANSITIONS®
GEN S™

SHOP NOW

TRANSITIONS®
GEN S™

SHOP NOW
BRANDS
Brands


View all brands
Armani Exchange Arnette Brooks Brothers Brunello Cucinelli Bvlgari Burberry
Chaps Coach Costa Del Mar Dolce&Gabbana Ess Emporio Armani Ferrari Gucci Giorgio
Armani Jimmy Choo LensCrafters Michael Kors Miu Miu Oakley Oakley Youth Oliver
Peoples Persol Polo Prep Polo Ralph Lauren Prada Prada Linea Rossa Ralph by
Ralph Lauren Ralph Lauren Ray-Ban Ray-Ban Jr Saint Laurent Scuderia Ferrari
Sferoflex Starck Eyes Swarovski Tiffany Tom Ford Tory Burch Versace Vogue
Eyewear Vogue Jr
Shop all brands


PRADA SPRING SUMMER
2024 COLLECTION

SHOP NOW

PRADA SPRING SUMMER 2024 COLLECTION

SHOP NOW
EYE EXAM
Eye exam


Schedule an eye exam

for you and your family

Find the LensCrafters store closest to you
SEARCH
Please insert a zip code, city or stateInvalid zip code, city or state

HERE’S SOME LIGHT READING
Vision guide Clarifye Tips From Our Experts
IN STORE QUOTATION
Did you already receive a presonalized quotation in one of our stores?
Finalize your purchase online from a selection of frames and lenses tailored to
your vision needs.
FINALIZE QUOTATION


TIPS FROM OUR EXPERTS

Learn about our wide range of vision solutions to help you see with confidence
when you drive.

WATCH THE VIDEO

TIPS FROM OUR EXPERTS

Learn about our wide range of vision solutions to help you see with confidence
when you drive.

WATCH THE VIDEO
Sync insurance
Sync Insurance

YOUR RECENT SEARCHES
Clear all

POPULAR SEARCHESPradaRay-Ban MetaOakleyCoachSwarovski
CUSTOMER SUPPORT
Book an eye exam
Contact us
Shipping & returns
FAQs
YOUR RECENT SEARCHES
Clear all

TRENDING NOW
Find frames to
suit your look
Discover our style guide

2 COLORS
Ray-Ban
Ray-Ban | Meta Wayfarer

From $299

Johnson And Johnson
Acuvue Oasys® 1-Day with HydraLuxe™ Technology 90

From $100.11




Contents (0)

View all


FAQ

View all


SUGGESTIONS
 1. Prada
 2. Michael Kors
 3. Oakley
 4. Ray-Ban Meta
 5. Giorgio Armani

Trending now

3 COLORS
Ray-Ban
RB3716 Clubmaster Metal

From $191

Lenscrafters
LensCrafters 1-Day Premium 90

From $72.24


3 COLORS
Prada
PR 24XS

From $371

Johnson And Johnson
Acuvue Oasys® 1-Day with HydraLuxe™ Technology 90

From $100.11



0
Favorites

My account

My accountMy accountLogout
My Account
Logout

Vision insuranceFind a store
0
Favorites
0
Cart

40% off lenses with frame purchase




Shop nowOther offers
×Exclusive savings for you
ONLINE & IN STORE | APPLIES DIRECTLY IN CART 40% off lenses
with frame purchase Shop Eyewear
ONLINE & IN STORE | APPLIES DIRECTLY IN CART Up to $150 off
an annual supply of contact lenses* Shop Contact Lenses
ONLINE & IN STORE | APPLIES DIRECTLY IN CART Designer Sale | 50% off
frame + lenses* Shop Designer Sale
ONLINE & IN STORE | APPLIES WITH PROMO CODE 50% off an additional pairShop
Eyewear
ONLINE & IN STORE | APPLIES WITH VISION INSURANCE Save up to 75%
with your vision insurance Apply your benefits
VIEW ALL OFFERS


SEE CLEAR ROADS AHEAD


40% OFF LENSES

with frame purchase*

Explore a wide range of lenses for all your driving needs.

SHOP EYEGLASSESSHOP SUNGLASSES

SEE CLEAR ROADS AHEAD


40% OFF LENSES

with frame purchase*

SHOP EYEGLASSESSHOP SUNGLASSES
SHOP EYEWEAR

NEW | Adaptive™ Progressive
Lenses by LensCrafters

Shop her style
Shop his style



OUR VISION FOR YOUR EYE CARE

Experience seamless website-to-store vision care, from ordering online for
in-store pick-up to easy exam bookings from any device.


A VISION OF QUALITY
AND SERVICE

Free lifetime in-store fitting and adjustments.
We’re here to help with all of your vision needs.


MAKE THE MOST OF YOUR BENEFITS

LensCrafters accepts most major vision insurance providers, both online and at
our 1000+ locations across North America.


FREE SHIPPING AND RETURNS

Enjoy free shipping on all online orders, and return any item for an exchange or
a full refund within 30 days of delivery.

Choose Responsible Shipping and we’ll ship with logistics providers using
solutions to help reduce emissions..

Shop online and collect in one of our 1000+ storesShop now
Free fitting and adjustment in storeDiscover more
We accept most insurance plans, online and in storeDiscover more
Free shipping and 30-day returns online and in storeDiscover more
Book an eye exam
for you and your family
SCHEDULE
Book an eye exam
for you and your family
SCHEDULE

emsName: X_HP_BelowHero

Shop online and collect in one
of our 1000 stores

Free fitting and adjustment
in store

We accept most insurance plans,
online and in store

Free shipping and 30-day
returns online & in store

emsName: X_HP_Products_BestSellers


LENSCRAFTERS BEST SELLERS

EYEGLASSESSUNGLASSESCONTACTS
VIEW ALL VIEW ALL VIEW ALL


4 COLORS


RAY-BAN

RB7216 New Clubmaster Optics

From $210


3 COLORS


MICHAEL KORS

MK4119U Nassau

From $175


3 COLORS


PRADA

PR A16V

From $489


3 COLORS


OAKLEY

OX8054 Dehaven

From $228


3 COLORS


VERSACE

VE1274

From $298


2 COLORS


RAY-BAN

RB2210V Optics

From $178


2 COLORS


COACH

HC6241D

From $198


3 COLORS


JIMMY CHOO

JC3008

From $320

12345


5 COLORS


PRADA

PR 17WS

From $517


2 COLORS


RAY-BAN

RB4430 Zena Bio-Based

From $151


3 COLORS


BURBERRY

BE4432U

From $281


2 COLORS


OAKLEY

OO9403 Sphaera™️

From $281


2 COLORS


PRADA

PR A22S

From $405


2 COLORS


RAY-BAN

RB2210

From $168


2 COLORS


VERSACE

VE4466U

From $305


3 COLORS


SCUDERIA FERRARI

FZ6002U

From $105

12345



ALCON

Total30® Multifocal 6

From $111.24


ALCON

Total30® 6

From $56.24


ALCON

Total30® Toric 6

From $71.24


ALCON

Total30® 12

From $108.49


JOHNSON AND JOHNSON

Acuvue Oasys® 1-Day with HydraLuxe™ Technology 90

From $100.11


JOHNSON AND JOHNSON

1-Day Acuvue® Moist 90

From $84.49


COOPERVISION

Biofinity Energys 6

From $68.99


ALCON

DAILIES TOTAL1® 90

From $110.24

12345


emsName: X_HP_Lenses


YOUR STYLE, YOUR WAY

Looking for the perfect frame but not sure where to start? Browse a selection of
styles by shape, color and fit to suit your look.


OUR STYLE GUIDE


FRAME ADVISOR


VIRTUAL TRY ON


PURRFECTION


BLACK TO BASICS


OUR STYLE GUIDE


FRAME ADVISOR


VIRTUAL TRY ON


PURRFECTION


BLACK TO BASICS

NEW | ONLY AT LENSCRAFTERS


LENSCRAFTERS ADAPTIVE™
PROGRESSIVE LENSES

Introducing the new, exclusive Adaptive™ Progressive lenses by
LensCrafters. Crafted just for you by those who know your eyes.

DISCOVER MORE



BRING YOUR VISION TO LIFE

Express your personality with our selection of
colorful frames

DISCOVER MORE


SMART GLASSES FOR LIVING ALL IN

With next-generation Ray-Ban Meta smart glasses, capture and livestream your
point of view, enjoy hands-free connection, listen to music and ask questions
with Meta AI.

Visit us in store to experience the latest wearable technology. Find a store

SHOP RAY-BAN | META
SHOP NOW
Protect your vision
with an eye exam


PROTECT YOUR VISION WITH AN EYE EXAM

We're committed to transforming vision care and offering you a complete eye care
journey from start to finish. Our expert doctors are at your disposal, and
booking an exam is quick and easy both online or in store.

Schedule your eye exam
A treat for your eyes
with our brands and lenses


A TREAT FOR YOUR EYES WITH OUR BRANDS AND LENSES

Knowing your eyes is important. For this reason, we firmly believe in innovative
lens technology and high-quality frames. Discover our wide selection of
prescription lenses, designer brands and top-selling contacts.

Introducing the new, exclusive Adaptive™ Progressive Lenses by LensCrafters.

Learn more
Our lensesOur brands
At your service, online
and in our 1000+ stores


AT YOUR SERVICE, ONLINE AND IN OUR 1000+ STORES

Your vision is our priority. That's why, in more than 1000 stores, we make sure
all your vision needs are taken care of, from ordering online and picking up in
store to complimentary cleaning, fitting and adjusting.

Discover our services


SHARON STONE X LENSCRAFTERS

Shop her style

emsName: X_HP_Journey



emsName: X_HP_SEO_Text

Discover the new collections
Ray-BanRB6518 OpticsFrom $235.0
BurberryBE2403From $338.0
PradaPR 17WSFrom $517.0
Discover new collection from your favorite designer eyewear brands.

Discover all brands Learn more about the latest technological innovations for
eyeglasses and sunglasses, such as blue-violet light filtering,

Blue Light filtration helps reduce exposure to blue light from natural sources
and digital screens.

Discover more anti-reflective, and polarized lenses.

emsName: X_HP_Exclusive

- only at LENSCRAFTERS -


SPRING / SUMMER 2024 EYEWEAR
COLLECTION

The new Prada Symbole optical style is all about sophisticated elegance through
bold volumes and faceted profiles. Available exclusively at LensCrafters.

Caramel Tortoise
Shop now
Shop Prada
Prada 8056262144671 From 461.00
Coming back soon This frame is in
high demand
;

emsName: X_HP_Insurance





emsName: X_HP_Products_GVP


FRAME + LENSES STARTING AT $99

EYEGLASSESSUNGLASSES
VIEW ALL VIEW ALL


3 COLORS


ARMANI EXCHANGE

AX3077

From $240.03999


3 COLORS


SFEROFLEX

SF1149

From $200.83999


3 COLORS


ARMANI EXCHANGE

AX1017

From $240.03999


4 COLORS


LENSCRAFTERS

EC2002

From $214.83999


2 COLORS


ARMANI EXCHANGE

AX1034

From $249.13999


2 COLORS


ARMANI EXCHANGE

AX1064

From $315.79998


1 COLOR


ARMANI EXCHANGE

AX1015

From $240.03999


3 COLORS


ARMANI EXCHANGE

AX3016

From $235.13999

12345


2 COLORS


SFEROFLEX

SF5006S

From $262.33999


1 COLOR


SFEROFLEX

SF5011S

From $262.33999


2 COLORS


SFEROFLEX

SF5501S

From $262.33999


2 COLORS


SFEROFLEX

SF5503S

From $262.33999


1 COLOR


ARMANI EXCHANGE

AX4070S

From $270.33999


3 COLORS


SFEROFLEX

SF5005S

From $262.33999


2 COLORS


SFEROFLEX

SF5506S

From $263.33999


2 COLORS


SFEROFLEX

SF5002S

From $262.33999

12345


emsName: X_HP_OurDoctors


HAVE QUESTIONS
ABOUT EYE CARE?

We've got you covered! Discover our complete guide to eye health and eyewear,
and find out more about the craftsmanship behind our frames.

DISCOVER OUR VISION GUIDE


MEET THE EXPERTS

At LensCrafters, our eye doctors and store managers are on hand to provide you
with expert advice to help you see and look your best every day. From vision
insurance and prescription lenses to answering questions about eyecare, our
experts have all your needs covered.

You can also read more on these topics in our vision guide.

find a doctor Tips From Our Experts



RESPONSIBLE SHIPPING

When it comes to getting your online orders to you, we’re proud to offer a
carbon-neutral option through Responsible Shipping. Ground transport produces
significantly fewer emissions than air transport, and any emissions that are
created are offset through climate protection projects such as reforestation,
renewable energy, waste disposal, wind power, and more. Discover more about our
sustainability initiatives and learn about Responsible Shipping at our Shipping
& Returns page.






emsName: X_HP_JS



emsName: X_Footer_Subscribe

Subscribe
SIGN UP
Thank you for signing up for emails!
By signing up, you certify that you are 18 years or older.



Check your insurance eligibility
Your plan is in-network
We accept most major insurance plans. Simply search for yours from the panel
below. Learn more about insurance
We accept most major insurance plans. Simply search for yours from the panel
below. Learn more about insurance
Step 1/2 Select your carrier
Step 2/2 Follow the next steps

No match found.

Your insurance might be out of network, check information below.


Select or type your insurance carrier*
Insurance provider cannot be empty.

Your insurance is in-network! Fill in your details to add your benefits and
start shopping.

First Name*
Please insert your first name Please enter a valid first name
Last Name*
Please insert your last name Please enter a valid last name
Date of birth* Please insert your date of birth Please enter a valid date of
birth
June
2024
SMTWTFS
262728293031 123456789101112131415161718192021222324252627282930 123456
JanFebMarAprMayJuneJulyAugSepOctNovDec
1920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947
1948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975
1976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003
200420052006200720082009201020112012201320142015201620172018201920202021202220232024
 * 1
 * 2
 * 3
 * 4

Zip Code*
Please insert your zip code Please enter a valid zip code
I certify that my use of this service abides by the Luxottica Retail HIPAA &
Privacy Policies

To proceed, tick the box above to certify you're 18 years or older. If you're
not, you cannot proceed with this step.
Apply insurance
1

2

3

Shop now
Plan your visit
We also accept out-of-network plans
If your plan is not in-network, you can submit a claim form directly to your
insurance carrier and receive a reimbursement after purchase. Download Form
Give us a call at
1-877-753-6727

Chat with Us
Check out our
FAQs
For your security, your personal benefits information is only available during
your session and will be erased when you close the browser.
Success! We found you
See below for your available benefits.
Frames+ Lenses

Benefit unavailable:



Good news, you can still save!

Get 40% off prescription glasses or 20% off frame only applied automatically at
checkout.

Having issues? Use these promo codes

40% off prescription glasses



20% off frame only


Lenses

Benefit unavailable:



Contact lenses

Benefit unavailable:



Eye exam

Benefit unavailable:



Shop eyewear Shop contact lenses
Remove insurance benefits
For your security, your personal benefits information is only available during
your session and will be erased when you close the browser.

HELP?

BRANDS

BRANDS

 * Ray-Ban
 * Oakley
 * Versace
 * Coach
 * Michael Kors
 * Prada
 * View all Brands



EYECARE

EYECARE

 * Our Lenses
 * Schedule an Eye Exam
 * Vision Guide
 * Eyewear Glossary
 * Measuring your PD
 * Tips From Our Experts
 * Blue-Violet Light Glasses
 * 
 * 



SAVINGS

SAVINGS

 * Offers & Discount
 * Insurance
 * FSA & HSA
 * LensCrafters credit card
 * 
 * 
 * 



CUSTOMER SERVICE

CUSTOMER SERVICE

 * Frame Advisor
 * Personalized services
 * Purchase Care
 * Online Order Status
 * Shipping & Returns
 * FAQs
 * Live chat
 * Contact us



LEGAL

LEGAL

 * Privacy Policy
 * Terms & Conditions
 * Notice of Financial Incentive
 * Independent Doctor's Notice
 * AdChoices
 * 
 * Your Privacy Choices
 * California Collection Notice
 * Cookie Policy
 * Consumer Health Data Privacy Policy
 * Notice of Privacy Practices



COMPANY INFO

COMPANY INFO

 * About us
 * Accessibility
 * Our Flagship Stores
 * Careers
 * Find a Store
 * Site Map


UNITED STATES (English)
 * UNITED STATES (English)
 * UNITED STATES (Español)
 * CANADA (English)
 * CANADA (Française)


We guarantee every transaction is 100% secure
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 
 * 

Buy now, pay later with Klarna, Affirm or Afterpay. 
Learn More




© 2024 LensCrafters All Rights Reserved


Other sites of the Group
DISCOVER OTHER BRANDS FROM LUXOTTICA
Ray-Ban Oakley Persol Oliver Peoples Vogue Eyewear Sunglass Hut Target Optical
Glasses.com Contacts Direct EssilorLuxottica Eyebuydirect




Luxottica of America and our third-party partners use cookies, script code, and
other technologies to collect data, monitor your interactions on our site,
and/or advertise to you.

By clicking "Accept All Cookies", you consent to such use.

For more information see our Privacy Policy and Terms of Use.

To manage your selections, please see our Cookie Manager.

Accept all cookies Reject
Manage my preferences