/*
 * Custom code goes here.
 * A template should always ship with an empty custom.css
 */

/** BEGIN RGAA ACCESSIBILITY **/

/* Lien d'évitement (skip link) — RGAA 12.7 */
.skip-to-content {
    position: absolute;
    top: -100%;
    left: 0;
    z-index: 99999;
    background: #202944;
    color: #fff; 
    padding: 12px 20px;
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    border-radius: 0 0 4px 0;
    transition: top 0.2s; 
} 
.skip-to-content:focus { 
    top: 0;
    outline: 3px solid #ffbf47;   
    outline-offset: 2px; 
} 
  
/* Classe utilitaire pour texte réservé aux lecteurs d'écran — RGAA 10.1 */
.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;
    /* texte invisible : couleurs forcées pour éviter les faux positifs
       de contraste des outils d'audit (WAVE) */
    color: #000;
    background-color: #fff;
}

/* Focus uniforme — RGAA 10.7 : jaune #ffbf47, 3px, partout, toujours */
/* :focus couvre les navigateurs qui ne supportent pas :focus-visible */
a:focus,
button:focus,
input:focus,
select:focus,
textarea:focus,
[tabindex]:focus,
.btn:focus,
.btn-unstyle:focus {
    outline: 3px solid #ffbf47 !important;
    outline-offset: 2px;
    border-radius: 2px;
    /* annule le -webkit-focus-ring-color de theme.css */
    box-shadow: none !important;
}
/* :focus-visible pour les navigateurs modernes (masque le focus au clic souris) */
:focus-visible {
    outline: 3px solid #ffbf47 !important;
    outline-offset: 2px;
}
/* masquer le focus au clic souris sur les navigateurs supportant :focus-visible */
a:focus:not(:focus-visible),
button:focus:not(:focus-visible),
[tabindex]:focus:not(:focus-visible),
.btn:focus:not(:focus-visible),
.btn-unstyle:focus:not(:focus-visible) { 
    outline: none !important;
    box-shadow: none !important;
}

/* Bouton menu mobile sans style natif */
.btn-menu-mobile {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}
.btn-menu-mobile:focus-visible {
    outline: 3px solid #ffbf47;
    outline-offset: 2px;
    border-radius: 4px;
}

/* Indicateur visuel champ requis — RGAA 11.10 */
.required-indicator {
    color: var(--primary);
    font-weight: 700;
}

/* Désactivation des animations si préférence reduced-motion — RGAA 13.8 */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
    #row_brands,
    .row_shop {
        overflow-x: auto;
        animation: none !important;
    }
}

/* Amélioration contraste boutons primaires — RGAA 3.3 */
.btn-primary,
.btn.btn-primary {
    background-color: var(--primary);
    color: #fff;
    border-color: var(--primary);
}
.btn-primary:hover,
.btn-primary:focus {
    background-color: #b8040f;
    border-color: #b8040f;
    color: #fff;
}

/* Modales : overlay flou cliquable */
.modal-open .modal {
    overflow-x: hidden;
    overflow-y: auto;
}

/* Carrousel : bouton pause/lecture — RGAA 13.8 */
.carousel .direction .carousel-pause {
    position: absolute;
    bottom: 10px;
    right: 10px;
    z-index: 10;
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid #595959;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #202944;
}
.carousel .direction .carousel-pause:focus-visible {
    outline: 3px solid #ffbf47;
    outline-offset: 2px;
}

/* Pages CMS : theme.css force text-align: justify, ce qui crée des espacements
   irréguliers entre les mots (gêne la lecture, dyslexie) — RGAA 10.3.
   Toutes les pages CMS (mentions légales, CGV, livraison, etc.) sont concernées. */
.page-content.page-cms,
.page-content.page-cms p,
.page-content.page-cms li {
    text-align: left;
}
/* la classe utilitaire .text-justify de theme.css est en !important : on la neutralise aussi */
.page-content.page-cms .text-justify {
    text-align: left !important;
}

/** END RGAA ACCESSIBILITY **/

/** BEGIN VARIABLE **/

:root {
    --primary: #1d1930;
    --primary_light: #1d1930;
    --primary_strong: #1d1930;
    --secondary: #E30613;
    --secondary_light: #da303c;
    --btn_secondary: #E30613;
    --black: #000;
    --white: #fff;
    --danger: #9c4752;
    --background: #fff;
    --background_light: #f6f8fb;
    --background_strong: #e6effb;
    --bg_header: #fff;
    --border_product: #bdc3c7;
    --bg_details_card: #576574;
    --color_details_card: #fff;
    --background_stock: #0077BB;
    --background_fournisseur: #8C2896;
    --background_preco: #B3006A;
    --color_typologie: #fff;
    --font_title: "arial", sans-serif;
    --font_text: "arial", sans-serif
}

*:not(i) { 
    font-family: "arial", sans-serif;
}

.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
h1,
h2,
h3,
h4,
h5,
h6,
.title {
    font-family: var(--font_title) !important;
    color: var(--primary);
}
@media (min-width: 980px) {
    .container {
        width: 1280px;
        max-width: 100%;
    }
}
#index #wrapper{
    padding-top: 0;
}
.btn-primary.active.focus, .btn-primary.active:focus, .btn-primary.active:hover, .btn-primary:active.focus, .btn-primary:active:focus, .btn-primary:active:hover, .open>.btn-primary.dropdown-toggle.focus, .open>.btn-primary.dropdown-toggle:focus, .open>.btn-primary.dropdown-toggle:hover{
    background-color: var(--secondary_light);
}
/** END VARIABLE **/

/** BEGIN HEADER **/

html,
body {
    max-width: 100%;
    overflow-x: hidden;
    scroll-behavior: smooth;
}
#header .header-nav .user-info a{
    display: flex;
    align-items: center;
    gap: 10px;
}
#header .logo{
    max-width: 100px;
}

#header .header-nav .language-selector, #header .header-nav .user-info,
#header .nav_top label{
    margin: 0;
    font-size: 16px;
}
#header .nav_top select{
    border: none;
    background-color: transparent;
}
#header .header-nav #_desktop_contact_link #contact-link, .sitemap{
    margin-top: 0;
}
#header .nav_top .left_nav{
    text-align: start;
    display: flex;
    align-items: center;
}
#header .nav_top .right_nav{
    flex: 1;
    display: flex;
    justify-content: end;
    align-items: center;
    gap: 2vw;
}
#header .header-nav .top_header{
    height: 100%;
}
body#checkout #header .header-nav,
#header .header-nav{
    padding: 0;
    max-height: none;
    height: 65px;
    border: none;
    background-color: var(--background_light);
}
#header .top_header .mobile{
    padding-top: 8px;
    padding-right: 5px;
}
#header .top_header .mobile #_mobile_user_info{
    margin-top: 15px;
}
.nav_prepaid div,
.nav_prepaid{
    display: flex;
    align-items: center;
    gap: 10px;
}
.nav_prepaid::before{
    margin-left: -1vw;
    width: 100%;
}
.left_nav::before{
    width: calc(100% + 20px);
    margin-left: -10px;
}
.nav_prepaid::before{
    content: "";
    position: absolute;
    height: 100%;
    border-radius: 9px;
    border: 1px dashed grey;
    z-index: -1;
}
.left_nav,
.nav_prepaid{
    position: relative;
    z-index: 0;
}
.product-information {
    padding-top: 10px;
}

.nav_prepaid,
#header .header-nav .user_notice,
#header .header-nav #_desktop_contact_link{
    border-right: var(--primary) 1px solid;
    padding-right: 2vw;
    
}
.top-menu[data-depth="1"]{
    margin: 0;
}
#header .header-top a[data-depth="1"],
#header .header-top a[data-depth="0"]{
    color: var(--primary);
}
#header .header-top a[data-depth="1"]:hover,
#header .header-top a[data-depth="0"]:hover{
    color: var(--secondary);
}
@supports (-moz-appearance: none) {
    /* Styles spécifiques à Firefox */
    .top-menu .sub-menu.collapse{
        width: 540px;
      }
  }

.top-menu .sub-menu ul[data-depth="1"]>li{
    margin: 0;
}
.top-menu .sub-menu ul[data-depth="1"]>li a{
    padding: 5px 15px;
    background-color: var(--white);
    border-left: 2px solid transparent;
    transition: 0.2s ease-in-out;
}
.top-menu .sub-menu ul[data-depth="1"]>li a:hover{
    border-left: 2px solid var(--primary);
}
.top-menu .sub-menu{
    top: 102px !important;
    padding: 0;
    transition: opacity .2s ease, visibility .2s ease;
}
#header .header-nav #_desktop_contact_link #contact-link a,
#header .header-nav #_desktop_contact_link #contact-link{
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--secondary);
}
#header .nav_top{
    display: flex;
    align-items: center;
    padding: 15px 75px;
}
#header,
#header .header-top {
    background-color: var(--bg_header);
    transition: 0.3s;
}

