
#module-altershops-store #content-wrapper, #module-altershops-store .card{padding: 0}
#module-altershops-store .card{margin-bottom: 0}
#module-altershops-store #main .page-content, #main .page-footer{margin-bottom: 0}
.as-map, #store-map {
    width: 100%;
    height: 400px;
    min-height: 300px;
}
#store-map{border-top-right-radius: 8px;border-top-left-radius: 8px}
.store-schedule {
    display: block;
}
.store-schedule.d-none {
    display: none;
}
/* Split map & list */
.store-finder #store-map      { min-height: 300px; }
@media (min-width: 992px){      /* ≥ lg */
    .store-finder #store-map    { min-height: 100%; }
}

#module-altershops-storefinder .overflow-auto{overflow: scroll}

/* cards dans la liste */
.store-card{
    cursor: pointer;
    transition:
        box-shadow var(--as-transition-fast) var(--as-ease-out),
        transform var(--as-transition-fast) var(--as-ease-out);
    border-bottom: 2px solid var(--as-grey-200);
}
.store-card:hover{
    box-shadow: var(--as-shadow-main);
    transform: translateY(-1px);
}

.iti-btn{}

/* réduc' padding pour format "liste" */
#finder-results .store-card img{
    object-fit: cover;
    border-bottom-left-radius: var(--as-radius-main);
    border-top-left-radius: var(--as-radius-main);
}
.store-card .img-fluid.rounded-top{ width: 165px; max-width: 100% }
#finder-geo{
    color: var(--as-grey-900);
    padding: 0;
    text-align: center;
    text-decoration: underline;
    text-underline-offset: 3px;
    justify-content: center;
    display: flex;
    margin-top: var(--as-spacing-md);
    width: 100%;
    gap: var(--as-spacing-sm);
    background: none;
    border: 0;
    font-family: var(--as-font-family);
    font-weight: var(--as-fw-semibold);
    transition: color var(--as-transition-fast) var(--as-ease-out);
}
#finder-geo:hover,
#finder-geo:focus{
    color: var(--as-amaranth);
    text-decoration: none;
}
/* suggestions Google Places au-dessus du modal Bootstrap */
.pac-container{z-index:2000!important}
/* Pastille état stock (vert / rouge) */
.status-dot{
    display:inline-block;width:10px;height:10px;border-radius:50%;
}
.spin{animation:spSpin 1s linear infinite}
@keyframes spSpin{to{transform:rotate(360deg)}}


#as-stock-results .card-title a{color:#0F0F0F}


/*PAGE MAGASIN*/

.visually-hidden{
    position:absolute!important;
    width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
    clip:rect(0 0 0 0);white-space:nowrap;border:0;
}


#store-page{
    display: grid;
    grid-template-columns: 25% minmax(0, 1fr) 26.5%;
    width: 100%;
    max-width: var(--as-container-max);
    margin-inline: auto;
    gap: var(--as-spacing-lg);
    padding: var(--as-spacing-lg) var(--as-container-padding) var(--as-spacing-xl);
}
#store-page .store-cover{width: 100%;max-width: 100%}

/* Widths fallback if browser does not support grid (legacy) */
.col-store-one{ width: 100% }
.col-store-two{ width: 100% }
.col-store-three{ width: 100% }
.store-cover img{ border-radius: var(--as-radius-main) }
#store-review .google-icon{ width: 40px }
.status-info{ font-size: var(--as-label) }
#module-altershops-store .card,
#module-altershops-store #wrapper{
    background: var(--as-grey-100);
    padding-top: var(--as-spacing-lg);
}

.store-horaires h2,
.store-news h2,
.store-subtitle,
.shop-team-title{
    font-size: var(--as-small-text);
    font-weight: var(--as-fw-medium);
    border-bottom: 2px solid var(--as-grey-900);
    padding: var(--as-spacing-md) 0;
    text-transform: uppercase;
}

