/* AR Products List Associated - Front Office */

:root{
    --ar-pl-item-bg : #fff ;
    --ar-pl-primary : #24b9d7 ;
    --ar-pl-primary-text : #fff ;
    --ar-pl-text-desc : #666 ;
    --ar-pl-text-brand : #888 ;
    --ar-pl-text-ref : #aaa ;
    --ar-pl-list-border :#ccc ;
    --ar-pl-dots-border : var(--ar-pl-primary) ;
    --ar-pl-dots-active : var(--ar-pl-primary) ;
    --ar-pl-slider-btn-bg : var(--ar-pl-primary) ;
    --ar-pl-slider-btn-fill : var(--ar-pl-primary-text) ;
}

.ar-product-list {
    margin: 1rem 0;
    padding: 1rem 0;
}

.ar-product-list__title {
    margin-bottom: 0.8rem;
    font-size: 1.4em;
    font-weight: 600;
}

.ar-product-list__description {
    margin-bottom: 0.8rem;
    color: var(--ar-pl-text-desc);
}

.ar-product-list__products {
    display: flex;
    flex-wrap: wrap;
    padding-top: 0.8rem;
}

.ar-product-list-miniature__image{
    position: relative;
}

.ar-product-list-miniature{
    background: var(--ar-pl-item-bg);
    border-radius: 12px;
    padding: 24px;
    height: 100%;
    display: flex;
    flex-direction: column;
}

.ar-list-product-product-title{
    margin-top: 4px;
    margin-bottom: 4px;
    font-size: 1.125rem;
}

.ar-list-product-description{
    display : flex ;
    flex-direction: column;
    flex: 1;
}

.ar-list-product-informations{
    flex : 1 ;
}

.ar-product-brand {
    margin: 4px 0 0 0;
    font-size: 0.8em;
    color: var(--ar-pl-text-brand);
}

.ar-list-product-reference {
    margin: 2px 0 4px 0;
    font-size: 0.75em;
    color: var(--ar-pl-text-ref);
}

.ar-pl-hide-brand .ar-product-brand,
.ar-pl-hide-short-desc .ar-list-product-short-desc,
.ar-pl-hide-reference .ar-list-product-reference,
.ar-pl-hide-add-to-cart .ar-pl-add-to-cart,
.ar-pl-hide-add-to-cart .ar-pl-view-product { 
    display: none !important; 
}

.ar-pl-hide-add-to-cart .ar-list-product-product-price-and-shipping{
    padding-bottom: 0;
}

.ar-list-product-short-desc {
    font-weight : 300 ;
    font-size: 0.9rem;
}

.ar-list-product-actions {
    margin-top: 16px;
}

.ar-list-product-product-price-and-shipping{
    padding-bottom: 16px;
}

.ar-list-product-product-price{
    font-size: 1.3rem;
    font-weight: 500 ;
    color: var(--ar-pl-primary) ;
}

.ar-list-product-actions-others > a {
    font-size: 0.8rem;
    margin-top: 8px;
    display: inline-block;
}

.ar-product-list-miniature__image img{
    width: 90%;
    max-width: 100%;
    height: auto;
    margin: auto;
}


/* =========================================================
   GRID — règles communes à grid et slider-grid
   ========================================================= */

.ar-display-grid .ar-product-list__item {
    flex: 0 0 25%;
    max-width: 25%;
    padding: 0 6px 12px 6px;
}

.ar-display-grid .ar-list-product-product-price-and-shipping{
    text-align: center ;
}

.ar-display-grid .ar-list-product-actions .btn-primary{
    width: 100% ;
}

.ar-display-grid .ar-list-product-actions-others {
    text-align: center;
}

.ar-display-grid .ar-list-product-short-desc {
    font-weight: 300;
    font-size: 0.9rem;
    line-clamp: 3;
    -webkit-line-clamp: 3;
    text-overflow: ellipsis;
    overflow: hidden;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    word-wrap: break-word;
    line-height: 1.1;
}

.ar-display-grid .ar-product-list-miniature__image{
    text-align: center;
}

.ar-display-grid .ar-product-list-miniature__image img{
    transition: transform 0.3s ease;
}

.ar-display-grid .ar-product-list-miniature__image img:hover {
    transform: scale(1.1);
}

/* Compensation de padding des items — uniquement pour la grille fixe (pas le slider) */
.ar-display-grid:not(.ar-display-slider-grid) .ar-product-list__products {
    margin-left: -6px;
    margin-right: -6px;
}


