@keyframes hvr-wobble-horizontal {
    16.65% {
        -webkit-transform: translateX(8px);
        transform: translateX(8px);
    }
    33.3% {
        -webkit-transform: translateX(-6px);
        transform: translateX(-6px);
    }
    49.95% {
        -webkit-transform: translateX(4px);
        transform: translateX(4px);
    }
    66.6% {
        -webkit-transform: translateX(-2px);
        transform: translateX(-2px);
    }
    83.25% {
        -webkit-transform: translateX(1px);
        transform: translateX(1px);
    }
    100% {
        -webkit-transform: translateX(0);
        transform: translateX(0);
    }
}
.hvr-wobble-horizontal {
    display: inline-block;
    vertical-align: middle;
    -webkit-transform: perspective(1px) translateZ(0);
    transform: perspective(1px) translateZ(0);
    box-shadow: 0 0 1px rgba(0, 0, 0, 0);
}
.hvr-wobble-horizontal.active {
    -webkit-animation-name: hvr-wobble-horizontal;
    animation-name: hvr-wobble-horizontal;
    -webkit-animation-duration: 1s;
    animation-duration: 1s;
    -webkit-animation-timing-function: ease-in-out;
    animation-timing-function: ease-in-out;
    -webkit-animation-iteration-count: 1;
    animation-iteration-count: 1;
}

.opt-in-overlay {
    position: relative;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    background: rgb(14, 37, 61);
    z-index: 1;
    cursor: pointer;
    flex-wrap: wrap;
    padding: 30px 10px 30px;
    margin-top: -66px;
    opacity: .85;
}
.opt-in-overlay p {
    width: 100%;
    text-align: center;
    color: white;
}
.opt-in-overlay a {
    text-decoration: underline;
}
.opt-in-overlay .confirm-google-maps {
    margin-top: 20px;
}
.findNearByInputFieldWrap.disabled {
    pointer-events: none;
}

.content > .widthContainer-full > div.mapContainer {
    overflow: hidden;
    margin: 0;
    padding: 0;
    background: #fff !important;
    position: relative;
    color: #000 !important;
}

/* First Search Layer*/
.searchFieldsWrap {
    display: block;
    overflow: hidden;
}

.mapFindNearByWrap {
    background: hsla(0, 0%, 50%, 1);
    color: #fff;
    padding: 10px;
}
.findNearByInputFieldWrap,
.mapFindNearByFilter {
    max-width: 1280px;
    margin: 0 auto;
    width: 100%;
    text-align: center;
    display: flex;
    justify-content: center;
}
.findNearByInputFieldWrap label {
    text-transform: uppercase;
    font-weight: bold;
    font-size: 1.15em;
    padding-right: 10px;
    align-self: center;
}
.findNearByInputFieldWrap input[type=submit].transparent,
.findNearByInputFieldWrap button.transparent{
    background: #fff;
    color: hsla(198, 11%, 24%, 1);
    padding: 8px 15px;
    margin: 0 2px;
    border: 2px solid #fff;
    float: left;
    display: block;
}

.mapFindNearby {
    outline: none;
    box-sizing: border-box;
    padding: 8px 15px;
    background: #fff;
    color: #000;
    width: 250px;
    margin: 0 2px;
    border: 2px solid #fff;
    display: block;
    float: left;
    height: 45px;
}

/* Second Search Layer */
.mapfindNearByFilterOuterWrap {
    background: hsla(0, 0%, 90%, 1);
}
.mapFindNearByFilter {
    display: flex;
    justify-content: center;
}
.mapFindNearByFilter .select {
    position: relative;
    width: 350px;
    display: block;
    float: left;
    height: 50px;
}
.mapFindNearByFilter .select.distance {
    width: 175px;
}
.mapCategoryFilter,
.mapFindNearbyDistance,
.mapAttributeFilter {
    position: absolute;
    margin: 0 !important;
    background: hsla(0, 0%, 94%, 1);
    z-index: 25;
    top: 50px;
    width: 100%;
}
.mapCategoryFilter li,
.mapAttributeFilter li,
.mapFindNearbyDistance li {
    display: block;
    padding: 10px 35px 5px;
    cursor: pointer;
    list-style: none !important;
}