#wrapper {
    background: var(--background);
}

#_desktop_logo{
    padding-left: 0;
}


#header .header-nav .account_log {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    user-select: none;
}
#menu_user {
    position: fixed;
    top: 65px;
    right: -100%;
    width: 320px;
    max-width: 90vw;
    height: calc(100vh - 65px);
    background: #fff;
    z-index: 99999; 
    box-shadow: -4px 0 16px rgba(0,0,0,0.13);
    border-left: var(--primary) 1px solid;
    padding-top: 20px;
    overflow-y: auto;
    transition: right 0.3s ease-in-out;
}
#menu_user.active {
    right: 0;
}
#_mobile_user_info #menu_user {
    top: 65px;
}
#_mobile_user_info #menu_user.active {
    right: 0;
}
.account-list_header li{
    padding-bottom: 20px;
}
.account-list_header a{
    padding: 5px 0;
    transition: 0.3s;
    padding-left: 15px;
    border-left: 3px solid transparent;
}
.account-list_header li:hover a{
    border-left: 3px solid var(--secondary);
    color: var(--secondary) !important;
}
.account-list_header .link-item i{
    display: none;
}
#_mobile_user_info,
#_desktop_user_info {
    position: relative;
}
#_desktop_user_info .user-info {
    display: flex;
    justify-content: space-between;
    width: 100%;
    align-items: center;
    display: flex;
}

#header .header-top{
padding: 0;
}

.header_row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
    padding: 20px 70px;
}

.user_cta {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    align-items: center;
}
#header{
    box-shadow: none;
}

.header_menu {
    flex: 1;
    min-width: 0; /* autorise le menu à se réduire au lieu de pousser le dernier lien hors cadre */
    text-align: center;
    height: 100%;
    background-color: var(--background_light);
    padding-left: 70px;
    display: flex;
    align-items: center;
}
#header .header-top .menu{
    padding-left: 0;
    margin-left: -10px;
}
#top-menu li.cms-category,
#top-menu li.cms-page,
#top-menu li.category {
    position: relative;
}

.top-menu .sub-menu {
    width: auto;
    min-width: auto;
    margin-left: 0;
    margin-top: -2px;
    max-height: 50vh;
    width: max-content;
    min-width: max-content;
}
a.user_notice {
    display: flex;
    align-items: center;
    gap: 10px;
}

#top-menu li.cms-category,
#top-menu li.cms-page,
#top-menu li.category,
#top-menu {
    padding: 0;
    height: 100%;
}

/* Barre de menu : liens sur UNE seule ligne, centrés verticalement, sans
   débordement vertical (le dernier lien passait sous la barre / sur le slider). */
#top-menu {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 0;
}
#top-menu > li {
    display: flex;
    align-items: center;
    height: 100%;
}



#top-menu li.cms-category>a.dropdown-item[data-depth="0"],
#top-menu li.cms-page>a.dropdown-item[data-depth="0"],
#top-menu li.link>a.dropdown-item[data-depth="0"],
#top-menu li.category>a.dropdown-item[data-depth="0"] {
    padding: 40px 10px;
}
@media (max-width:910px){
    #top-menu li.cms-category>a.dropdown-item[data-depth="0"],
    #top-menu li.cms-page>a.dropdown-item[data-depth="0"],
    #top-menu li.category>a.dropdown-item[data-depth="0"]{
        font-size: 14px;
    }
}
@media (max-width:810px){
    #top-menu li.cms-category>a.dropdown-item[data-depth="0"],
    #top-menu li.cms-page>a.dropdown-item[data-depth="0"],
    #top-menu li.category>a.dropdown-item[data-depth="0"]{
        font-size: 12px;
    }
}
@media (max-width:767px){
    #top-menu li.cms-category>a.dropdown-item[data-depth="0"],
    #top-menu li.cms-page>a.dropdown-item[data-depth="0"],
    #top-menu li.category>a.dropdown-item[data-depth="0"]{
        padding: 10px;
    }
}

/* Paysage tablette / petit écran large (≈ 768–1024px) : le menu header tenait
   sur une seule ligne et son dernier lien débordait sous le slider.
   On réduit l'espacement latéral et on autorise le retour à la ligne propre. */
@media (min-width: 768px) and (max-width: 1024px){
    .header_menu{
        padding-left: 15px;
    }
    #top-menu{
        flex-wrap: wrap;
        justify-content: center;
    }
    #top-menu li.cms-category>a.dropdown-item[data-depth="0"],
    #top-menu li.cms-page>a.dropdown-item[data-depth="0"],
    #top-menu li.link>a.dropdown-item[data-depth="0"],
    #top-menu li.category>a.dropdown-item[data-depth="0"]{
        padding: 12px 8px;
        white-space: nowrap;
    }
}
.logout i {
    color: var(--danger);
    font-size: 34px;
}
#search_widget {
    flex: 1;
}
#search_widget {
    overflow: visible;
}
#search_widget form input{
    background: transparent;
    border: var(--border_product) 1px solid;
    /* contraste texte saisi — RGAA 3.3 */
    color: var(--primary);
}
#search_widget form input:focus {
    outline: 3px solid #ffbf47 !important;
    outline-offset: 2px; 
    box-shadow: none !important;
}

.header-top .search-widgets{
    max-width: none;
} 


a.logout {
    display: flex;
}

#_desktop_cart .header i,
.user_notice i,
.account i {
    color: var(--primary);
    font-size: 34px;
    height: auto;
    width: auto;
}

.account .account-signin-label {
    font-size: 14px;
    font-weight: 600;
    color: var(--primary);
    white-space: nowrap;
}

#_mobile_user_info .account .account-signin-label {
    display: none;
}


#_desktop_cart {
    display: flex;
    justify-content: end;
    padding-right: 0;
}

/* Correction positionnement panneau panier — fixed sous le header, aligné à droite */
#id_floting_cart {
    position: fixed !important;
    top: 205px !important;
    right: 0 !important;
    height: calc(100vh - 205px) !important;
}
#id_floting_cart.display_hidden {
    right: -45vw !important;
    top: 205px !important;
}
#_desktop_cart .blockcart {
    width: fit-content; 
    cursor: pointer;
    user-select: none; 
}

#header .header-nav .cart-preview.active {
    background-color: transparent; 
}

#header .header-nav .cart-preview.active i {
    font-size: 34px;
}

#header .header-nav .blockcart.active a:hover,
#header .header-nav .cart-preview.active a,
#header .header-nav .cart-preview.active i {
    color: var(--primary);
}

#_desktop_top_menu .top-menu[data-depth="1"]{
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    max-height: 50vh;
}
#header .top-menu a.dropdown-submenu[data-depth="1"]{
    font-weight: 400;
}

@media (max-width: 768px) {
    .header_action {
        width: 100%;
    }

    .user_cta {
        justify-content: center;
        width: 100%;
        padding: 10px;
    }
}





@media only screen and (min-width: 992px) {
    .header-top .search-widgets form input[type=text] {
        min-width: 0;
    }
}

#header .header-top a[data-depth="0"] {
    position: relative;
}

#header .header-top a[data-depth="0"]::after {
    content: "";
    transition: 0.3s ease-in-out;
    position: absolute;
    height: 2px;
    background-color: var(--primary);
    width: 0%;
    left: 50%;
    transform: translateX(-50%);
    bottom: 0;
}

#header .header-top a[data-depth="0"]:hover::after {
    width: 100%;
    left: 0;
    transform: translateX(0%);
}



.btn.btn-primary{
    padding: 13px 30px;
    gap: 10px;
    background: var(--secondary) !important;
    color: var(--white) !important;
    border: 2px solid var(--secondary);
    border-radius: 30px;
    text-transform: none;
    font-weight: 500;
    font-size: 16px;
    transition: 0.1s ease-in-out;
}

.btn.btn-primary-outline{
    padding: 13px 30px;
    gap: 10px;
    background: var(--white) !important;
    border: 2px solid var(--secondary);
    color: var(--secondary) !important;
    border-radius: 30px;
    text-transform: none;
    font-weight: 500;
    font-size: 16px;
    transition: 0.1s ease-in-out;
    width: 100%;
}
.btn.btn-secondary{
    padding: 13px 30px;
    gap: 10px;
    background: var(--btn_secondary) !important;
    border: 2px solid var(--btn_secondary);
    color: var(--white) !important;
    border-radius: 30px;
    text-transform: none;
    font-weight: 500;
    font-size: 16px;
    transition: 0.1s ease-in-out;
}