.store-horaires .schedule-line{ display: flex; justify-content: space-between; padding: var(--as-spacing-xs) 0 }
.store-horaires .schedule-day,
.store-horaires .schedule-time{ font-size: var(--as-label) }
.store-horaires .schedule-time{ font-weight: var(--as-fw-bold) }
.as-tour-overlay{
    position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:9999;
    display:flex;align-items:center;justify-content:center;padding:2rem;
}
.as-tour-box{position:relative;width:100%;max-width:900px;aspect-ratio:16/9;background:#fff;border-radius:8px;overflow:hidden;}
.as-tour-box iframe{border:0;width:100%;height:100%;}
.as-tour-close{
    position:absolute;top:8px;right:8px;width:32px;height:32px;
    border:none;background:#fff;border-radius:50%;font-size:18px;cursor:pointer;
}
@media(max-width:600px){
    .as-tour-box{aspect-ratio:4/3;}
}
#store-page .store-cover{ position: relative }
.store-cover a{
    position: absolute;
    bottom: 0;
    right: 0;
    background: var(--as-white);
    width: 60px;
    height: 60px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-bottom-right-radius: var(--as-radius-main);
    color: var(--as-grey-900);
    transition: color var(--as-transition-fast) var(--as-ease-out);
}
.store-cover a:hover,
.store-cover a:focus{ color: var(--as-amaranth) }
.store-cover a:focus-visible{
    outline: var(--as-focus-ring);
    outline-offset: 2px;
}

.store-title-visuel{
    font-size: var(--as-h1);
    font-weight: var(--as-fw-medium);
    color: var(--as-grey-900);
}
.col-store-two .brand{
    margin-bottom: var(--as-spacing-sm);
    font-size: var(--as-label);
    font-weight: var(--as-fw-medium);
    color: var(--as-grey-700);
}

.store-status .status{
    padding: var(--as-spacing-xs) var(--as-spacing-sm);
    border-radius: var(--as-radius-small);
    margin-right: var(--as-spacing-sm);
    text-align: center;
    margin-bottom: 0;
    font-size: var(--as-label-medium);
    font-weight: var(--as-fw-medium);
    color: var(--as-grey-900);
}

.store-status .status-open{ background: var(--as-mint) }
.store-status .status-closed{ background: var(--as-melon) }

/* Lot E.4 — Service badges capability-aware (Omni L4 read-only display). */
.store-services {
    display: flex;
    flex-wrap: wrap;
    gap: var(--as-spacing-sm);
    margin: var(--as-spacing-md) 0;
}
.store-services .alter-badge {
    gap: 6px;
}
.store-services .alter-badge__icon {
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}

.store-address{ margin-bottom: var(--as-spacing-md) }
.store-address p{
    margin: 0;
    line-height: 1.4;
    font-size: var(--as-label-medium);
    color: var(--as-grey-500);
}

.review-count a{
    padding-bottom: var(--as-spacing-sm);
    border-bottom: 2px solid var(--as-amaranth);
    color: var(--as-grey-900);
    display: inline-block;
    margin: var(--as-spacing-sm) 0 0;
    text-decoration: none;
}

.store-groups{
    padding-bottom: var(--as-spacing-sm);
    border-bottom: 2px solid var(--as-amaranth);
    color: var(--as-grey-900);
    display: inline-block;
    margin: var(--as-spacing-lg) 0 var(--as-spacing-md-plus);
    font-size: var(--as-label);
    font-weight: var(--as-fw-medium);
}
.store-groups a{
    color: var(--as-grey-900);
    text-decoration: none;
}
.store-groups:hover,
.review-count a:hover{
    border-bottom-width: 3px;
    cursor: pointer;
}
.store-groups a:hover{ color: var(--as-amaranth) }

.google-logo{ width: 40px; max-width: 100%; flex-shrink: 0 }
#store-review{
    border-radius: var(--as-radius-main);
    background: var(--as-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--as-spacing-md);
    padding: var(--as-spacing-md) var(--as-spacing-md-plus);
    border: 1px solid var(--as-grey-200);
    box-shadow: var(--as-shadow-main);
    margin-top: var(--as-spacing-sm);
}
.store-review-left{
    display: flex;
    justify-content: start;
    align-items: center;
    gap: var(--as-spacing-sm);
    min-width: 0;
}
.review-title{
    color: var(--as-grey-300);
    font-weight: var(--as-fw-medium);
    font-size: var(--as-small-text);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.review-score-stars{
    color: var(--as-star-yellow);
    margin-top: 2px;
    display: flex;
    align-items: center;
    justify-content: start;
    gap: var(--as-spacing-xs);
}
.review-score{
    font-weight: var(--as-fw-bold);
    font-size: var(--as-label-medium);
    color: var(--as-grey-900);
}
.review-score-stars i{ font-size: 18px }
.review-note{
    display: flex;
    justify-content: space-between;
    flex-direction: column;
    gap: 2px;
}
.review-count{
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    text-align: right;
    font-weight: var(--as-fw-medium);
    color: var(--as-grey-700);
    font-size: var(--as-small-text);
    gap: var(--as-spacing-xs);
}
.review-count .reviews-link{
    color: var(--as-amaranth);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
    font-weight: var(--as-fw-semibold);
}
.review-count .reviews-link:hover{
    color: var(--as-amaranth-hover, var(--as-amaranth));
    text-decoration-thickness: 2px;
}

/* CTA "Laisser un avis sur Google" sous panel reviews */
.as-write-review{
    margin-top: var(--as-spacing-md-plus);
    text-align: center;
}
.as-write-review .btn-primary{
    display: inline-flex;
    align-items: center;
    gap: var(--as-spacing-sm);
}

/* BigButton sidebar (.flag-on-right) — Card-base + hover lift pattern */
.flag-title{
    color: var(--as-amaranth);
    font-size: var(--as-small-text);
    font-weight: var(--as-fw-medium);
    text-transform: uppercase;
    letter-spacing: .05rem;
}

.flag-on-right{
    background: var(--as-white);
    margin-top: var(--as-spacing-md);
    display: flex;
    justify-content: start;
    gap: var(--as-spacing-md);
    padding: var(--as-spacing-md);
    border: 1px solid var(--as-grey-200);
    border-radius: var(--as-radius-main);
    margin-left: auto;
    width: 100%;
    max-width: 100%;
    transition:
        border-color var(--as-transition-fast) var(--as-ease-out),
        box-shadow var(--as-transition-fast) var(--as-ease-out),
        transform var(--as-transition-fast) var(--as-ease-out);
}
.flag-on-right:first-child{ margin-top: var(--as-spacing-lg) }
.flag-on-right:hover,
.flag-on-right:focus-within{
    border-color: var(--as-amaranth);
    box-shadow: var(--as-shadow-main);
    transform: translateY(-1px);
}
.flag-on-right a{
    color: var(--as-grey-900);
    font-size: var(--as-label);
    font-weight: var(--as-fw-semibold);
    margin-top: 3px;
    text-decoration: none;
}
.flag-on-right a:hover{ color: var(--as-amaranth) }



/*STORE INFO*/
#store-infos{
    background: var(--as-white);
    padding: var(--as-spacing-lg) var(--as-container-padding) var(--as-spacing-xl);
    max-width: var(--as-container-max);
    margin-inline: auto;
}
.store-infos-title{
    display: flex;
    align-items: center;
    justify-content: start;
    margin-bottom: var(--as-spacing-lg);
}
.store-infos-title h2{
    font-size: var(--as-h2);
    font-weight: var(--as-fw-medium);
    color: var(--as-grey-900);
    margin-left: var(--as-spacing-md);
    margin-bottom: 0;
}
.col-info{
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
    gap: var(--as-spacing-2xl);
}
.col-info-one{ width: 100% }
.col-info-two{ width: 100% }
.side-one-container{
    display: flex;
    justify-content: start;
    gap: var(--as-spacing-xl);
    margin-top: var(--as-spacing-lg);
}
.more-infos-container{
    flex: 1 1 auto;
    min-width: 0;
}
.gallery-container{
    width: 200px;
    flex: 0 0 200px;
}
.sub-title{
    color: var(--as-grey-300);
    font-weight: var(--as-fw-medium);
    text-transform: uppercase;
    font-size: var(--as-small-text);
    margin-top: var(--as-spacing-lg);
    margin-bottom: var(--as-spacing-md);
    letter-spacing: 0.02em;
}

