@font-face {
    font-family: icons;
    src: url(../fonts/icons/icons.woff2?abw49b) format("woff2")
}

.rim-icon {
    font-family: icons !important;
    font-style: normal;
    font-variant: normal;
    font-weight: 400;
    line-height: 1;
    text-transform: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}


@font-face {
    font-family: icomoon;
    src: url(../fonts/icomoon.woff2?abw51b) format("woff2")
}

.rim-icon-weibo:before {
    color: inherit
}

.rim-icon-store-prefered {
    color: #fff;
    margin-right: -3px
}



.rim-icon-store-prefered--selected {
    color: #000;
    margin-right: 0
}



.rim-icon-toggle-display {
    display: inline-block;
    font-size: 25px;
    height: 25px;
    text-align: center;
    width: 25px
}

.rim-icon-toggle-display[data-state-toggle=open] {
    transform: rotate(180deg)
}




.rim-icon-quoteDown:before,
.rim-icon-quoteUp:before {
    color: #fff
}


.rim-icon-Bag:before {
    color: #fff
}


.u-rotate-45 {
    rotate: 45deg
}

.storelocator-container {
    display: flex;
    flex-direction: column
}

@media screen and (min-width:1024px) {
    .storelocator-container {
        flex-direction: row;
        overflow: hidden
    }

    .storelocator-holder,
    .storelocator-map {
        width: 50%
    }
}

.storelocator-holder-inner,
.storelocator-map-inner {
    position: relative
}

.storelocator #map {
    height: calc(100vh - var(--header-main-height) - var(--header-mainmenu-height));
    width: 50vw
}

@media screen and (min-width:1024px)and (max-width:1359px) {
    .storelocator #map {
        height: 110vh
    }
}

.storelocator-holder {
    display: flex;
    flex-direction: column;
    height: calc(100vh - var(--header-main-height) - var(--header-mainmenu-height))
}

@media screen and (min-width:1024px)and (max-width:1359px) {
    .storelocator-holder {
        height: 110vh
    }
}

.storelocator-content {
    padding: 20px 20px 0
}

.storelocator-filters-popin .storelocator-content {
    padding: 20px 0
}

.storelocator-filters {
    border-top: 1px solid #f6f4f2;
    padding: 0 20px
}

.storelocator-filters:first-child {
    border-top: none
}

.storelocator-title {
    color: #0d0900;
    font-size: 24px;
    letter-spacing: 1.44px;
    line-height: 28px;
    margin: 0 0 20px
}

.storelocator-search-holder {
    position: relative
}

.storelocator-search-input input[type=text] {
    padding: 0 45px
}

.storelocator-search-around,
.storelocator-search-submit {
    background: #fff;
    font-size: 16px;
    height: 25px;
    left: 10px;
    line-height: 25px;
    padding: 0;
    position: absolute;
    text-align: center;
    top: 11px;
    width: 25px
}

.storelocator-search-around {
    font-size: 18px;
    left: auto;
    right: 8px;
    top: 13px
}

.storelocator-search-open {
    border-bottom: 1px solid #ececec;
    display: flex;
    justify-content: space-between;
    width: 100%
}

.storelocator-search-open .cta-btn,
.storelocator-search-open>button {
    background-color: #fff;
    color: #0d0900;
    font-size: 14px;
    line-height: 21px;
    margin-left: 12px;
    margin-top: 20px;
    padding: 10px 16px 10px 35px;
    position: relative
}

.storelocator-search-open .cta-btn>i,
.storelocator-search-open>button>i {
    font-size: 27px;
    left: 0;
    position: absolute;
    top: 6px
}

.storelocator-search-open .cta-btn>span,
.storelocator-search-open>button>span {
    color: #6f6f6f
}

.storelocator-search-open .cta-btn>span:before,
.storelocator-search-open>button>span:before {
    content: "("
}

.storelocator-search-open .cta-btn>span:after,
.storelocator-search-open>button>span:after {
    content: ")"
}

.storelocator-search-selected {
    height: auto;
    margin: 0;
    overflow-x: auto;
    padding: 0;
    white-space: nowrap;
    width: 100%
}

.storelocator-search-selected>li {
    display: inline-block;
    margin: 12px 8px 12px 0
}

.storelocator-search-selected>li>button {
    background: #f7f7f7;
    border: 8px solid #f7f7f7;
    border-radius: 34px;
    color: #0d0900;
    font-size: 14px;
    line-height: 20px;
    padding-right: 28px;
    position: relative;
    white-space: nowrap
}