/* =========================================================
   LIST
   ========================================================= */

.ar-display-list .ar-product-list__item {
    flex: 0 0 100%;
    max-width: 100%;
}

.ar-display-list .ar-product-list__products{
    gap: 16px;
}

.ar-display-list .ar-product-list-miniature__image{
    padding: 8px ;
}

.ar-display-list .ar-product-list-miniature__image img{
    max-width: 175px ;
    width: 90% ;
}

.ar-display-list .ar-product-list-miniature {
    flex-direction: row;
    padding : 12px ;
}

.ar-display-list .ar-list-product-description {
    flex-direction: row;
}

.ar-display-list .ar-list-product-informations {
    padding: 12px 4px ;
}

.ar-display-list .ar-list-product-actions{
    width: 25%;
    min-width: 232px;
    border-left: solid 1px var(--ar-pl-list-border);
    padding-left: 16px;
}


/* =========================================================
   SLIDER GRID — règles spécifiques au slider
   ========================================================= */

.ar-display-slider-grid .ar-product-list__slider-wrapper {
    display: flex;
    flex-direction: column;
}

.ar-display-slider-grid .ar-product-list__slider {
    flex-wrap: nowrap;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    cursor: grab;
}

.ar-display-slider-grid .ar-product-list__slider.ar-pl-dragging {
    scroll-behavior: auto;
    scroll-snap-type: none;
    cursor: grabbing;
    user-select: none;
}

.ar-display-slider-grid .ar-product-list__slider::-webkit-scrollbar {
    display: none;
}

.ar-display-slider-grid .ar-product-list__item {
    scroll-snap-align: start;
}

/* Barre de contrôles : dots au centre, boutons à droite */
.ar-pl-slider-controls {
    display: flex;
    align-items: center;
    margin-top: 12px;
    flex-direction: row;
}

.ar-pl-slider-controls-both{
    padding-left: 78px ;
}

.ar-pl-slider-controls-buttons{
    flex-direction: row-reverse;
}

.ar-pl-slider-dots {
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
}

.ar-pl-slider-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 2px solid var(--ar-pl-dots-border);
    background: transparent;
    padding: 0;
    cursor: pointer;
    transition: background 0.2s;
}

.ar-pl-slider-dot.ar-pl-dot-active {
    background: var(--ar-pl-dots-active);
}

.ar-pl-slider-arrows {
    display: flex;
    gap: 6px;
    flex-shrink: 0;
}

.ar-pl-slider-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 50%;
    background: var(--ar-pl-slider-btn-bg);
    color: var(--ar-pl-slider-btn-fill);
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    transition: opacity 0.2s;
    padding: 0;
}

.ar-pl-slider-btn svg {
    fill : var(--ar-pl-slider-btn-fill); ;
    width: 32px ;
    height: 32px ;
}

.ar-pl-slider-btn:hover {
    opacity: 0.8;
}

.ar-pl-slider-btn:disabled {
    opacity: 0.3;
    cursor: default;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1199px) {
    .ar-display-grid .ar-product-list__item {
        flex: 0 0 33.333%;
        max-width: 33.333%;
    }
}

@media (max-width: 859px) {

    .ar-display-list .ar-product-list-miniature{
        padding: 0px;
    }

    .ar-display-list .ar-list-product-description {
        flex-direction: column;
    }

    .ar-display-list .ar-list-product-actions {
        border-left: 0 none ;
        padding-left : 0 ;
    }

    .ar-display-list .ar-pl-add-to-cart,
    .ar-display-list  .ar-pl-view-product{
        display: none;
    }

    .ar-display-list .ar-list-product-product-price-and-shipping{
        padding-bottom: 0;
    }

    .ar-display-list .ar-list-product-description{
        padding-bottom: 12px ;
    }

}

@media (max-width: 767px) {
    .ar-display-grid .ar-product-list__item {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .ar-pl-slider-controls {
        flex-direction: column;
    }

    .ar-pl-slider-controls-both{
        padding-left : 0
    }

    .ar-pl-slider-arrows{
        padding-top: 12px ;
    }

    .ar-pl-slider-dots{
        padding-top: 12px ;
    }

    .ar-pl-slider-controls-both .ar-pl-slider-dots{
        padding-bottom: 16px ;
    }
}

@media (max-width: 480px) {
    .ar-display-slider-grid .ar-product-list__item {
        flex: 0 0 100%;
        max-width: 100%; /* override la règle 767px de .ar-display-grid */
    }
}