.store-presentation p{
    font-size: var(--as-label);
    line-height: 1.5;
    color: var(--as-grey-500);
}
/* ——— conteneur carré —————————————— */
.gallery-item{border-radius: 8px;
    position:relative; overflow:hidden;
    aspect-ratio:1/1;                   /* carré */

    /* image ou thumb vidéo */
    >img:first-child{
        width:100%; height:100%;
        object-fit:cover; object-position:center;
        /* option zoom fort uniquement sur les vidéos */
        /* sera surchargé plus bas pour .video-item */
    }

    /* calque dégradé noir 30 % */
    &::after{
        content:''; position:absolute; inset:0;
        background:linear-gradient(0deg,
        rgba(0,0,0,.30) 0%,
        rgba(0,0,0,.30) 100%);
        z-index:1;             /* sous le bouton */
        pointer-events:none;   /* clics passent à travers */
    }
}

/* ——— miniatures vidéo spécifiques ————— */
.video-item{
    cursor:pointer;

    /* léger zoom pour mieux remplir le carré */
    >img:first-child{ transform:scale(1.2); }

    .play-icon{
        position:absolute; top:50%; left:50%;
        width:48px; height:48px;
        transform:translate(-50%,-50%);
        filter:drop-shadow(0 2px 4px rgba(0,0,0,.4));
        z-index:2;             /* au-dessus du voile */
        pointer-events:none;
    }
}

.video-item>img:first-child{
    transform:scale(1.5);          // zoom 8 % puis crop
}



/* ——— pop-up YouTube ——————————————— */
.as-video-overlay{position:fixed;inset:0;display:flex;
    align-items:center;justify-content:center;padding:2vw;
    background:rgba(0,0,0,.8);z-index:1050}