.storelocator-search-selected>li>button>.rim-icon {
    font-size: 20px;
    position: absolute;
    right: 4px
}

.storelocator-search-selected>li>button:hover {
    background: #ececec;
    border-color: #ececec
}

.storelocator-search-selected>li>button.remove-all {
    background: #fff;
    border-width: 1px;
    padding: 8px 12px
}

.storelocator-search-selected>li>button.remove-all>.rim-icon {
    display: none
}

.storelocator-search-selected>li>button.remove-all:hover {
    background: #fff
}

.storelocator-search-selected>li.remove-all-filters {
    display: none
}

.container .storelocator-search-selected>li+li {
    display: inline-block
}

.storelocator-search-stores {
    padding: 10px;
    position: relative
}

.storelocator-search-error {
    color: #b50000;
    display: none;
    font-size: 14px;
    line-height: 20px;
    margin-top: 8px
}

.storelocator-filters-popin {
    background-color: #fff;
    border-top: 1px solid #f7f5f4;
    bottom: 0;
    box-sizing: border-box;
    height: var(--sidebar-panel-height);
    padding: 16px 0 0;
    position: fixed;
    right: -100%;
    top: var(--sidebar-panel-top);
    transition: right .5s ease-in-out;
    width: 100%;
    z-index: 101
}

@media screen and (min-width:1024px) {
    .storelocator-filters-popin {
        right: -440px;
        width: 400px
    }
}

.storelocator-filters-popin.full-visible {
    height: 100dvh;
    top: 0
}

.storelocator-filters-show {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    right: 0
}

@media screen and (min-width:1024px) {
    .storelocator-filters-show {
        overflow: hidden;
        width: 400px
    }
}

.storelocator-filters-content {
    flex-grow: 1;
    overflow-y: auto
}

.storelocator-filters-content-btn {
    border-top: 1px solid #ececec;
    display: grid;
    gap: 8px;
    grid-auto-columns: 1fr;
    grid-auto-flow: column;
    padding: 16px 20px
}

.storelocator-filters-header {
    border-bottom: 1px solid #ececec;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    padding: 0 20px
}

.storelocator-filters-title {
    color: #0d0900;
    font-size: 20px;
    line-height: 30px;
    margin: 0 0 16px
}

.storelocator-filters-close {
    background: #fff;
    border: none;
    height: 30px;
    margin-top: 5px;
    position: relative;
    width: 30px
}

.storelocator-filters-close:after,
.storelocator-filters-close:before {
    background-color: #000;
    content: " ";
    height: 20px;
    position: absolute;
    top: 0;
    transform: rotate(45deg);
    width: 2px
}

.storelocator-filters-close:after {
    transform: rotate(-45deg)
}

.storelocator-filters .form-row {
    padding-bottom: 16px
}

.storelocator-filters .form-field {
    padding: 10px 0
}

.storelocator-filters .form-field-titles {
    color: #0d0900;
    font-size: 12px;
    letter-spacing: 3px;
    line-height: 16px;
    padding: 24px 0;
    text-transform: uppercase
}

.storelocator-overlay {
    background: #000000c2;
    display: none;
    height: var(--sidebar-panel-height);
    left: 0;
    position: fixed;
    right: 0;
    top: var(--sidebar-panel-top);
    z-index: 100
}

.storelocator-overlay.full-visible {
    height: 100dvh;
    top: 0
}

.storelocator-list-btn,
.storelocator-map-btn {
    display: none
}

@media screen and (max-width:1023px) {
    .storelocator-map {
        position: absolute;
        z-index: -1
    }

    .storelocator #map {
        height: calc(100vh - var(--header-main-height) - var(--header-mainmenu-height) - 317px);
        min-height: 500px;
        width: 100vw
    }

    .storelocator-list-btn,
    .storelocator-map-btn {
        background: #fff;
        border: 1px solid #ececec;
        border-radius: 4px;
        color: #0d0900;
        display: block;
        font-size: 14px;
        line-height: 21px;
        padding: 10px 16px 10px 40px;
        position: absolute;
        right: 20px;
        top: 20px
    }

    .storelocator-list-btn>.rim-icon,
    .storelocator-map-btn>.rim-icon {
        font-size: 20px;
        left: 12px;
        position: absolute
    }

    .storelocator-list-btn,
    .storelocator.show-list .storelocator-map-btn,
    .storelocator.show-list .storelocator-stores {
        display: none
    }

    .storelocator.show-list .storelocator-list-btn {
        display: block
    }

    .storelocator.show-list .storelocator-map {
        overflow: hidden;
        position: relative;
        z-index: 0
    }

    .storelocator.show-list .storelocator-holder {
        height: auto
    }
}