.carousel .carousel-item figure {
    width: 100%;
}

.carousel .carousel-inner {
    height: auto;
    margin-bottom: 0;
}
@media (max-width: 991px) {
    .carousel {
        left: 0;
        width: 100%;
        padding-bottom: 0;
        margin-left: 0;
        background-color: #f6f6f6;
        -webkit-box-shadow: none;
        box-shadow: none;
    }
}
#carousel {
    margin-bottom: 0;
    flex: 1;
}

.row_fullwidth{
    display: flex;
}
#fa_customtext p {
    color: #232323;
}
/** END HEADER **/

/* Carrousel — focus visible sur les boutons Précédent/Suivant (opacity 0.5 dans theme.css) */
.carousel-control:focus-visible {
    opacity: 1;
    outline: 3px solid #ffbf47 !important;
    outline-offset: 2px;
}

/* Carrousel — focus visible sur le lien de la slide active (positionné sur image, outline doit trancher) */
#carousel .carousel-item.active a:focus-visible {
    outline: 3px solid #ffbf47 !important;
    outline-offset: -3px;
    box-shadow: 0 0 0 6px rgba(0, 0, 0, 0.85) inset !important;
}

/* fa_categoriesslider — neutralisation styles <a> sur .cat_items (div → a pour RGAA) */
#categoriesslider a.cat_items {
    display: block;
    color: inherit;
    text-decoration: none;
}

/* fa_reassurancehome — font-size minimum 12px (RGAA 3.1) */
#fa_reassurance .sub-title {
    font-size: 12px;
}

/* fa_reassurancehome — .item_rea est décoratif, pas interactif : retirer cursor pointer */
#fa_reassurance .item_rea {
    cursor: default;
}

/* fa_featuredproduct_fullace — onglets catégorie <h4> : rôle bouton + focus clavier (RGAA 7.1) */
#fa_featuredproduct_fullace .nav_item h4[data-id] {
    cursor: pointer;
    outline: none;
}
#fa_featuredproduct_fullace .nav_item h4[data-id]:focus-visible {
    outline: 3px solid #ffbf47;
    outline-offset: 2px;
    border-radius: 2px;
}

/** BEGIN PRODUCT MINIATURE **/
.product-miniature .product-title a {
    font-size: 18px;
    color: var(--black);
}

article.product-miniature .thumbnail-container {
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid var(--border_product);
}

.product-miniature .product-flags li.product-flag:first-child {
    margin-top: 50px;
}

article.product-miniature .product-description {
    padding: 0;
}

article.product-miniature .product-description .block_info_price {
    width: 100%;
}

article.product-miniature .product-description .block_info_price .row_1,
article.product-miniature .product-description .block_info_price .row_2 {
    display: flex;
}

article.product-miniature .product-description .detail_quantity,
article.product-miniature .product-description .unit_price,
article.product-miniature .product-description .total_price,
article.product-miniature .product-description .reference {
    width: 50%;
    background-color: var(--bg_details_card);
    color: var(--color_details_card);
    padding: 10px 0;
    border-bottom: 1px solid var(--border_product);
    display: flex;
    justify-content: center;
    align-items: center;
}

.product-miniature .product-price-and-shipping {
    color: var(--color_details_card);
    font-weight: 400;
}


article.product-miniature .product-description .total_price,
article.product-miniature .product-description .detail_quantity {
    border-right: var(--border_product) 1px solid;
}

article.product-miniature .product-description .typologie {
    padding: 10px 0;
    text-align: center;
    color: var(--color_typologie);
}

article.product-miniature .product-description .typologie.typologie0 {
    background-color: var(--primary);
}

article.product-miniature .product-description .typologie.typologie1 {
    background-color: var(--background_stock);
}

article.product-miniature .product-description .typologie.typologie2 {
    background-color: var(--background_fournisseur);
}

article.product-miniature .product-description .typologie.typologie3 {
    background-color: var(--background_preco);
}

.product-miniature .regular-price {
    color: var(--secondary);
}

/** END PRODUCT MINIATURE **/

/** Compteur **/

.time-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 5px;

}

#countdown,
.countdown {
    display: flex;
    padding: 3px;
}

#days,
#hours,
#minutes,
#seconds,
.days,
.hours,
.minutes,
.seconds {
    font-weight: 700;
    font-size: 2rem;
}

.clock {
    position: relative;
    display: flex;
    justify-content: start;
    align-items: center;
    gap: 60px;
    margin: 25px 0;
    padding-left: 15px;
}

.dyDots,
.hrDots,
.minDots,
.secDots {
    position: relative;
    width: 50px;
    height: 50px;
    border-radius: 50%;
    rotate: 90deg;
}

.dyDots::before,
.hrDots::before,
.minDots::before,
.secDots::before {
    content: '';
    position: absolute;
    inset: -20px;
    border-radius: 50%;

}

.dyDots h2.num_clock,
.hrDots h2.num_clock,
.minDots h2.num_clock,
.secDots h2.num_clock {
    color: var(--primary);
    position: absolute;
    text-align: center;
    inset: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    text-transform: uppercase;
    font-size: 20px;
    flex-direction: column;
    transform: rotate(-90deg) translate(-5px, 10px);
}

.dyDots h2.num_clock span,
.hrDots h2.num_clock span,
.minDots h2.num_clock span,
.secDots h2.num_clock span {
    font-size: 8px;
    position: absolute;
    bottom: 0;
}

.dyDots .dot {
    position: absolute;
    width: 6px;
    height: 2px;
    background-color: var(--primary);
    transform-origin: 50px;
    top: 50%;
    left: -15px;
}

.minDots .dot,
.hrDots .dot,
.secDots .dot {
    position: absolute;
    width: 6px;
    height: 2px;
    background-color: var(--primary);
    transform-origin: 50px;
    top: 50%;
    left: -15px;
}

.dyDots .dot.active,
.hrDots .dot.active,
.minDots .dot.active,
.secDots .dot.active {
    background-color: var(--primary);
    box-shadow: 0 0 10px var(--primary),
}


.dyDots .dot.active~.dot,
.hrDots .dot.active~.dot,
.minDots .dot.active~.dot,
.secDots .dot.active~.dot {
    background-color: var(--primary);
    opacity: 0.3;
}

.minDots .dot:nth-child(5n+5),
.secDots .dot:nth-child(5n+5) {
    width: 10px;
}

.hrDots .dot:nth-child(3n+3) {
    width: 10px;
}

/** FOOTER **/

/* Contraste liens footer — RGAA 3.3 : #7a7a7a (4.3:1) → #666 (5.7:1) */
.footer-container li a,
.block-contact,
.account-list a,
body#checkout #footer {
    color: #666666;
}

/* Contraste fil d'Ariane (élément courant + séparateurs) — RGAA 3.3 */
#wrapper .breadcrumb li:last-child,
#wrapper .breadcrumb li::after {
    color: #666666;
}

/* Soulignement réservé aux liens : neutralise le souligné saisi dans l'éditeur BO
   (descriptions produit) — confusion possible avec un lien */
.product-description span[style*="underline"],
.product-description u,
#product-description-short span[style*="underline"],
#product-description-short u {
    text-decoration: none !important;
}

/* Contraste pages listing (recherche/catégorie) — RGAA 3.3 : gris hérités trop clairs → #666 (5.7:1) */
.input_search::placeholder,
.form-control::placeholder {
    color: #666666;
    opacity: 1;
}
.products-selection .total-products p,
.products-selection .sort-by,
.products-selection .title,
#products .products .product_reference,
#products .products .min_qty,
.pagination p,
#pagenotfound .page-not-found,
#products .page-not-found,
.page-content.page-not-found,
.page-content.page-not-found p {
    color: #666666 !important;
}

/* Contraste tunnel de commande — RGAA 3.3 : gris #7a7a7a → #666 */
body#checkout section.checkout-step small,
body#checkout section.checkout-step p.identity,
body#checkout #checkout-personal-information-step .content p,
body#checkout .cart-summary-products p,
body#checkout #order-summary-content .step-edit,
body#checkout .cancel-address,
body#checkout section.checkout-step .delete-address,
body#checkout section.checkout-step .edit-address,
body#checkout .additional-information,
body#checkout .additional-information p {
    color: #666666;
}

/* .text-muted du thème est en #7a7a7a !important (4.3:1) → #666 (5.7:1) */
.text-muted {
    color: #666666 !important;
}

/* theme.css cible directement l'élément p en #7a7a7a (4.3:1, échec RGAA 3.2) :
   la règle directe sur p bat la couleur héritée des conteneurs (#content, etc.).
   custom.css est chargé après theme.css, même spécificité = cette règle gagne. */