.as-video-box{width:100%;max-width:960px;aspect-ratio:16/9;position:relative}
.as-video-box iframe{width:100%;height:100%;border:0}
.as-video-close{position:absolute;top:-40px;right:0;font-size:2rem;
    background:none;color:#fff;border:0;cursor:pointer}


/*NEWS*/
.news-list{display: flex;flex-wrap: wrap;justify-content: start;gap: 16px;padding-top: 16px}
.news-item{background: #ffffff;border-radius: 8px;text-align: center;border-radius: 8px;
    width: 250px;max-width: 45%}
.news-item img{border-top-right-radius: 8px;border-top-left-radius: 8px}
.news-info{padding: 32px 16px 32px 8px;text-align: left}
.news-info p{margin-bottom: 0}
.news-info h3{margin-bottom: 1rem}



/*TRANSPORTS*/
.bus-lines{
    display: flex;
    justify-content: start;
    flex-wrap: wrap;
    margin-top: var(--as-spacing-md);
    gap: var(--as-spacing-sm);
}
.bus-line{
    color: var(--as-grey-900);
    font-size: var(--as-label-medium);
    font-weight: var(--as-fw-semibold);
    line-height: 1.5;
    padding: 2px var(--as-spacing-sm) 2px var(--as-spacing-sm);
    text-align: center;
    border: 2px solid var(--as-grey-900);
    border-radius: var(--as-radius-small);
}
.bus-stop,.metro-name,.parking-item{
    font-size: var(--as-label-medium);
    font-weight: var(--as-fw-medium);
    color: var(--as-grey-900);
}

.metro-row{
    margin-bottom: var(--as-spacing-md);
    display: flex;
    align-items: center;
    gap: var(--as-spacing-md);
}
.metro-pill{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    min-width: 32px;
    border-radius: 50%;
    color: var(--as-white);
    font-size: var(--as-small-text);
    font-weight: var(--as-fw-bold);
    line-height: 1;
}
.metro-row .line-icon{
    width: 32px;
    height: 32px;
    object-fit: contain;
}
.metro-time{
    font-size: var(--as-small-text);
    color: var(--as-grey-500);
    margin-left: auto;
}


/*VENDEURS*/
.vendor-cards{display: flex;justify-content: space-between;flex-wrap: wrap;gap: 16px;margin-top: 16px}
.vendor-card{background: #EDEDF3;margin-bottom: 16px;width: 400px;max-width: 50%;padding: 16px;border-radius: 8px}
.vendor-products{max-width: calc(50% - 8px);}
.vendors-advices{display: flex;justify-content: space-between;flex-wrap: wrap}
.vendor-card .product-extra-features,.vendor-card .product-miniature .product-price-and-shipping,.vendor-card .product-brand{display: none}
.vendor-card .product-miniature .product-description{min-height: inherit;padding: 16px 10px}
.vendor-card .product-miniature .product-title a{font-size: 14px;min-height: 45px;display: inline-block;line-height: 18px;text-align: left}
.vendor-sub{font-weight: 500}
.vendor-header{display: inline-flex;justify-content: start;align-items: center}
.vendor-primo-infos{display: flex;flex-direction: column;margin-left: 16px}
.vendor-name{margin-bottom: 0}
.vendor-job{color:#777777;text-transform: uppercase;font-size: 12px}
.vendor-profile{margin-top: 16px}
.vendor-cards .product-miniature .thumbnail-container{margin-bottom: 0}

/*AVIS CLIENTS*/
#as-tabs .review-stars i{ color: var(--as-star-yellow) }
.review-author{
    color: var(--as-grey-900);
    font-weight: var(--as-fw-bold);
    font-size: var(--as-label);
}
.review-date{
    color: var(--as-grey-500);
    font-weight: var(--as-fw-medium);
    font-size: var(--as-small-text);
    margin-left: var(--as-spacing-sm);
}
.as-tabs{
    padding: var(--as-spacing-xl) var(--as-container-padding);
    background: var(--as-white);
    max-width: var(--as-container-max);
    margin-inline: auto;
}
.as-tabs .review-stars{ display: inline-block }
.review-header{
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: var(--as-spacing-md);
    width: 100%;
}
.review-text{
    margin-top: var(--as-spacing-xs);
    line-height: 1.4;
    font-size: var(--as-label);
    color: var(--as-grey-500);
}
.store-review{
    border-bottom: 2px solid var(--as-grey-200);
    padding-bottom: var(--as-spacing-md-plus);
    margin-bottom: var(--as-spacing-md-plus);
}
.store-review:last-child{
    border-bottom: 0;
    padding-bottom: 0;
    margin-bottom: 0;
}


/*STOREGROUP page (storegroup.tpl) */
#module-altershops-storegroup .storegroup-container{
    max-width: var(--as-container-max-narrow);
    margin: var(--as-spacing-xl) auto;
    padding-inline: var(--as-container-padding);
}

.storegroup-header{
    margin-bottom: var(--as-spacing-lg);
}
.storegroup-title{
    font-family: var(--as-font-family);
    font-size: var(--as-h1);
    font-weight: var(--as-fw-medium);
    color: var(--as-grey-900);
    text-transform: uppercase;
    letter-spacing: -0.01em;
    margin: 0 0 var(--as-spacing-sm);
    line-height: 1.2;
}
.storegroup-count{
    font-family: var(--as-font-family);
    font-size: var(--as-label);
    color: var(--as-grey-500);
    margin: 0;
}

.storegroup-cover{
    width: 100%;
    border-radius: var(--as-radius-main);
    box-shadow: var(--as-shadow-main);
    margin-bottom: var(--as-spacing-lg);
    aspect-ratio: 21 / 9;
    object-fit: cover;
}

.storegroup-description{
    margin-bottom: var(--as-spacing-lg);
    padding: var(--as-spacing-md-plus);
    background: var(--as-grey-100);
    border-radius: var(--as-radius-main);
    color: var(--as-grey-700);
    line-height: 1.6;
    font-size: var(--as-label);
}

#module-altershops-storegroup #group-map{
    width: 100%;
    border-radius: var(--as-radius-main);
    overflow: hidden;
    box-shadow: var(--as-shadow-main);
    margin-bottom: var(--as-spacing-lg);
}

#module-altershops-storegroup .store-cards{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: var(--as-spacing-md-plus);
    margin: 0;
    padding: 0;
}
#module-altershops-storegroup .store-cards-item{
    margin: 0;
    padding: 0;
}
#module-altershops-storegroup .store-cards-item .store-card{
    display: flex;
    flex-direction: column;
    height: 100%;
    background: var(--as-white);
    border: 1px solid var(--as-grey-200);
    border-radius: var(--as-radius-main);
    box-shadow: var(--as-shadow-main);
    overflow: hidden;
    margin-bottom: 0;
}
#module-altershops-storegroup .store-cards-item .store-card img.rounded-top{
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border-radius: 0;
    background: var(--as-grey-100);
    color: transparent; /* masque l'alt text si image cassée */
}
#module-altershops-storegroup .store-cards-item .store-card .card-body{
    flex: 1 1 auto;
    padding: var(--as-spacing-md);
}
#module-altershops-storegroup .store-cards-item .store-card .card-title a{
    font-family: var(--as-font-family);
    font-size: var(--as-label-medium);
    font-weight: var(--as-fw-semibold);
    color: var(--as-grey-900);
    text-decoration: none;
}
#module-altershops-storegroup .store-cards-item .store-card .card-title a:hover{
    color: var(--as-amaranth);
}
#module-altershops-storegroup .store-cards-item .store-card .badge.bg-success{
    background: var(--as-mint) !important;
    color: var(--as-grey-900);
}
#module-altershops-storegroup .store-cards-item .store-card .badge.bg-danger{
    background: var(--as-melon) !important;
    color: var(--as-grey-900);
}

/* STOREGROUP — boutons de carte */
#module-altershops-storegroup .store-cards-item .store-card .card-body {
    padding-bottom: 0;
}
/* Pousse les boutons en bas même si le contenu est court */
#module-altershops-storegroup .store-cards-item .store-card .bottom-store-card {
    flex: 1 1 auto;
}
#module-altershops-storegroup .store-cards-item .store-card .bottom-store-buttons {
    margin: auto calc(-1 * var(--as-spacing-md)) 0;
    width: calc(100% + 2 * var(--as-spacing-md));
    border-top: 1px solid var(--as-grey-200);
    overflow: hidden;
}
#module-altershops-storegroup .store-cards-item .store-card .bottom-store-buttons a {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--as-spacing-xs);
    padding: var(--as-spacing-sm) var(--as-spacing-md);
    font-family: var(--as-font-family);
    font-size: var(--as-small-text);
    font-weight: var(--as-fw-semibold);
    letter-spacing: 0.02em;
    text-decoration: none;
    white-space: nowrap;
    transition:
        background var(--as-transition-fast) var(--as-ease-out),
        color var(--as-transition-fast) var(--as-ease-out);
}
#module-altershops-storegroup .store-cards-item .store-card .iti-btn {
    color: var(--as-grey-900);
    background: var(--as-grey-100);
}
#module-altershops-storegroup .store-cards-item .store-card .iti-btn:hover {
    background: var(--as-grey-200);
    color: var(--as-amaranth);
}
#module-altershops-storegroup .store-cards-item .store-card .btn-primary {
    background: var(--as-amaranth);
    color: var(--as-white) !important;
    border: none;
}
#module-altershops-storegroup .store-cards-item .store-card .btn-primary:hover {
    background: var(--as-amaranth-hover);
}
#module-altershops-storegroup .store-cards-item .store-card .btn-primary img {
    filter: brightness(0) invert(1);
}