.store-locator .pac-item .pac-icon-marker {
    margin-left: 11px;
    margin-right: 14px
}

.store-locator .tangram-suggestion-main .route-icon {
    margin-left: 7px;
    padding-left: 26px
}

.storelocator-map-infoWindow {
    background: #fff;
    border-radius: 28px 28px 0 0;
    bottom: 0;
    box-sizing: border-box;
    left: 0;
    padding: 28px 20px 16px;
    position: absolute;
    transform: translateY(100%);
    transition: transform .5s ease-in-out;
    width: 100%;
    z-index: 100
}

.storelocator-map-infoWindow .storedetail {
    display: none
}

@media screen and (min-width:1024px) {
    .storelocator-map-infoWindow {
        display: none
    }
}

.storelocator-map-infoWindow.show {
    transform: translateY(0)
}

.storelocator-map-infoWindow .storedetail-address-block {
    font-style: normal
}

.storelocator-map-infoWindow .storedetail-address-block>span:after {
    content: ", "
}

.storelocator-map-infoWindow .ccContainer__store__info--horaire-days>button+ul {
    display: flex;
    margin: 0;
    max-height: 0;
    overflow: hidden;
    padding: 0;
    transition: max-height .15s ease-out
}

.storelocator-map-infoWindow .ccContainer__store__info--horaire-days>button.shown+ul {
    max-height: 500px;
    transition: max-height .25s ease-in
}

.storelocator-map-infoWindow .infoWindow-resizable {
    background: none;
    display: flex;
    height: 55px;
    justify-content: center;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%
}

.storelocator-map-infoWindow .infoWindow-resizable__icon {
    background-color: #ccc;
    border-radius: 100px;
    display: inline-block;
    height: 4px;
    margin-top: 8px;
    width: 30px
}

#map div[role=button]:focus-visible {
    outline: 1px auto -webkit-focus-ring-color;
    outline-color: -webkit-focus-ring-color;
    outline-offset: 3px;
    outline-width: 2px
}

footer #map div[role=button]:focus-visible {
    outline-color: #fff
}

.storedetail-address-block {
    display: flex;
    flex-direction: column;
    font-style: normal;
    gap: 8px;
    margin-bottom: 8px
}

.storedetail-address-line>span:not(:last-of-type):after {
    content: ", "
}

.distance {
    color: #000;
    font-size: 12px;
    line-height: 21px;
    margin-left: 8px
}

.storecard-hours .ccContainer__store__info--horaire-days,
.storedetail-hours .ccContainer__store__info--horaire-days {
    margin-top: 0
}

.storecard-hours .store-hours-btn,
.storedetail-hours .store-hours-btn {
    margin-bottom: 8px
}

.storecard-hours ul[class^=day-],
.storedetail-hours ul[class^=day-] {
    list-style: none;
    margin: 0;
    padding: 0
}

.storedetail .storedetail-header {
    position: relative
}

.storedetail .storedetail-header-top {
    align-items: center;
    box-sizing: border-box;
    display: flex;
    flex-direction: column-reverse;
    padding: 12px 60px;
    text-align: center;
    width: 100%
}

.storedetail .storedetail-header .heading-h1 {
    color: #000;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5;
    margin: 0
}

@media screen and (min-width:1024px) {
    .storedetail .storedetail-header .heading-h1 {
        font-size: 20px
    }
}

.storedetail .storedetail-header .heading-h2 {
    font-size: 12px;
    font-weight: 400;
    line-height: 1.5;
    margin: 0
}

@media screen and (min-width:1024px) {
    .storedetail .storedetail-header .heading-h2 {
        font-size: 14px
    }
}

.storedetail .storedetail-back-button {
    align-items: center;
    display: flex;
    font-size: 16px;
    height: 40px;
    justify-content: center;
    left: 10px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 40px
}

.storedetail .storedetail-image>img {
    aspect-ratio: 2/1;
    display: block;
    height: auto;
    width: 100%
}

@media screen and (min-width:1024px) {
    .pt_storedetail .storedetail .storedetail-image>img {
        aspect-ratio: 3/1
    }
}