.page-content.page-cms ul,
p {
    color: #666666;
}

/* Tuiles tableau de bord Mon compte — RGAA 3.3 : #7a7a7a → #666 */
.page-my-account #content .links a {
    color: #666666;
}

/* Pages compte client — RGAA 3.3 : tout le contenu hérite de #7a7a7a (theme.css) → #666
   (couvre historique, avoirs, détail commande, etc.)
   page-order-detail / page-order-follow : body sans la classe page-customer-account */
.page-customer-account #content,
.page-order-detail #content,
.page-order-follow #content {
    color: #666666;
}
#history .orders .order a h3,
#history .orders .order a .order-ref-title {
    color: #666666;
    /* rendu h3 d'origine conservé (h3 → h2, RGAA 9.1) */
    font-size: 1.17rem;
    font-weight: 700;
    margin: 0 0 .25rem;
}

/* En-têtes de tables compte (thead-default : #7a7a7a sur #f6f6f6 = 4:1) — RGAA 3.3 */
.thead-default th {
    color: #666666;
}

/* Pastilles de statut commande : voile sombre superposé à la couleur BO (inline)
   → texte blanc toujours ≥ 4,5:1 quelle que soit la couleur configurée — RGAA 3.3 */
.label-pill {
    background-image: linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45));
    color: #fff;
}

/* Page adresses — RGAA 3.3 + 9.1 : liens Mettre à jour/Supprimer #7a7a7a → #666 ;
   titre de carte h4 → h2 (rendu h4 conservé) */
.page-addresses .address .address-footer a {
    color: #666666;
}
.page-addresses .address .address-body h2 {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 .5rem;
    color: #232323;
}

/* Formulaires — RGAA 3.3 : texte saisi sombre, commentaires #666 (theme.css : #7a7a7a) */
input.form-control,
select.form-control,
textarea.form-control,
.form-control {
    color: #232323;
}
span.form-control-comment,
div.form-control-comment,
.form-control-comment {
    color: #666666;
}

/* Confirmation de commande — RGAA 3.3 */
body#order-confirmation #content-hook_order_confirmation p,
body#order-confirmation .page-order-confirmation p,
body#order-confirmation #content-hook_payment_return p {
    color: #666666;
}
/* icône "commande confirmée" : vert #4cbb6c (2.3:1) → vert foncé accessible (5.1:1) */
.done {
    color: #2e7d32 !important;
}
/* th des totaux (tableau de données) : conserve le rendu des anciens td */
.order-confirmation-table table th[scope="row"] {
    text-align: left;
    font-weight: inherit;
}
/* en-têtes "Articles de la commande / Prix / Quantité / Total" :
   rendu h3 d'origine conservé après passage en h2 + div (RGAA 9.1) */
#order-items .table__title-head {
    font-size: 1.17rem;
    font-weight: 700;
    margin: 1rem 0;
    color: var(--primary);
}

/* fieldsets transporteurs + paiement (RGAA 11.x) : neutralise les styles natifs du fieldset */
fieldset.delivery-options,
fieldset.payment-options {
    border: 0;
    padding: 0;
    margin: 0;
    min-width: 0;
}

.container_footer {
    display: flex;
    justify-content: space-between;
}
.block-contact .block-contact-title,
#block_myaccount_infos .myaccount-title a{
    color: var(--primary);
}
.container_footer #block_myaccount_infos,
.container_footer .links{
    text-align: center;
}
.block_newsletter form input{
    height: auto;
}
#footer .block_newsletter .page-content.page-cms ul,
#footer .block_newsletter p,
.page-content.page-cms #footer .block_newsletter ul {
    padding-top: 0;
}

.block_newsletter {
    margin-top: 0;
} 

.text-center {
    text-align: center !important;
}
@media (max-width:768px){

    .container_footer{
        flex-direction: column;
    }

}

/*** PRODUCT PAGE ***/
.product-prices .tax-shipping-delivery-label .delivery-information::before {
    content: "";
}
#product .product-cover{
    box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.101961);
    border-radius: 9px;
    padding: 10px; 
    overflow: hidden;
}
.images-container .product-images>li.thumb-container .thumb_img{
    border-radius: 6px;
}
.images-container .product-images>li.thumb-container .thumb{
    box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.101961);
    border-radius: 9px;
    display: inline-block;
}
#product #content {
    max-width: none;
}
.product-cover:hover .layer,
.product-cover .layer:hover,
.product-cover .layer:focus-visible {
    width: 30%;
    height: 30%;
    transform: translate(-50%,-50%);
    top: 50%;
    left: 50%;
    border-radius: 6px;
    opacity: 1;
}
.product-cover .layer:focus-visible {
    outline: 3px solid #ffbf47 !important;
    outline-offset: 3px;
}
#product .clock {
    margin-bottom: 3rem;
}

.custom-checkbox input[type=checkbox]+span.color,
.variant-links .color,
label .color {
    height: 35px;
    width: 35px;
    border-radius: 50%;
    padding: 4px;
}
#product .tag_typologie {
    display: flex;
    align-items: center;
    padding: 3px 5px;
    gap: 5px;
    font-size: 16px;
    border: 1px solid var(--background_light);
    border-radius: 9px;
    font-weight: 300;
    width: fit-content;
}
#product .tag_typologie.typologie_1  {
    color: var(--background_stock);
}
#product .tag_typologie.typologie_2  {
    color: var(--background_fournisseur);
}
#product .tag_typologie.typologie_3  {
    color: var(--background_preco);
}
#product .tag_typologie.typologie_1 svg   {
    fill: var(--background_stock);
}
#product .tag_typologie.typologie_2 svg  {
    fill: var(--background_fournisseur);
}
#product .tag_typologie.typologie_3 svg  {
    fill: var(--background_preco);
}
#product .tag_typologie svg{
    display: flex;
    width: 12px;
}

#product .row_price_product{
    display: flex;
    align-items: center;
    margin: 25px 0;
    justify-content: space-between;
}
@media (max-width:980px){
    #product .row_price_product{
        flex-direction: column;
        gap: 15px;
        align-items: start;
    }
}

#price-panachage-section{
    display: flex;
    gap: 10px;
    align-items: flex-end;
}
#price-panachage-section .from{
    color: var(--secondary);
    font-weight: 600;
    font-size: 14px;
}
#price-panachage-section #price-mini-panachage,
#price-panachage-section .pieces_number{
    font-weight: 300;
    font-size: 16px;
    color: var(--primary);
}
#price-panachage-section .price_value,
#price-panachage-section .currency{
color:var(--secondary);
font-weight: 600;
font-size: 28px;



}
#product .list_items_product .item{
    cursor: pointer;
    position: relative;
    text-transform: uppercase;
    padding-bottom: 5px;
    user-select: none;
    font-weight: 600;
    font-size: 14px;
}
#transport .step,
.content_timeline .step,
.panachage-title{
    font-weight: 600;
    font-size: 16px;
}
.product-flag{
    border-radius: 0 9px 9px 0;
}
#minimum-panachage-section{
    margin: 1rem 0;
}

#product .product-cover img{
    border-radius: 6px;
}
#product .list_items_product{
    display: flex;
    gap: 15px;
    margin-bottom: 15px;
}
#product .item_content{
    overflow: hidden;
}
#product .item_content{
    max-height: 0px;
    transition: 0.3s ease-in-out;
}
#product .item_content.active{
    max-height: 40vh;
    transition-delay: 0.3s;
}
#product .content_product{
    position: relative;
}
#product .infomration_product{
    margin-top: 50px;
}
#product .list_items_product .item::after {
    content: "";
    transition: 0.3s ease-in-out;
    position: absolute;
    height: 1px;
    background-color: var(--secondary);
    width: 0%;
    left: 50%;
    transform: translateX(-50%);
    bottom: 0;
}
#product_degressivity {
    margin: 25px 0;
}
.block-category {
    min-height: 0.75rem;
    margin-bottom: 1.563rem;
}

/* Tableau tarifs dégressifs */
.table-degressivity {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
}
.table-degressivity caption {
    font-weight: 700;
    font-size: 1rem;
    color: var(--primary);
    text-align: left;
    margin-bottom: 0.5rem;
    caption-side: top;
    padding-bottom: 0.5rem;
}
.table-degressivity th,
.table-degressivity td {
    border: 1px solid var(--primary);
    padding: 10px 12px;
    text-align: center;
    white-space: nowrap;
}
.table-degressivity thead th {
    background-color: var(--primary);
    color: #fff;
    font-weight: 600;
}
.table-degressivity tbody th {
    background-color: var(--background_light);
    font-weight: 600;
    color: #202944;
    text-align: left;
}
.table-degressivity tbody td {
    font-weight: 700;
    color: var(--primary);
}
.table-degressivity tbody tr:hover td {
    background-color: var(--background_strong);
}