/*FOOTER STORES (hookDisplayFooter — footer_stores.tpl) */
.links-block:has([id^="footer_sub_menu_altershops"]) .h3,
.links-block:has([id^="footer_sub_menu_altershops"]) p.h3 {
    font-family: var(--as-font-family);
    font-size: var(--as-small-text);
    font-weight: var(--as-fw-bold);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--as-amaranth);
    margin-bottom: var(--as-spacing-md);
}

[id^="footer_sub_menu_altershops"] {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--as-spacing-sm);
}

[id^="footer_sub_menu_altershops"] li {
    margin: 0;
    padding: 0;
}

[id^="footer_sub_menu_altershops"] a.custom-page-link {
    font-family: var(--as-font-family);
    font-size: var(--as-small-text);
    font-weight: var(--as-fw-medium);
    color: var(--as-white);
    text-decoration: none;
    transition: color var(--as-transition-fast) var(--as-ease-out),
                text-decoration-thickness var(--as-transition-fast) var(--as-ease-out);
}

[id^="footer_sub_menu_altershops"] a.custom-page-link:hover,
[id^="footer_sub_menu_altershops"] a.custom-page-link:focus {
    color: var(--as-amaranth);
    text-decoration: underline;
    text-underline-offset: 3px;
    text-decoration-thickness: 1px;
}

[id^="footer_sub_menu_altershops"] a.custom-page-link:focus-visible {
    outline: var(--as-focus-ring);
    outline-offset: 2px;
    border-radius: 2px;
}


/*POPUP STOCK ET MAGASIN*/
.asa-clickcollect{ margin-top: var(--as-spacing-md) }

/* Bouton "Retrait boutique / Vérifier disponibilité" — pattern .rea-btn theme */
.asa-clickcollect .as-stock-btn{
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--as-spacing-md);
    width: 100%;
    background: var(--as-white);
    color: var(--as-grey-900);
    border: 1px solid var(--as-grey-200);
    border-radius: var(--as-radius-main);
    padding: var(--as-spacing-md) var(--as-spacing-md-plus);
    font-family: var(--as-font-family);
    text-align: left;
    cursor: pointer;
    transition:
        background var(--as-transition-fast) var(--as-ease-out),
        color var(--as-transition-fast) var(--as-ease-out),
        border-color var(--as-transition-fast) var(--as-ease-out),
        box-shadow var(--as-transition-fast) var(--as-ease-out);
}
/* ::before icon was the legacy marker (single-icon button); now the .asa-side-btn__icon
   span inside the TPL renders the real icon. Keep ::before display:none to free its
   flex slot for the .txt block — without this, ::before steals 28px + 16px gap from
   the 235px button on a 250px sidebar, squeezing .txt to ~47px (label/eyebrow wrap
   character-by-character). */
.asa-clickcollect .as-stock-btn::before{
    display: none;
}
.asa-clickcollect .as-stock-btn:hover,
.asa-clickcollect .as-stock-btn:focus{
    background: var(--as-amaranth);
    color: var(--as-white);
    border-color: var(--as-amaranth);
    box-shadow: var(--as-shadow-main);
}
.asa-clickcollect .as-stock-btn:focus-visible{
    outline: var(--as-focus-ring);
    outline-offset: 2px;
}
.asa-clickcollect .as-stock-btn .asa-side-btn__txt,
.asa-clickcollect .as-stock-btn .side-btn__txt{
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    flex: 1 1 0;
}
.asa-clickcollect .as-stock-btn .asa-side-btn__eyebrow,
.asa-clickcollect .as-stock-btn .title-button{
    display: block;
    font-size: var(--as-small-text);
    font-weight: var(--as-fw-medium);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--as-amaranth);
    white-space: normal;
    word-wrap: break-word;
    transition: color var(--as-transition-fast) var(--as-ease-out);
}
.asa-clickcollect .as-stock-btn:hover .asa-side-btn__eyebrow,
.asa-clickcollect .as-stock-btn:focus .asa-side-btn__eyebrow,
.asa-clickcollect .as-stock-btn:hover .title-button,
.asa-clickcollect .as-stock-btn:focus .title-button{
    color: var(--as-white);
}
.asa-clickcollect .as-stock-btn .asa-side-btn__title,
.asa-clickcollect .as-stock-btn .text-button{
    display: block;
    font-size: var(--as-label);
    font-weight: var(--as-fw-semibold);
    white-space: normal;
    word-wrap: break-word;
}