.storedetail .storedetail-info {
    color: #6f6f6f;
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 20px
}

@media screen and (min-width:1024px) {
    .storedetail .storedetail-info {
        flex-direction: row;
        justify-content: space-between;
        padding: 80px 60px
    }

    .storedetail .storedetail-info:not(:has(.storedetail-services)) {
        justify-content: space-evenly
    }
}

@media screen and (min-width:1360px) {
    .storedetail .storedetail-info {
        padding: 80px 100px
    }
}

.storedetail .storedetail-info .heading-h3 {
    color: #0d0900;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 2.25px;
    line-height: 1.5;
    margin: 0 0 16px;
    text-transform: uppercase
}

@media screen and (min-width:1024px) {

    .storedetail .storedetail-info .storedetail-address,
    .storedetail .storedetail-info .storedetail-hours,
    .storedetail .storedetail-info .storedetail-services {
        flex: 30% 0 0
    }
}

.storedetail .storedetail-address {
    display: flex;
    flex-direction: column
}

.storedetail .storedetail-address .storedetail-address-block {
    margin-bottom: 16px
}

@media screen and (max-width:767px) {
    .storedetail .storedetail-address .storedetail-address-block {
        margin-bottom: 8px
    }
}

.storedetail .storedetail-address .storedetail-address-block>a,
.storedetail .storedetail-address .storedetail-address-block>div>a {
    color: #6f6f6f
}

.storedetail .storedetail-address .store-appointment,
.storedetail .storedetail-address .store-requestRepair {
    box-sizing: border-box;
    display: block;
    text-align: center
}

@media screen and (min-width:1024px) {

    .storedetail .storedetail-address .store-appointment,
    .storedetail .storedetail-address .store-requestRepair {
        margin-top: auto
    }
}

.storedetail .storedetail-address .store-appointment.c-btn--white,
.storedetail .storedetail-address .store-requestRepair.c-btn--white {
    border: 1px solid;
    margin-top: 0
}

.storedetail .storedetail-address .store-appointment {
    margin-bottom: 12px;
    margin-top: 0
}

.storedetail .storedetail-address .store-direction {
    margin-bottom: 24px
}

@media screen and (max-width:767px) {
    .storedetail .storedetail-address .store-direction {
        margin-bottom: 16px
    }
}

.storedetail .storedetail-address .store-direction:first-letter {
    text-transform: uppercase
}

.storedetail .storedetail-hours .store-hours-btn {
    margin-bottom: 16px !important
}

.storedetail .storedetail-service-list {
    list-style: none;
    margin: 0;
    padding: 0
}

.storedetail .storedetail-service-list>li {
    font-size: 14px;
    line-height: 20px;
    margin-bottom: 8px
}

.storedetail .storedetail-additional-block {
    align-items: center;
    background-color: #f7f7f7;
    display: flex;
    font-size: 14px;
    justify-content: center;
    line-height: 21px;
    margin-top: 16px;
    padding: 12px 20px
}

.storedetail .storedetail-additional-block:before {
    font-family: icons !important;
    speak: none;
    font-style: normal;
    font-variant: normal;
    font-weight: 400;
    line-height: 1;
    text-transform: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    content: "ï…®";
    line-height: inherit;
    margin-right: 8px
}

.storedetail .storedetail-booking-description {
    align-items: center;
    background-color: #f6f4f2;
    border-radius: 4px;
    color: #0d0900;
    display: flex;
    font-size: 14px;
    justify-content: center;
    line-height: 21px;
    margin-top: 24px;
    padding: 20px;
    text-align: center
}

.storedetail .storedetail-footer {
    display: flex;
    flex-wrap: wrap
}

.storedetail .storedetail-footer .storedetail-footer-image>img {
    display: block;
    height: auto;
    width: 100%
}

@media screen and (min-width:1024px) {
    .storedetail .storedetail-footer .storedetail-footer-image>img {
        height: 100%;
        object-fit: cover
    }
}

.storedetail .storedetail-footer .storedetail-description,
.storedetail .storedetail-footer .storedetail-footer-image {
    flex-basis: 100%
}

@media screen and (min-width:1024px) {

    .storedetail .storedetail-footer .storedetail-description,
    .storedetail .storedetail-footer .storedetail-footer-image {
        flex: 50% 1 1
    }
}

.storedetail .storedetail-footer .storedetail-description {
    align-items: center;
    background-color: #f6f4f2;
    display: flex;
    justify-content: center
}