@media (max-width: 980px) {
    .table-degressivity {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}
#product .list_items_product .item.active::after {
    width: 100%;
    left: 0;
    transform: translateX(0%);
}
#impact_carbone{
    margin: 1rem 0;
}
#impact_product{
    justify-content: end;
}
.content_impact_product{
    display: flex;
    margin-bottom: 1rem;
}
.infomration_product .item_list ul li{
    font-weight: 300;
    font-size: 16px;
    background-color: var(--background_light);
    transition: 0.3s ease-in-out;
    padding: 10px;
    border-radius: 9px 9px 0 0;
    color: var(--primary);
    cursor: pointer;
    user-select: none;
}
.infomration_product .item_list ul li.active{
    font-weight: 600;
    font-size: 16px;
    background-color: var(--secondary);
    color: var(--white);
}
.infomration_product .item_list ul{
    display: flex;
    gap: 5px;
    margin: 0;
}
#product .infomration_product_content{
    padding: 20px;
    background-color: var(--background_strong);
}
#product .infomration_product_content .item_info_content{
    background-color: var(--white);
    border-radius: 9px;
    opacity: 0;
    transition: 0.3s ease-in-out;
    max-height: 0;
    overflow: hidden;

}
#product .infomration_product_content .item_info_content.active{
    max-height: 80vh;
    padding: 25px;
    opacity: 1;
    transition-delay: 0.3s;
}
.product-images>li.thumb-container .thumb{
    border: solid 3px transparent;
}
/** CART **/
.cart-item-separator {
    border-bottom: var(--primary) 1px solid;
    padding-bottom: 15px;
}

/** CMS **/


.return_nav {
    position: sticky;
    bottom: 50px;
    left: 100%;
    width: 30px;
    height: 30px;
    background-color: var(--primary);
    border-radius: 50%;
    text-align: center;
    transition: 0.1s ease-in-out;
}

.return_nav:hover {
    transform: rotate(-180deg);
}

.return_nav svg {
    position: absolute;
    left: 50%;
    top: 50%;
    width: 100%;
    height: 100%;
    padding: 7px;
    transform: translate(-50%, -50%) rotate(90deg);
    transition: 0.1s ease-in-out;
    transform-origin: center;
}

.page_cms h1 {
    text-align: center;
    text-transform: uppercase;
}

.cms_subtitlte {
    text-align: center;
    max-width: 900px;
    margin: auto;
    margin-bottom: 35px;
}
.img_section{
    padding: 10px;
    border-radius: 9px;
    box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.101961);
}
.img_section img{
    border-radius: 6px;
}
.label_cms .content_cms_page .img_section {
    width: 20%;
    padding: 0;
    border-radius: 0;
    box-shadow: none;
}
.label_cms .content_cms_page .img_section img{

   
    border-radius: 0;
   
}

.label_cms .content_cms_page .info_section {
    width: 80%;
}

.menu_nav ul {
    display: flex;
    justify-content: center;
    padding: 0 5vw;
    gap: 20px;
    flex-wrap: wrap;
    margin: 50px 0;
}

.content_cms_page img {
    max-width: 100%;
    height: auto;
}


.content_cms_page .title {
    text-transform: uppercase;
}

.content_cms_page h2.title {
    text-decoration: underline;
    text-underline-offset: 10px;
    text-align: center;
    margin-bottom: 25px;
    color: var(--primary);
    scroll-margin-top: 100px;
}

.content_cms_page .content_section.w50 div {
    width: 50%;
}

.content_cms_page .content_section ul {
    list-style: initial;
    list-style-position: inside;
}

.content_cms_page .content_section ul li {
    font-weight: 300;
    font-size: 14px;
}


.content_cms_page .content_section.column {
    flex-direction: column;
}

.notation_block svg {
    fill: var(--secondary);
    fill-opacity: 0.5;
    height: 50px;
    width: 50px;
    transition: 1s;
}

.notation_block svg:hover~svg,
.notation_block svg:hover {
    fill-opacity: 1;
    transition: 0.3s;
    height: 50px;
    width: 50px;
}

.notation_block {
    display: flex;
    flex-direction: row-reverse;
    width: 100%;
    justify-content: center;
    gap: 10px;
}

.content_cms_page .content_section {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-bottom: 55px;
    gap: 20px;
}

.content_cms_page h4.title {
    text-transform: uppercase;
    color: var(--secondary);
    font-size: 16px;
}

#end-quiz,
.next_item_rse {
    visibility: hidden;
}
.rse_quiz_content .more_info .title{
    color: var(--white);
}

.rse_quiz_content {
    position: relative;
    min-height: 40vh;
    padding: 0;
}

.exit_rse {
    animation: exit_rse 0.3s ease-in forwards;
}

.enter_rse {
    animation: enter_rse 0.3s ease-in forwards;
}

@keyframes exit_rse {
    0% {}

    100% {
        transform: translateX(-1600px);
    }
}

@keyframes enter_rse {
    0% {
        transform: translateX(600px);
    }

    100% {
        transform: translateX(-50%);
    }

}

.content_cms_page .quiz_items {
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
}

.content_cms_page .quiz_items:not(.intro) {
    display: none;
}

.content_cms_page .more_info {
    visibility: hidden;
    margin: 0;
    transition: 0.5s;
    height: 0;
    padding: 0;
    border: var(--primary) 1px solid;
    border-radius: 10px;
    background: var(--primary_light);
    color: #fff;
}



.content_cms_page .quiz_items.ongoing .items_response:hover {
    box-shadow: 8px 8px 6px #00000011;
    transform: scale(1.03);
}
/**debut CMS offre plateform b2b**/
#main.offerbtob .content_border_img img{
    border-radius: 6px;
}
#main.offerbtob .content_border_img{
    padding: 10px;
    border-radius: 9px;
    box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.101961);
}
#main.offerbtob ul {
    list-style: inside;
}
#main.offerbtob .section_6 .left p,
#main.offerbtob li{
    font-size: 14px;
    font-weight: 300;
    margin-bottom: 15px;
}

#main.offerbtob p {
    font-size: 14px;
    font-weight: 500;
    margin-bottom: 15px;
}
#main.offerbtob ul .li_title{
    font-size: 1.25rem;
    color: var(--secondary);
}
#main.offerbtob .content_cms_page h2.title{
    line-height: 36px;
}
#main.offerbtob p{
    color: var(--primary);
}
#main.offerbtob .strong{
    color: var(--secondary);
    font-weight: 700;
}
#main.offerbtob .row_cms{
    display: flex;
    align-items: center;
    justify-content: space-around;
    gap: 10px;
}
#main.offerbtob .section_1 .left{
    max-width: 33%;
}

#main.offerbtob .section_1,
#main.offerbtob .section_2,
#main.offerbtob .section_3,
#main.offerbtob .section_4,
#main.offerbtob .section_5,
#main.offerbtob .section_6,
#main.offerbtob .section_7,
#main.offerbtob .section_8{
    margin: 40px 0;
}

#main.offerbtob .section_2 .right{
    width: 33%;
}
#main.offerbtob .section_3 .left{
    width: 40%;
}
#main.offerbtob .section_4 .row_cms{
    align-items: stretch;
}
#main.offerbtob .section_4 .left{
    width: 50%;
}

#main.offerbtob .section_4 .right{
    width: 50%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-direction: column;
}
#main.offerbtob .section_5 .left{
    width: 40%;
}

#main.offerbtob .section_9 .row_shop {
    display: flex;
    max-width: 100%;
    overflow: hidden;
    flex-wrap: nowrap;
    gap: 65px;
}
#main.offerbtob .section_9 .item_shop {
    flex: 1;
    width: 200px;
    height: auto;
}
#main.offerbtob .section_9 .item_shop img {
    max-width: 100%;
    width: 200px;
    min-width: 200px;
    height: auto;
}
#main.offerbtob img{
    max-width: 100%;
    height: auto;
}




/***fin CMS offre plateform b2b **/

.content_cms_page .response {
    display: flex;
    gap: 40px;
    flex-wrap: wrap;
}
#main.rse_quiz{
    background-color: var(--primary);
}
.items_quiz:not(.items_quiz.intro){
    display: none;
}
.items_quiz{
    display: flex;
    flex-direction: column;
    height: 100vh;
}
.items_quiz .item_header{
    position: relative;
}
.items_quiz.intro .item_header .question .title{
    font-size: 4vw;
}   
.items_quiz .item_header .question .title{
    font-size: 2vw;
}   
.items_quiz .item_header .question hr{
    width: 80px;
    border-top-width: 4px;
    margin-left: 0;
}   
.items_quiz .item_header .question{
    position: absolute;
    top: 50%;
    width: 50%;
    transform: translateY(-50%);
    padding-left:10vw;
    font-size: 2.5vw;
    line-height: 2.9vw;
}