/* Modal "Disponibilité en magasin" */
#as-stock-modal .modal-content{
    border: 0;
    border-radius: var(--as-radius-main);
    box-shadow: 0 10px 28px color-mix(in srgb, var(--as-black) 18%, transparent);
}
#as-stock-modal .modal-header{
    padding: var(--as-spacing-md-plus);
    border-bottom: 1px solid var(--as-grey-200);
}
.asa-clickcollect .modal-header-top{
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    gap: var(--as-spacing-md);
}
.asa-clickcollect .modal-header .btn-close{
    position: static;
    background: none;
    border: 0;
    padding: var(--as-spacing-xs);
    cursor: pointer;
}
.asa-clickcollect .modal-title{
    font-family: var(--as-font-family);
    font-size: var(--as-label-medium);
    font-weight: var(--as-fw-medium);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--as-grey-900);
    margin: 0;
}
#as-refstore-pane{
    background: var(--as-grey-100);
    border: 0;
    color: var(--as-grey-900);
    padding: var(--as-spacing-sm) var(--as-spacing-md);
    border-radius: var(--as-radius-small);
    margin-top: var(--as-spacing-md);
    font-size: var(--as-small-text);
}
#as-stock-modal .modal-body{
    padding: var(--as-spacing-md-plus);
}
#as-stock-modal .input-group .form-control{
    border: 1px solid var(--as-grey-200);
    border-radius: var(--as-radius-small) 0 0 var(--as-radius-small);
    padding: var(--as-spacing-sm) var(--as-spacing-md);
    font-family: var(--as-font-family);
    font-size: var(--as-small-text);
}
#as-stock-modal .input-group .form-control:focus{
    border-color: var(--as-amaranth);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--as-amaranth) 20%, transparent);
    outline: none;
}
.btn-set-ref,
#as-geoloc{
    color: var(--as-grey-900);
    font-family: var(--as-font-family);
    font-weight: var(--as-fw-semibold);
}
#as-geoloc{
    border: 1px solid var(--as-grey-200);
    border-radius: 0 var(--as-radius-small) var(--as-radius-small) 0;
    background: var(--as-white);
    padding: var(--as-spacing-sm) var(--as-spacing-md);
}
#as-geoloc:hover{
    background: var(--as-grey-100);
    border-color: var(--as-amaranth);
    color: var(--as-amaranth);
}
#as-stock-modal .modal-footer{
    padding: var(--as-spacing-md-plus);
    border-top: 1px solid var(--as-grey-200);
}
#as-stock-results .card-title a{
    color: var(--as-grey-900);
    text-decoration: none;
    font-weight: var(--as-fw-semibold);
}
#as-stock-results .card-title a:hover{
    color: var(--as-amaranth);
    text-decoration: underline;
}


/*ONGLETS*/
/* --- barre d'onglets --- */
.as-tabs-nav {
    display: flex;
    margin: 0 0 var(--as-spacing-md-plus);
    padding: 0;
    list-style: none;
    gap: var(--as-spacing-md);
}
.as-tab-btn {
    border: 0;
    background: transparent;
    display: inline-flex;
    align-items: center;
    justify-content: start;
    gap: var(--as-spacing-sm);
    color: var(--as-grey-900);
    font-family: var(--as-font-family);
    font-weight: var(--as-fw-semibold);
    font-size: var(--as-label);
    text-transform: uppercase;
    padding: var(--as-spacing-sm) var(--as-spacing-md);
    border-radius: var(--as-radius-small);
    cursor: pointer;
    transition:
        background var(--as-transition-fast) var(--as-ease-out),
        color var(--as-transition-fast) var(--as-ease-out);
}
.as-tab-btn:hover{
    background: var(--as-grey-100);
    color: var(--as-amaranth);
}
.as-tab-btn:focus-visible{
    outline: var(--as-focus-ring);
    outline-offset: 2px;
}
.as-tab-btn img{
    margin-right: 0;
    width: 24px;
    height: 24px;
}
.as-tab-btn.active {
    background: var(--as-grey-100);
    color: var(--as-grey-900);
}
/* --- panneaux --- */
.as-tab-panel { display: none; }
.as-tab-panel.is-active { display: block; }

/* helper pour cacher visuellement mais garder le texte pour les lecteurs d’écran */
.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

.as-tabs-nav li{
    display: flex;
    align-items: center;
    margin-right: 0;
}

/* Panel "Articles liés" — cards alterblog */
.related-grid{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: var(--as-spacing-md-plus);
    margin-top: var(--as-spacing-md);
}
.related-card{
    background: var(--as-white);
    border: 1px solid var(--as-grey-200);
    border-radius: var(--as-radius-main);
    overflow: hidden;
    transition:
        box-shadow var(--as-transition-fast) var(--as-ease-out),
        transform var(--as-transition-fast) var(--as-ease-out),
        border-color var(--as-transition-fast) var(--as-ease-out);
}
.related-card:hover,
.related-card:focus-within{
    box-shadow: var(--as-shadow-main);
    border-color: var(--as-amaranth);
    transform: translateY(-2px);
}
.related-card .related-link{
    display: flex;
    flex-direction: column;
    color: var(--as-grey-900);
    text-decoration: none;
    border-bottom: 0;
    padding-bottom: 0;
    font-weight: var(--as-fw-semibold);
}
.related-card .related-thumb{
    width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    background: var(--as-grey-100);
}
.related-card .related-title{
    font-family: var(--as-font-family);
    font-size: var(--as-label);
    font-weight: var(--as-fw-semibold);
    color: var(--as-grey-900);
    padding: var(--as-spacing-md);
    line-height: 1.4;
    transition: color var(--as-transition-fast) var(--as-ease-out);
}
.related-card:hover .related-title,
.related-card:focus-within .related-title{
    color: var(--as-amaranth);
}
/* Fallback : si pas d'image, padding interne */
.related-card .related-link:not(:has(.related-thumb)) .related-title{
    padding-top: var(--as-spacing-md-plus);
}

#tab-news{display: none}

/*PAGE TROUVER MAGASIN*/
.info-mag{padding: 1rem 1rem 0 1rem;width: 100%}