.storedetail .storedetail-footer .storedetail-description-content {
    flex: 50% 0 0;
    padding: 12.5%;
    text-align: center
}

.storedetail-distance {
    color: #000;
    font-size: 12px;
    font-weight: 700;
    line-height: 18px
}

.storedetail-back-to-map,
.storedetail-info-header {
    display: none
}

@media screen and (min-width:1024px) {
    .storelocator-container {
        position: relative
    }
}

.storelocator-results-header {
    padding: 20px 20px 12px;
    position: relative
}

@media screen and (min-width:1024px) {
    .storelocator-results-header {
        padding-top: 0
    }
}

.storelocator-results-content {
    overflow: auto
}

.storelocator-results-title {
    color: #0d0900;
    margin: 0;
    padding-top: 12px
}

@media screen and (min-width:1024px) {
    .storelocator-results-title {
        padding-top: 20px
    }
}

.noresult-item {
    color: #6f6f6f;
    display: none;
    font-size: 14px;
    line-height: 1.5;
    margin: 20px auto;
    text-align: center;
    width: 50%
}

.storelocator-list {
    background-color: #fff;
    list-style: none;
    margin: 0;
    padding: 0
}

.storelocator-list.noResultFound+.noresult-item {
    display: block
}

.storelocator-results:has(.store-hours-btn.shown) {
    overflow: hidden
}

.store-list-item {
    border-bottom: 1px solid #ececec;
    padding: 20px
}

.store-list-item .storedetail {
    background-color: #f7f7f7;
    bottom: 0;
    display: none;
    left: 50%;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 2
}

@media screen and (min-width:1024px) {
    .store-list-item.hover {
        background-color: #f7f7f7
    }

    .store-list-item.hover .storedetail {
        display: flex;
        flex-direction: column;
        overflow-y: auto
    }

    .store-list-item.hover .storedetail-address {
        max-width: none
    }
}

.store-list-item .storedetail-image {
    flex-shrink: 1;
    height: auto;
    overflow: hidden
}

.store-list-item .storedetail-additional-block,
.store-list-item .storedetail-address-title,
.store-list-item .storedetail-booking-description,
.store-list-item .storedetail-footer,
.store-list-item .storedetail-header {
    display: none
}

.store-list-item .storedetail-email {
    align-self: flex-start
}

.store-list-item .storedetail-services {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: start;
    margin: 0 0 16px
}

.store-list-item .storedetail-services .heading-h3 {
    display: inline-block;
    margin: 0
}

.store-list-item .storedetail-service-list {
    display: inline-block
}

.store-list-item .storedetail-service-list>li {
    display: inline;
    margin-bottom: 0
}

.store-list-item .storedetail-service-list>li:not(:last-of-type):after {
    content: ", "
}

.store-list-item .storedetail-back-to-map,
.store-list-item .storedetail-info-header {
    display: block;
    margin-bottom: 8px
}

.store-list-item .storedetail-back-to-map {
    background-color: #fff;
    color: #0d0900;
    font-size: 16px;
    padding: 10px 16px;
    position: absolute;
    right: 20px;
    top: 20px;
    z-index: 2
}

.store-list-item .storedetail-info {
    display: block;
    padding: 20px 20px 84px;
    position: relative
}

.store-list-item .storedetail-info:has(.store-appointment) {
    padding-bottom: 140px
}

.store-list-item .storedetail-info .store-appointment,
.store-list-item .storedetail-info .store-requestRepair {
    bottom: 76px;
    left: 20px;
    margin: 0;
    position: absolute;
    right: 20px;
    width: auto
}

.store-list-item .storedetail-info .store-requestRepair {
    bottom: 20px
}

.store-list-item .storedetail-seemore {
    color: #0d0900;
    display: block;
    font-size: 14px;
    line-height: 1.5;
    text-decoration: underline
}

.storecard-header {
    margin: 0 0 8px
}

.storecard-header-link {
    color: #000;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.5
}

.storecard-header-type {
    color: #0d0900;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.5;
    margin-left: 8px
}

.storecard-address {
    color: #6f6f6f;
    font-size: 14px;
    line-height: 1.5
}

.storecard-address a {
    color: #6f6f6f
}

.storecard-hours,
.storecard-seemore {
    color: #0d0900;
    font-size: 14px;
    line-height: 1.5
}

.storecard-seemore {
    text-decoration: underline
}

.storecard .storedetail-email {
    display: none
}