.items_quiz .item_cta,
.items_quiz .item_body{
    display: flex;
    padding:5vh 10vw;
    gap: 40px;
    flex: 1;
}

.items_quiz.end_quiz_msg .item_body .response{
    color: #fff;
    font-size: 18px;
}
.items_quiz .item_body .response{
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 50%;
}
.items_quiz .item_body .item_detail{
    display: flex;
    flex-direction: column;
    gap: 20px;
    width: 50%;
}
.items_quiz .item_body .response .items_response.good_rep span,
.items_quiz .item_body .response .items_response.bad_rep span{
    border-right: 2px solid #fff;
}
.items_quiz .item_body .response .items_response span{
    padding: 0 20px;
    border-right: 2px solid var(--primary);
}
.items_quiz.done_rse .item_body .response .items_response.bad_rep::after{
    content: "";
    position: absolute;
    background-color: #ff0000;
    background-image: url(../img/faux.png);
    background-size: 60%;
    background-position: center;
    background-repeat: no-repeat;
    box-shadow: -4px 0px 9px 9px #00000011;
    top: -36px;
    right: -43px;
    height: 80px;
    width: 80px;
    border-radius: 50%;
    overflow: hidden;
    z-index: 999;
    opacity: 1;
}
.items_quiz.done_rse .item_body .response .items_response.good_rep::after{
    content: "";
    position: absolute;
    background-color: #8cc63f;
    background-image: url(../img/correct.png);
    background-size: 60%;
    background-position: center;
    background-repeat: no-repeat;
    box-shadow: -4px 0px 9px 9px #00000011;
    top: -36px;
    right: -43px;
    height: 80px;
    width: 80px;
    border-radius: 50%;
    overflow: hidden;
    z-index: 999;
    opacity: 1;
}
.items_quiz.ongoing .item_body .response .items_response::after{
    content: "";
    opacity: 0;
    right: 50%;
    z-index: -1;
    transition: 8s;
}
.items_quiz .item_body .response .items_response{
    display: flex;
    background-color: #fff;
    align-items: center;
    gap: 20px;
    padding: 10px 0;
    border-radius: 10px;
    cursor: pointer;
    user-select: none;
    position: relative;
}
#close_rse_quiz svg{
    fill: var(--primary);
    height: 2vw;
    width: 2vw;
}
#close_rse_quiz{
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    line-height: 0;
    position: absolute;
    top: 25px;
    left: 25px;
    transform: translate(-50%,-50%);
    border-radius: 50%;
}

#end-quiz,
.close_rse_quiz_end,
.next_item_rse,
.next_item_rse_end,
.content_cms_page #start_quiz{
    display: flex;
    gap: 20px;
    align-items: center;
    padding: 7px 0;
    background-color: var(--secondary);
    text-transform: uppercase;
    color: #fff;
    border-radius: 10px;
    user-select: none;
    cursor: pointer;
    max-width: 345px;
    height: fit-content;
}
.next_item_rse_end{
    background-color: #8cc63f;
}
#start_quiz span svg,
.close_rse_quiz_end span svg,
.next_item_rse_end span svg,
.next_item_rse span svg {
    height: 25px;
    width: 16px;
}
.content_cms_page #end-quiz,
.content_cms_page #start_quiz{
    padding: 7px 8px;
}
#start_quiz span{
    padding-left:20px;
}
.close_rse_quiz_end span,
.next_item_rse_end span,
.next_item_rse span{
    border-right: 2px solid #fff;
    padding: 0 20px;
}

/** **/
.card-block::after {
    display: none;
}

/*** MODULE CUSTOM TEXT BRAND**/

#title_brands{
    margin: 5rem auto 2rem auto;
}
#row_brands img{
    max-width: 100%;
    min-width: 200px;
    height: auto;
}
#row_brands .item_brand{
    flex: 1;
    width: 200px;
    height: auto;
}
#row_brands{
    display: flex;
    max-width: 100%;
    overflow: hidden;
    flex-wrap: nowrap;
    gap: 65px;
}
#banner_contact{
    position: relative;
}
#banner_contact img{
    width: 100%;
    height: auto;
}
#banner_contact .content{
    position: absolute;
    transform: translate(-50%,-50%);
    top: 50%;
    left: 50%;
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}
#banner_contact .content .zone_cta{
   display: flex;
   gap: 30px;
   color: #fff;
}
#banner_contact .modal_contact{
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    backdrop-filter: blur(3px);
    z-index: 99;
}
#banner_contact .modal_contact.active .modal_content div{
    opacity: 1;
}
#banner_contact .modal_contact .modal_content div{
    opacity: 0;
    transition: 0.3s;
    transition-delay: 0.4s;
}
#banner_contact .modal_contact.active .modal_content{
    max-height: 100vh;
    max-width: 100vw;
  
}
#banner_contact .modal_contact .modal_content{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    background: #fff;
    box-shadow: 0px 15.6151px 32.5314px rgba(0, 0, 0, 0.25);
    border-radius: 9px;
    transition: 0.4s ease-in-out;
    overflow: hidden;
    max-height: 0;
    max-width: 0;
}
#banner_contact .modal_contact .modal_content .modal_header{
    display: flex;
    justify-content: space-between;
    padding: 10px;
}
#banner_contact .modal_contact .modal_content .modal_header .close_modal{
    cursor: pointer;
}
#banner_contact .modal_contact .modal_content .modal_body .info{
    text-align: center;
    padding: 30px 50px;
}
#banner_contact .modal_contact .modal_content .modal_body .form_contact{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
    padding-bottom: 30px;
}
#banner_contact .modal_contact .modal_content .modal_body .group_form_aera textarea{
    width: 100%;
    border: none;
    border-bottom:1px solid var(--secondary) ;
}
#banner_contact .modal_contact .modal_content .modal_body .group_form_aera{
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: start;
    width: 100%;
    padding: 0 30px;
}
#banner_contact select,
#banner_contact input{
    border: none;
    border-bottom: var(--secondary) 1px solid;
}
#banner_contact label{
   color: var(--primary);
}
#banner_contact label.customer_type{
   color: var(--secondary) !important;
}
#banner_contact .modal_contact .modal_content .modal_body .group_form_aera textarea.w-100{
    width: 100%;
}
#banner_contact .modal_contact .modal_content .modal_body .group_form{
    display: flex;
    justify-content: center;
    flex-direction: column;
    align-items: start;
    width: fit-content;
}
#banner_contact .modal_contact .modal_content .modal_footer i{
    color: var(--bg_details_card);
    font-size: 12px;
}
#banner_contact .modal_contact .modal_content .modal_footer{
    display: flex;
    flex-direction: column;
    gap: 25px;
    justify-content: center;
    align-items: center;
    text-align: center;
    color: #fff;
    padding: 0 30px 20px 30px;
}

#banner_contact #quotation.modal_contact .modal_content .modal_body .group_form_aera{
    padding: 0;
}
#banner_contact #quotation.modal_contact .modal_content .modal_body .group_form_checkbox{
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
    gap: 0px;
    align-items: flex-start;
}
#banner_contact #quotation.modal_contact .modal_content .modal_body .form_part_1,
#banner_contact #quotation.modal_contact .modal_content .modal_body .form_part_2{
    width: 50%;
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    align-items: flex-start;
}
#banner_contact #quotation.modal_contact .modal_content .modal_body{
    display: flex;
    gap: 15px;
    padding: 0 30px;
}

/** CART */

.cart-overview .no-items{
    padding: 30px 20px;
    display: block;
}
#cart .cart-grid-body .card-block{
    background-color: var(--secondary);
    color: #fff;
    border: none;
    flex-direction: row;
    gap: 0;
}
#cart .card-block h1{
    font-weight: 600;
    font-size: 16px;
    text-transform: capitalize;
    color: #fff;
}
#cart .card.cart-container{
    border-radius: 9px;
    overflow: hidden;
}
#cart .cart-overview .cart-item{
    background-color: var(--white);
    margin: 10px;
    border-radius: 9px;
}
#cart .cart-overview {
    padding: 0;
    padding-bottom: 0.1px;
    background: var(--background_strong);
}
#cart .cart-overview .cart-items {
    transition: 0.3s;
    max-height: 0;
    overflow: auto;
}
#cart .cart-overview .cart-items::-webkit-scrollbar {
    width: 9px;
    height: 14px;
}