.info-mag .badge{padding: .25rem .5rem;margin-right: .5rem;border-radius: 3px}
.btn-link.toggle-schedule{color:#0F0F0F;padding: 0}
#module-altershops-storefinder h1{text-transform: uppercase;line-height: 32px}
#module-altershops-storefinder .form-control{border-radius: 3px}
.store-group-title-list{border-bottom: 2px solid #e62249;width: auto;padding-bottom: .5rem;display:inline-block;padding-right: 1rem}
.store-group-title-list a{color:#0F0F0F;font-size: 16px;}
#module-altershops-storefinder .info-mag a{color:#0F0F0F;font-weight: 600;font-size: 16px}
#module-altershops-storefinder .info-mag .iti-btn{padding: .5rem 1rem;border-radius: 0;border-right: 1px solid #0F0F0F}
#module-altershops-storefinder .info-mag .btn-primary,
#module-altershops-storefinder .info-mag .iti-btn{
    color: var(--as-grey-900);
    font-family: var(--as-font-family);
    font-size: var(--as-small-text);
    font-weight: var(--as-fw-semibold);
    text-transform: initial;
    padding: var(--as-spacing-sm) var(--as-spacing-md);
    border-radius: 0;
    display: flex;
    align-items: center;
    gap: var(--as-spacing-sm);
    justify-content: center;
    transition: color var(--as-transition-fast) var(--as-ease-out);
}
#module-altershops-storefinder .info-mag .btn-primary:hover,
#module-altershops-storefinder .info-mag .iti-btn:hover{
    color: var(--as-amaranth);
}

#module-altershops-storefinder .bg-danger{ background: var(--as-grey-100) !important }
#module-altershops-storefinder .btn-primary{
    text-transform: uppercase;
    font-size: var(--as-label);
    background: none;
}
#module-altershops-storefinder .store-item-list .store-card{
    display: flex;
    margin-bottom: var(--as-spacing-md);
}
#module-altershops-storefinder #content{ background: none; padding: 0 }
.finder-address-container{ display: flex }
.finder-address-container button{
    background: var(--as-grey-900);
    color: var(--as-white);
    border: none;
    width: 50px;
    height: 50px;
    font-weight: var(--as-fw-semibold);
    border-top-right-radius: var(--as-radius-small);
    border-bottom-right-radius: var(--as-radius-small);
    cursor: pointer;
    transition: background var(--as-transition-fast) var(--as-ease-out);
}
.finder-address-container button:hover{ background: var(--as-amaranth) }
.bottom-store-buttons{
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    border-top: 1px solid var(--as-grey-200);
}
.bottom-store-buttons a{ width: 50% }
.bottom-store-buttons a + a{ border-left: 1px solid var(--as-grey-200) }
.container-top-locator{
    background: var(--as-papaya);
    padding: var(--as-spacing-md);
    border-top-right-radius: var(--as-radius-small);
    border-bottom-right-radius: var(--as-radius-small);
}
#module-altershops-storefinder .store-item-list .store-card{
    background: var(--as-white);
    box-shadow: var(--as-shadow-main);
    border: 1px solid var(--as-grey-200);
    border-radius: var(--as-radius-main);
}

/* STOREFINDER — redesign vertical, composants identiques au storegroup */
#module-altershops-storefinder .store-item-list .store-card {
    flex-direction: column;
    overflow: hidden;
}
#module-altershops-storefinder .store-item-list .store-card img.rounded-top {
    width: 100%;
    max-width: 100%;
    aspect-ratio: 16 / 10;
    object-fit: cover;
    border-radius: 0;
    background: var(--as-grey-100);
    color: transparent;
}
#module-altershops-storefinder .store-item-list .store-card .card-body {
    padding-bottom: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
}
#module-altershops-storefinder .store-item-list .store-card .bottom-store-card {
    flex: 1 1 auto;
}
#module-altershops-storefinder .store-item-list .store-card .bottom-store-buttons {
    margin: 0 calc(-1 * var(--as-spacing-md)) 0;
    width: calc(100% + 2 * var(--as-spacing-md));
    overflow: hidden;
}
#module-altershops-storefinder .store-item-list .store-card .bottom-store-buttons a {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--as-spacing-xs);
    padding: var(--as-spacing-sm) var(--as-spacing-md);
    font-family: var(--as-font-family);
    font-size: var(--as-small-text);
    font-weight: var(--as-fw-semibold);
    text-decoration: none;
    white-space: nowrap;
    border-right: none;
    border-radius: 0;
    transition:
        background var(--as-transition-fast) var(--as-ease-out),
        color var(--as-transition-fast) var(--as-ease-out);
}
#module-altershops-storefinder .store-item-list .store-card .iti-btn {
    color: var(--as-grey-900);
    background: var(--as-grey-100);
}
#module-altershops-storefinder .store-item-list .store-card .iti-btn:hover {
    background: var(--as-grey-200);
    color: var(--as-amaranth);
}
#module-altershops-storefinder .store-item-list .store-card .btn-primary {
    background: var(--as-amaranth);
    color: var(--as-white) !important;
    border: none;
    text-transform: none;
}
#module-altershops-storefinder .store-item-list .store-card .btn-primary:hover {
    background: var(--as-amaranth-hover);
}
#module-altershops-storefinder .store-item-list .store-card .btn-primary img {
    filter: brightness(0) invert(1);
}
#module-altershops-storefinder .store-item-list .store-card .badge.bg-success {
    background: var(--as-mint) !important;
    color: var(--as-grey-900);
}
#module-altershops-storefinder .store-item-list .store-card .badge.bg-danger {
    background: var(--as-melon) !important;
    color: var(--as-grey-900);
}