.mapFindNearByFilter .select > span {
    display: block;
    width: 100%;
    text-align: center;
    padding: 12px;
    position: relative;
    cursor: pointer;
}
.mapFindNearByFilter .select > span:after {
    content: '';
    display: block;
    width: 12px;
    height: 12px;
    position: absolute;
    right: 15px;
    top: 15px;
    transform: rotate(-45deg);
    border-bottom: 1px solid;
    border-left: 1px solid;
    z-index: 50;
}
.mapFindNearByFilter .select > span.open:after {
    transform: rotate(135deg);
    top: 20px;
}
.mapFindNearByFilter .select ul.closed li {
    display: none;
}
.mapFindNearByFilter .select ul li.selected {
    font-weight: bold;
}
.mapFindNearByFilter .select ul.closed li.selected {
    display: block;
    position: absolute;
    top: -50px;
    width: 100%;
    background: hsla(0, 0%, 90%, 1);
}
.mapFindNearByFilter .select ul.closed li.selected:after {
    border: none;
}
.usergeoCodePos{
    display: none;
}

.mapFindNearByResultList {
    max-width: 1280px;
    margin: 0 auto;
    width: 100%;
    position: relative;
}

.mapFindNearByResultList .lSAction > a.lSPrev,
.mapFindNearByResultList .lSAction > a.lSNext {
    width: 20px;
    height: 20px;
    margin-top: -10px;
    left: 10px;
}
.mapFindNearByResultList .lSAction > a.lSNext {
    left: auto;
    right: 10px;
}
/* all */
.mapFindNearby::-webkit-input-placeholder { color:#706F6F; }
.mapFindNearby::-moz-placeholder { color:#706F6F; } /* firefox 19+ */
.mapFindNearby:-ms-input-placeholder { color:#706F6F; } /* ie */
.mapFindNearby:-moz-placeholder { color:#706F6F; }

.mapFindNearby.error {
    border-color: red !important;
}

label.mapFindNearbyDistance {
    display: inline-block;
    width: 90px;
    padding: 0;
    margin: 0;
}
select.mapFindNearbyDistance {
    float: none;
    width: 100%;
    clear: both;
    margin: 15px 0;
}
.findNearbyButtons {
    clear: both;
    overflow: hidden;
}

.findNearbyButtons button {
    display: block;
    width: 50%;
    background: #fff;
    border: 0;
    text-transform: uppercase;
    font-size: 25px;
    padding: 10px;
    float: left;
}
.findNearbyButtons button[type="reset"] {
    border-right: 0;
}
.mapAddressesWrap ul {
    list-style: none;
    margin: 0 !important;
    padding: 0;
    box-sizing: border-box;
}
.infoBoxWrap,
.infoWindowWrap {
    text-align: center;
}
.infoBoxWrap .address,
.infoWindowWrap .address {
    padding: 5px 0;
}

/* used for the whole list and single li elements */
.mapAddressesWrap .hidden {
    display: none;
}
.mapAddressList li {
    cursor: pointer;
    overflow: hidden;
    padding: 15px;
    line-height: 1.25em;
    font-size: 14px;
    box-sizing: border-box;
    list-style: none !important;
    text-align: center;
}
li.vcard:nth-child(odd) {
    background:  hsla(0, 0%, 98%, 1);
}

.mapAddressList li.vcard .contacts {
    display: none;
}

.infoBoxWrap,
.infoWindowWrap {
    /*more space for the logo*/
    margin: 15px;
    min-width: 200px;
}
.infoBoxWrap .images,
.infoWindowWrap .images {
    width: 200px;
    margin: 0 auto;
    border-bottom: 1px solid #000;
    padding-bottom: 8px;
    margin-bottom: 25px;
}
.infoBoxWrap img,
.infoWindowWrap img {
    width: 100%;
    text-align: center;
}
.infoBoxWrap .infoText,
.infoWindowWrap .infoText {
    margin-top: 10px;
    clear: both;
    display: block;
}
.infoBoxWrap .infoText a,
.infoWindowWrap .infoText a {
    color: #85744D;
}
.mapContainer div[style*="border-top-width: 24px"] {
    display: none;
}

.mapAddressList {
    display: flex;
    align-items: stretch;
    margin: 0;
}
.mapAddressList .vcard {
    display: flex;
    flex-wrap: wrap;
}
strong.org.fn {
    display: block;
    line-height: 1.3em;
    font-size: 1em;
    font-weight: bold;
    width: 100%;
    align-self: flex-start;
    font-family: prometo, sans-serif;
}

.vcard .address {
    display: block;
    padding: 8px 0;
    align-self: center;
    width: 100%;
}
.vcard .contacts {
    align-self: baseline;
    width: 100%;
    display: block;
}
.vcard .distanceToTarget {
    text-align: center;
    font-weight: bold;
    display: block;
    align-self: flex-end;
    width: 100%;
}
.vcard a {
    color: #85744D;
}
.vcard .phone,
.vcard a,
.contacts a,
.contacts .phone {
    display: block;
    padding: 2px 0 20px;
}


.gm-style .gm-style-iw {
    left: 22px !important;
}

/*
alternative layout: "floating" addresses over the map
*/
.mapContainer.overlayAddressesRight {
    position: relative;
}
.mapContainer.overlayAddressesRight .mapAddressesWrap {
    position: absolute;
    width: 300px;

    background: rgb(248, 248, 248); /* Fallback */
    background-color: rgba(248, 248, 248, 0.95);

    right: 10px;
    top: 60px;
    bottom: 30px;
    float: none;
    height: auto;
    padding: 10px;
    z-index: 25;
}

/*directions need more width to display*/
.mapContainer.overlayAddressesRight .mapAddressesWrap.directionsActive {
    width: 360px;
}


/****************
* Route Planner
*****************/
.mapRoutes {
    display: none;
    position: relative;
    clear: both;
}
.mapRoutes form {
    border: 1px solid;
    padding: 15px;
    overflow: hidden;
}
.mapRoutes label {
    display: block;
    overflow: hidden;
    padding-bottom: 10px;
    position: relative;
}
.calculateRouteLink,
.calculateRoute > button,
.closeRoute > button,

a.calculateRoute a.calculateRouteLink {
    display: none !important;
}

.mapNoAddresses {
    padding: 15px;
    border: 1px solid #000;
}

.waypoint {
    outline: none;
    -moz-appearance: none;
    width: 90%;
    float: right;
    box-sizing: border-box;
    padding: 7px;
}
.routingPanel {
    text-align: center;
}
.routingPanel .adp{
    border: 1px solid;
    margin-top: 15px;
}

.adp, .adp table {
    color: #2C2C2C;
    margin: 0 auto;
    width: 100%;
    max-width: 1000px;
}

.adp-placemark {
    margin: 0;
}
.adp-marker {
    height: 30px !important;
    width: auto !important;
    margin-right: 10px;
    padding: 5px 10px;
}
.adp-step, .adp-text {
    vertical-align: middle;
}
.adp-directions td {
    font-size: 11px;
    line-height: 14px;
}
.mapRoutes .calculateRoute,
.mapRoutes .closeRoute {
    width: 50%;
    float: left;
    border-right: 7px solid #fff;
    box-sizing: border-box;
    text-align: center;
}
.mapRoutes .closeRoute {
    border-left: 7px solid #fff;
    border-right: 0;
}
.adp-details, .adp-legal {
    color: #676767;
    font-size: 11px;
}
.usergeoCodePos {
    position: absolute;
    width: 25px;
    top: 10px;
    cursor: pointer;
    left: 10px;
}
.usergeoCodePos.waypoint1 {
    right: 90%;
    left: auto;
    top: 5px;
    margin-right: 10px;
}
.detectingLocation {
    position: absolute;
    background: #ddd;
    left: 50%;
    top: 155px;
    width: 480px;
    text-align: center;
    padding: 20px 20px;
    margin-left: -240px;
    z-index: 999;
}
.mapFindNearByWrap .detectingLocation {
    top: 200px;
}
.mapFindNearByWrap .detectingLocation.locErr {
    top: 100px;
    z-index: 99;
    width: 350px;
    padding: 45px;
    background: #E30613;
    margin-left: -175px;
}
.map > ul {
    display: none;
}
.infoWindowWrap .buttonStyles:after  {
    display: none;
}
.map {
    width: 100%;
}

.infoBoxWrap a {
    color: #85744D;
}
.infoWindowWrap .buttonStyles {
    padding: 4px;
    font-weight: bold;
}

.vcard .category {
    display: flex;
    font-size: 38px;
    text-align: center;
    justify-content: center;
    width: 100%;
}
.vcard .category > span{
    padding: 0 10px;
    position: relative;
}

[class^="category-icon-"], [class*=" category-icon-"],
[class^="category-icon-"]:before, [class*=" category-icon-"]:before {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;

    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.category-icon-3:before,
.category-icon-1:before,
.icon-Roller:before {
    content: "\e907";
    color: #7D7D7D;
}

.category-icon-2:before,
.icon-Bikes:before {
    content: "\e904";
    color: #7D7D7D;
}
.category-icon-5:before,
.category-icon-7:before,
.icon-QuadATVUTV:before {
    content: "\e906";
    color: #7D7D7D;
}
.category-icon-6:before,
.icon-QuadATV:before {
    content: "\e905";
    color: #7D7D7D;
}
/* Premium Dealer */
.category-icon-3:before,
.category-icon-7:before {
    color: #DCB950;
}
.vcard .category .tooltip {
    display: none;
    font-size: 10px;
    background: #fff;
    position: absolute;
    bottom: 40px;
    width: 130px;
    left: 50%;
    border: 1px solid #dfdfdf;
    padding: 6px;
    margin-left: -65px;
}
.vcard .category > span:hover .tooltip {
    display: block;
}

.vcard .category .tooltip:after {
    content: '';
    width: 10px;
    height: 10px;
    transform: rotate(45deg);
    position: absolute;
    left: 50%;
    margin-left: -6px;
    bottom: -6px;
    background: #fff;
    z-index: 0;
    border-left: 1px solid #fff;
    border-right: 1px solid #dfdfdf;
    border-bottom: 1px solid #dfdfdf;
    border-top: 1px solid #fff;
}

@media only screen
and (max-width : 768px) {
    .findNearByInputFieldWrap {
        display: block;
        overflow: hidden;
    }
    .findNearByInputFieldWrap label {
        padding-right: 0;
        padding-top: 8px;
        display: block;
    }
    .searchFieldsWrap {
        display: flex;
        padding: 0;
        justify-content: center;
    }

    .mapFindNearByResultList .lSAction > a.lSPrev,
    .mapFindNearByResultList .lSAction > a.lSNext {
        width: 20px;
        height: 20px;
        margin-top: -10px;
        left: 20px;
    }
    .mapFindNearByResultList .lSAction > a.lSNext {
        left: auto;
        right: 30px;
    }
}

@media only screen
and (max-width : 425px) {
    .mapFindNearByFilter {
        display: block;
        overflow: hidden;
    }
    .mapFindNearby {
        width: 140px;
        padding: 9px 15px;
    }
    .findNearByInputFieldWrap input[type=submit].transparent,
    .findNearByInputFieldWrap button.transparent {
    }

}

.select.category {
    display: none !important;
}

.mapFindNearby:hover,
.mapFindNearby:focus,
.mapFindNearby {
    -moz-appearance: textfield;
    appearance: textfield;
}

.mapFindNearby::-webkit-outer-spin-button,
.mapFindNearby::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