#cart .cart-overview .cart-items::-webkit-scrollbar-button {
    width: 0px;
    height: 0px;
}

#cart .cart-overview .cart-items::-webkit-scrollbar-thumb {
    background: var(--secondary);
    border: 2px solid var(--background_light);
    border-radius: 50px;
}

#cart .cart-overview .cart-items::-webkit-scrollbar-track {
    background: var(--background_light);
    border-radius: 47px;
}

#cart .cart-overview .cart-items::-webkit-scrollbar-corner {
    background: transparent;
}
#cart .cart-overview .cart-items.active {
    transition: 0.3s;
    max-height: 50vh;
}
#cart .cart_item_title .title{
    font-weight: 600;
    font-size: 16px;
}
#cart .cart_item_title .count_product{
    font-weight: 500;
    font-size: 12px;
    flex: 1;
}
#cart .card-block.cart-summary-totals{
    padding: 0 10px;
}
#cart .card-block{
    padding: 20px 10px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

#cart .cart_item_title svg{
    cursor: pointer;
    transform: rotate(180deg);
    transition: 0.3s;
}
#cart .cart_item_title svg.active{
    transform: rotate(0deg);
}
#cart .cart_item_title{
    background-color: var(--background_light);
    padding: 10px 20px;
    display: flex;
    gap: 30px;
    align-items: center;
}

#cart .new-product-line-grid .product_price{
    display: flex;
    flex-direction: column;
    align-items: end;
    gap: 10px;
}
#cart .new-product-line-grid .product_body{
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 25px;
}
#cart .new-product-line-grid .product_detail .product_attribute{
    display: flex;
    gap: 10px;
}
#cart .new-product-line-grid .product_action .product_delete .remove-from-cart{
    display: flex;
    align-items: center;
}
#cart .new-product-line-grid .product_action{
    display: flex;
    justify-content: space-between;
    align-items: self-end;
    flex: 1;
}
#cart .new-product-line-grid .product_price .unit_price,
#cart .new-product-line-grid .product_price .total_price{
    text-align: right;
}
#cart .new-product-line-grid .product_price .regular-price{
    font-weight: 500;
    font-size: 14px;
}
#cart .new-product-line-grid .product_price .price{
    font-weight: 500;
    font-size: 16px;
    color: var(--primary);
    
}
#cart .new-product-line-grid .product_price .total_price {
    color: var(--secondary);
    font-weight: 600;
    font-size: 20px;

}
#cart .new-product-line-grid .product_info .product_attribute{
    font-weight: 500;
    font-size: 14px;
    /* contraste RGAA 3.3 : #737B7D (4.3:1) → #666 (5.7:1) */
    color: #666666;
}
#cart .new-product-line-grid .product_info .product_name a{
    color: var(--primary);
    font-weight: 500;
    font-size: 20px;
}
#cart .new-product-line-grid .product_info .product_delivery.stock{
 color: var(--background_stock);
}
#cart .new-product-line-grid .product_info .product_delivery.fournisseur{
 color: var(--background_fournisseur);
}
#cart .new-product-line-grid .product_info .product_delivery.precommande{
 color: var(--background_preco);
}
#cart .new-product-line-grid .product_info .product_delivery{
    font-weight: 500;
    font-size: 14px;
}
#cart .new-product-line-grid .product_info{
    display: flex;
    flex-direction: column;
    align-items: start;
    gap: 10px;
}
#cart .new-product-line-grid .product_detail{
    display: flex;
    flex: 1;
    justify-content: space-between;
    align-items: start;
}
#cart .new-product-line-grid{
    display: flex;
    gap: 20px;
    padding: 0 20px;
}
#cart .promo-input-field{
    width: 100%;
    padding: 14px;
}
.block-promo .promo-code form{
    display: flex;
    align-items: stretch;
    height: 100%;
    gap: 20px;
    justify-content: space-between;
}
#cart .promo-input-field,
#cart .new-product-line-grid .bootstrap-touchspin{
    border-radius: 6px;
    overflow: hidden;
    border: 1px solid #eaecee;
}
.new-product-line-grid .bootstrap-touchspin .btn-touchspin,
.new-product-line-grid .bootstrap-touchspin input.form-control, .bootstrap-touchspin input.input-group{
    border: none;
}
#cart #promo-code,
#cart .card.cart-summary{
    background-color: var(--background_strong);
    border-radius: 9px;
}

#cart .summary-cart-by-owner{
    background-color: var(--white);
    padding: 10px;
    border-radius: 6px;
    margin-bottom: 10px;
    display: flex;
    flex-direction: column;
    gap: 15px;
}
#cart .summary-cart-by-owner .summary-line-owner{
    display: flex;
    justify-content: space-between;
}
#cart .summary-cart-by-owner .quantity{
    font-weight: 500;
    font-size: 14px;
}
#cart .summary-cart-by-owner .typologie{
    font-weight: 600;
    font-size: 15px;
}   
#cart .summary-cart-by-owner .typologie.stock{
        color: var(--background_stock);
}
#cart .summary-cart-by-owner .typologie.fournisseur{
    color: var(--background_fournisseur);
}
#cart .summary-cart-by-owner .typologie.precommande{
    color: var(--background_preco);
}
#cart .summary-cart-by-owner .value_ht{
    font-weight: 500;
    font-size: 14px;
}   
#cart .card-block.cart-detailed-subtotals .title{
    font-weight: 500;
    font-size: 28px;
    margin-bottom: 20px;
}
#cart .summary-cart-by-owner .value_ht,
#cart .summary-cart-by-owner .value_ttc{
    display: flex;
    width: 50%;
    justify-content: space-between;
}
.card-block.cart-detailed-subtotals+.cart-summary-totals .cart-total{
    border: none;
}
.card-block.cart-summary-totals .cart-summary-line.cart-total .value,
.card-block.cart-summary-totals .cart-summary-line.cart-total .label{
    font-weight: 500;
    font-size: 24px;
}
.cart-summary-line .label, .cart-summary-line .value{
    font-weight: 500;
    font-size: 16px;
}

#opartSaveCartBloc a .hideSaveCartForm{
    color: var(--primary);
}
#opartSaveCartBloc a:not(a .hideSaveCartForm){
    display: flex;
    align-items: center;
    gap: 10px;
    color: var(--white);
}
#opartConteneurFormSaveCart .content{
    background: #fff;
    box-shadow: 0px 15.6151px 32.5314px rgba(0, 0, 0, 0.25);
    border-radius: 9px;
    padding: 1rem;
}
#opartConteneurFormSaveCart{
    display: flex;
    justify-content: center;
    align-items: center;
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    z-index: 9999999;
    background: transparent;
    backdrop-filter: blur(2px);
}
/* blockreassurance — .row_rea peut être un <a> (lien) ou une <div> selon config back-office */
.blockreassurance_product a.row_rea {
    display: flex;
    align-items: center;
    color: inherit;
    text-decoration: none;
}
.blockreassurance_product a.row_rea:focus-visible {
    outline: 3px solid #ffbf47;
    outline-offset: 2px;
    border-radius: 2px;
}

/* thumbnails produit — <button> remplace <div>, neutralise styles natifs */
.product-images .thumb.btn-unstyle {
    display: inline-block;
    width: auto;
    padding: 0;
    background: none;
    border: none;
    border-radius: 6px;
    cursor: pointer;
}
.product-images .thumb.btn-unstyle:focus-visible {
    outline: 3px solid #ffbf47;
    outline-offset: 2px;
}

#cart .blockreassurance_product .row_rea{
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 15px;
}
#cart .blockreassurance_product svg{
    width: 35px;
    height: 35px;
}
#cart .blockreassurance_product{
    padding: 0 10px;
    margin-top: 0;
}
#cart .blockreassurance_product .block-title{
    font-weight: 500;
    font-size: 14px;
    margin: 0;
}

/** CATEGORIES **/
#search_filters .facet .facet-label{
    display: flex;
    align-items: center;
}
#search_filters .facet .facet-label .custom-checkbox, #search_filters .facet .facet-label .custom-radio{
    top: 0;
}

/** BEGIN PANIERS SAUVEGARDES (opartsavecart) — refonte épurée + RGAA **/

/* .btn-danger du thème : blanc sur rouge clair < 4.5:1 — RGAA 3.3 (correctif global) */
.btn-danger {
    background-color: #b02a37;
    border-color: #b02a37;
    color: #fff;
}
.btn-danger:hover,
.btn-danger:focus {
    background-color: #8c1f2a;
    border-color: #8c1f2a;
    color: #fff;
}