@media(max-width: 768px)
{
    .store-item-list img{border-top-right-radius: 8px;border-top-left-radius: 8px}
    .bottom-store-card{padding: 0 1rem}
    .info-mag{padding:1rem 0 0 0 }
    #module-altershops-storefinder .store-item-list .store-card{flex-direction: column}
    #finder-results .store-card img{border-bottom-left-radius:0;border-top-right-radius: 8px;border-top-left-radius: 8px}
    #finder-results .store-card img.rounded-top{width: 100%}
#tab-news{display: flex}
    .vendor-cards{flex-wrap: wrap;}
    .col-store-one, .col-store-two,.col-store-three,.col-info-one, .col-info-two,.more-infos-container{width: 100%;max-width: 100%}
    .side-one-container{flex-direction: column}
    .gallery-container{display: flex;justify-content: start;width: 100%;max-width: inherit}
    .gallery-grid{display: flex;justify-content: start;width: 100%;gap:8px;flex-wrap: wrap;}
    .more-infos-container{padding: 0}
    .gallery-item{width: 150px;max-width: 1100%}
    #store-infos{padding: 32px 16px;margin-top: 32px}
    .vendor-card{width: 100%;max-width: 100%}
    /* Ré-ordonnancer les colonnes */
    .col-store-two   { order: 1; width: 100%; }
    .col-store-three { order: 3; width: 100%; }
    .col-store-one   { order: 2; width: 100%; }
    .store-groups{margin:0 0 16px 0}
    #module-altershops-store #wrapper{padding: 0}
    #store-page,.as-tabs{padding: 0 15px;gap: 8px;}
    #module-altershops-store  .breadcrumb{padding: 0!important;}

#module-altershops-store #main .page-content{padding-top: 16px;}
    .review-stars i,.review-score{font-size:18px }
    .google-logo{width: 35px}

}



@media (max-width:991.98px){
    .col-store-two > #store-news{display:none;}

}

/* Expert Opinions
   -------------------------------------------------------------------------- */

.product-expert-opinions{
  margin: var(--as-spacing-md-plus) 0;
}

.product-expert-opinions .expert-opinion{
  background: var(--as-white);
  border: 1px solid var(--as-grey-200);
  border-radius: var(--as-radius-main);
  padding: var(--as-spacing-md-plus) var(--as-spacing-lg);
  box-shadow: var(--as-shadow-main);
}

.product-expert-opinions .expert-opinion__top{
  display: flex;
  align-items: flex-start;
  gap: var(--as-spacing-md);
}

.product-expert-opinions .expert-opinion__avatar{
  width: 64px;
  height: 64px;
  border-radius: 50%;
  object-fit: cover;
  flex: 0 0 64px;
}

.product-expert-opinions .expert-opinion__kicker{
  font-family: var(--as-font-family);
  font-size: var(--as-small-text);
  font-weight: var(--as-fw-medium);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  line-height: 1.2;
  color: var(--as-amaranth);
  margin-top: 2px;
}

.product-expert-opinions .expert-opinion__author{
  font-family: var(--as-font-family);
  font-size: var(--as-label);
  font-weight: var(--as-fw-bold);
  color: var(--as-grey-900);
  line-height: 1.2;
  margin-top: var(--as-spacing-xs);
}

.product-expert-opinions .expert-opinion__title{
  font-family: var(--as-font-family);
  font-size: var(--as-small-text);
  font-weight: var(--as-fw-semibold);
  color: var(--as-grey-700);
  line-height: 1.2;
  margin-top: var(--as-spacing-sm);
}

.product-expert-opinions .expert-opinion__content{
  font-family: var(--as-font-family);
  font-size: var(--as-label);
  line-height: 1.5;
  color: var(--as-grey-500);
  margin-top: var(--as-spacing-md);
}

.product-expert-opinions .expert-opinion__content p{
  margin: 0;
}

.product-expert-opinions .expert-opinion--with-avatar .expert-opinion__content{
  margin-left: calc(64px + var(--as-spacing-md));
}

@media (max-width: 767px){
  .product-expert-opinions .expert-opinion{
    padding: 18px 18px;
  }
  .product-expert-opinions .expert-opinion__top{
    gap: 14px;
  }
  .product-expert-opinions .expert-opinion__avatar{
    width: 56px;
    height: 56px;
    flex-basis: 56px;
  }
  .product-expert-opinions .expert-opinion--with-avatar .expert-opinion__content{
    margin-left: 0;
  }
}

/* =========================================================================
 *  MapLibre integration (v0.8.6)
 * ========================================================================= */
.maplibregl-map {
    font-family: inherit;
}
.maplibregl-ctrl-attrib.maplibregl-compact {
    background: rgba(0, 0, 0, .55);
    color: #fff;
    border-radius: 3px;
}
.maplibregl-ctrl-attrib.maplibregl-compact a {
    color: #fff;
}
.maplibregl-ctrl-group {
    border-radius: 6px;
    overflow: hidden;
}

/* Store markers (DOM-based, styled via CSS) */
.as-marker {
    width: 32px;
    height: 40px;
    padding: 0;
    border: 0;
    background: transparent center / contain no-repeat;
    cursor: pointer;
    display: block;
    transform-origin: 50% 100%;
    transition: transform .15s ease-out, filter .15s ease-out;
}
.as-marker:hover,
.as-marker--highlight {
    transform: scale(1.15);
    filter: drop-shadow(0 2px 6px rgba(0, 0, 0, .45));
    z-index: 5;
}
.as-marker:focus {
    outline: 2px solid #4285f4;
    outline-offset: 2px;
}

/* User geolocation pin */
.as-marker--user {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #4285f4;
    box-shadow: 0 0 0 3px #fff, 0 0 0 5px rgba(66, 133, 244, .45);
    cursor: default;
    pointer-events: none;
}