/* Tableau épuré : pas de zébrage ni de bordures verticales, séparateurs fins */
#module-opartsavecart-default #block-history table {
    border: 1px solid #e6e6e6;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 1px 4px rgba(29, 25, 48, 0.06);
}
#module-opartsavecart-default #block-history table th,
#module-opartsavecart-default #block-history table td {
    border: 0;
    border-bottom: 1px solid #e6e6e6;
    padding: 1rem;
    vertical-align: middle;
}
#module-opartsavecart-default #block-history tbody tr:last-child th,
#module-opartsavecart-default #block-history tbody tr:last-child td {
    border-bottom: 0;
}
#module-opartsavecart-default #block-history thead th {
    background: var(--background_light);
    color: var(--primary);
    text-transform: uppercase;
    font-size: 0.8rem;
    letter-spacing: 0.04em;
}
#module-opartsavecart-default #block-history table.table-striped tbody tr:nth-of-type(odd) {
    background-color: #fff;
}
#module-opartsavecart-default #block-history tbody tr:hover {
    background-color: var(--background_light);
}
#module-opartsavecart-default #block-history tbody th {
    color: var(--primary);
    font-weight: 700;
}

/* Date : neutraliser le style .price hérité du module */
#module-opartsavecart-default #block-history td .price {
    font-weight: 400;
    font-size: 0.875rem;
    color: #666666;
}
#module-opartsavecart-default .osListProduct {
    margin: 0;
    padding-left: 1.1rem;
    color: #666666;
    font-size: 0.875rem;
}

/* Boutons d'action : style "outline" discret, contrastes ≥ 4.5:1 — RGAA 3.3 */
#module-opartsavecart-default #block-history td .btn {
    display: inline-block;
    margin: 0.125rem 0 0.125rem 0.25rem;
    padding: 0.4rem 0.8rem;
    font-size: 0.8125rem;
    font-weight: 600;
    text-transform: none;
    background: #fff;
    border: 1px solid var(--primary);
    color: var(--primary);
    border-radius: 4px;
    box-shadow: none;
}
#module-opartsavecart-default #block-history td .btn:hover {
    background: var(--primary);
    color: #fff;
}
#module-opartsavecart-default #block-history td .btn-danger {
    background: #fff;
    border-color: #b02a37;
    color: #b02a37;
}
#module-opartsavecart-default #block-history td .btn-danger:hover,
#module-opartsavecart-default #block-history td .btn-danger:focus {
    background: #b02a37;
    color: #fff;
}

/* Cartes mobile */
#module-opartsavecart-default .orders .cart {
    background: #fff;
    border: 1px solid #e6e6e6;
    border-radius: 8px;
    padding: 1rem;
    margin-bottom: 0.75rem;
    box-shadow: 0 1px 4px rgba(29, 25, 48, 0.06);
}
/* rendu h3 d'origine conservé (h3 → h2, RGAA 9.1) */
#module-opartsavecart-default .orders .cart .cart-name-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--primary);
    margin: 0 0 0.25rem;
}
#module-opartsavecart-default .orders .cart .date {
    color: #666666;
    font-size: 0.875rem;
}
#module-opartsavecart-default .orders .cart a {
    display: inline-block;
    padding: 0.25rem;
    color: var(--primary);
}

/** END PANIERS SAUVEGARDES **/

#category #productshome{
    gap: 20px;
}
#category #productshome .product_img  {
    height: fit-content;
}
/* Miniature produit : <a> remplace <div> — RGAA 6.1 / 10.7 */
#search #products .products a.products,
#category #products .products a.products {
    display: flex;
    flex-direction: column;
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    transition: box-shadow 0.1s ease-in-out;
}
#search #products .products a.products:hover,
#category #products .products a.products:hover {
    box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.15);
}
#search #products .products a.products:focus-visible,
#category #products .products a.products:focus-visible {
    outline: 3px solid #ffbf47 !important;
    outline-offset: 3px;
    box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.15);
}
#search #products .products .products,
#category #products .products .products {
    max-width: calc(33% - 20px);
}
@media (max-width:1032px) {
    #category #products .products .products {
        max-width: calc(50% - 20px);
    }
}
@media (max-width:991px) {
    #category #products .products .products {
        max-width: calc(100% - 20px);
    }
}




/** RESPONSIVE HEADER*/


@media (max-width:1015px) {
    #_desktop_contact_link #contact-link span{
        display: none;
    }
}


/** AUTHENTIFICATION **/



/*** CHECKOUT **/

#js-checkout-summary .block-promo{
    margin-top: 20px;
    background-color: var(--background_strong);
    border-radius: 9px;
}
#js-checkout-summary .card-block.cart-summary-totals{
    background-color: var(--background_strong);
    border-radius: 0 0 9px 9px;
}
#js-checkout-summary .card-block:not(.cart-summary-totals){
    background-color: var(--background_strong);
    border-radius: 9px 9px 0 0;
}
.js-show-details,
#cart-summary-product-list{
    display: none;
}
#checkout .done{
    color: var(--primary);
}
.js-payment-binary.disabled .accept-cgv, body#checkout section.checkout-step.-current .content, body#checkout section.checkout-step.-current.-reachable.-complete .content{
    padding: 10px;
    background-color: var(--white);
    border-radius: 9px;
    margin: 10px;
}
body#checkout section.checkout-step.-reachable.-current .step-number{
    background-color: var(--primary);
}
#checkout .cart-grid-body{
    background-color: var(--background_strong);
    border-radius: 9px;
    overflow: hidden;
    padding: 0;
}
body#checkout section.checkout-step{
    background-color: transparent;
}
body#checkout section.checkout-step{
    padding: 0;
}
body#checkout section.checkout-step .step-title,
body#checkout section.checkout-step.-complete:first-of-type .step-title{
    padding: 1.25rem 10px;
    border: 1px solid var(--secondary);
    border-bottom-color: var(--primary);
    background-color: var(--secondary);
}
#banner_contact label{
    text-align: left;
}
#banner_contact  #recalled .modal_content,
#banner_contact  #quotation .modal_content{
    overflow-y: scroll;
}
#recalled .modal_body .group_row{
    display: flex;
    width: 100%;
    gap: 20px;
    justify-content: space-between;
}
#banner_contact .modal_contact .modal_content .modal_body .form_contact{
    padding: 0 20px;
}
#banner_contact .modal_contact .modal_content .modal_body .group_form_aera{
    padding: 0;
    margin-bottom: 2rem;
}
.panachage_size_table .product_attr_quantity_panachage:active::placeholder,
.panachage_size_table .product_attr_quantity_panachage:focus::placeholder{
    color: transparent;
}

/* Panachage — RGAA 10.7 : focus visible sur swatches couleur (input opacity:0 dans theme.css) */
.panachage-label-color .input-color:focus-visible + span {
    outline: 3px solid #ffbf47;
    outline-offset: 3px;
    border-radius: 50%;
}

/*** FACET — RGAA 10.7 : focus visible sur checkboxes/radios custom ***/
 
/* L'input natif est masqué visuellement (opacity:0) par le thème.
   On reporte le focus sur le span visuel adjacent via :focus-visible + ~ */
#search_filters .custom-checkbox input[type="checkbox"]:focus-visible ~ span,
#search_filters .custom-checkbox input[type="checkbox"]:focus-visible ~ .color,
#search_filters .custom-radio input[type="radio"]:focus-visible ~ span {
    outline: 3px solid #ffbf47;
    outline-offset: 2px;
    border-radius: 2px;
}

ul.ul_picto{
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px;
}
ul.ul_picto li{
    display: flex;
}
ul.ul_picto .color.texture{
    margin: 0 !important;
    margin-top: 5px !important;
    height: 50px !important;
    width: 50px !important;
}
ul.ul_picto li label{
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}
ul.ul_picto li label a{
    width: 100% !important;
    text-align: center;
}
.product-information p{
    color: #232323;
}
.block-contact, .footer-container li a{
    font-weight: 300;
}
.row_price_product small{
    color: #666666;
    font-size: 10px;
    font-weight: 300;
}
.row_price_product small{
    color: #666666;
    font-size: 11px;
    font-weight: 300;
    position: absolute;
    bottom: -15px;
    right: 0;
}
#product .row_price_product{
    position: relative;
}

body#checkout section.checkout-step .step-title {
    color: #ffffff;
}

/** BEGIN FAQ **/

.page-cms-12 dl dt,
.page-cms-12 dl dd { 
    margin: 0;
    padding: 0;
} 
.page-cms-12 dl dt { 
    margin-top: 1.75rem;
    font-weight: 700; 
    font-size: 1rem;
    color: #202944;
}
.page-cms-12 dl dd {
    margin-top: 0.4rem;
    line-height: 1.65;
    color: #444;
}
.page-cms-12 dl dt:first-child {
    margin-top: 0;
}

/** END FAQ **/

