/*** GLOBAL ***/
.hideMe,
.buy .buy-now {
    display: none !important;
}
.elementor-column-wrap .elementor-widget-wrap>.elementor-widget.w-auto {
    width: auto;
}
.alert {
    font-size: 16px;
}
#blockcart-modal .modal-header .modal-title, 
#content-hook_order_confirmation .card-title,
.product-features>dl.data-sheet dd.value, 
.product-features>dl.data-sheet dt.name,
#main .page-content h6 {
    text-transform: none !important;
}
/* Fonts */
body {
    font-family: "Poppins", sans-serif;
}
h1, h2, h3, h4, h5, h6 {
    font-family: "Protest Riot", sans-serif;
    font-weight: 600;
}
.poppins-font {
    font-family: "Poppins", sans-serif;
}
.protest-riot-font {
    font-family: "Protest Riot", sans-serif;
}
.dancing-script-font {
    font-family: "Dancing Script", cursive;
}
.pos-title, 
.titre .pos-title {
    font-family: "Protest Riot", sans-serif !important;
}
/*** HEADER ***/
.page-title-wrapper.p_tilte_small .card-block h1, 
.page-title-wrapper.p_tilte_small .page-header h1 {
    font-family: "Poppins", sans-serif;
}
.topbar .search-topbar .pos-search__toggle i::after, 
.pos-account.pos-header-element .account-login > i {
    display: block;
    text-align: center;
    font-size: 30px!important;
}
.topbar .search-topbar {
    text-align: center;
    margin: 0 15px;
}
.topbar .search-topbar .pos-search__toggle i::after,
.elementor-widget-posCart .blockcart.cart-preview > a > i::after {
    content: 'Rechercher';
	display: block;
	margin-top: 8px;
}
.elementor-widget-posCart .blockcart.cart-preview > a > i::after {
    content: 'Panier';
}
.top-nav-CTA figcaption, 
.topbar .search-topbar .pos-search__toggle i::after, 
.pos-account.pos-header-element .account-login > span,
.elementor-widget-posCart .blockcart.cart-preview > a > i::after {
    color: #333333;
    font-size: 16px!important;
    font-family: "Protest Riot", sans-serif !important;
    text-transform: uppercase;
}
.pos-account.pos-header-element .account-login > span.icon-toggle {
    display: inline-block;
    font: normal normal normal 14px / 1 FontAwesome!important;
    font-size: inherit;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
.elementor-widget-posCart .blockcart.cart-preview > a > i::before {
    margin-left: 12px;
}
.elementor-widget-posCart .blockcart.cart-preview .cart-products-count {
    top: -5px !important;
	left: 25px !important;
}
.elementor-widget-posAccount.pos-dropdown-right .pos-dropdown-menu {
    width: 320px !important;
    text-align: center;
    left: -115px;
}
.elementor-widget-posAccount.pos-dropdown-right .pos-dropdown-menu i {
    display: none;
}
.elementor-widget-posAccount .pos-dropdown-menu a {
    font-size: 16px!important;
	padding: 15px 0!important;
}
.pos-search.search-topbar .dropdown-menu {
    padding: 14px!important;
}
.main-menu .elementor-column-gap-default>.elementor-row>.elementor-column>.elementor-element-populated {
    padding: 0!important;
}
.main-menu .pos-menu-horizontal .menu-content .menu-item {
    padding: 10px 20px!important;
}
.main-menu .pos-menu-horizontal .menu-content .menu-item.menu-CTA.catalogue,
.mobile-menu .pos-menu-horizontal .menu-content .menu-item.menu-CTA.catalogue {
    background: #e73c4a;
}
.main-menu .pos-menu-horizontal .menu-content .menu-item.menu-CTA.recettes,
.mobile-menu .pos-menu-horizontal .menu-content .menu-item.menu-CTA.recettes {
    background: #f9d41d;
}
.main-menu .pos-menu-horizontal .menu-content .menu-item.menu-CTA.actu,
.mobile-menu .pos-menu-horizontal .menu-content .menu-item.menu-CTA.actu {
    background: white;
}
.main-menu .pos-menu-horizontal .menu-content .menu-item.menu-CTA.recettes > a span,
.main-menu .pos-menu-horizontal .menu-content .menu-item.menu-CTA.actu > a span,
.mobile-menu .pos-menu-horizontal .menu-content .menu-item.menu-CTA.recettes > a span,
.mobile-menu .pos-menu-horizontal .menu-content .menu-item.menu-CTA.actu > a span {
    color: #333333!important;
}
/* TASK-075: Menu mobile — texte blanc sur fond rouge Catalogue */
.mobile-menu .pos-menu-horizontal .menu-content .menu-item.menu-CTA.catalogue > a {
    color: #ffffff !important;
}
.mobile-menu .pos-menu-horizontal .menu-content .menu-item.menu-CTA.catalogue > a span {
    color: #ffffff !important;
}
/* TASK-075: Padding + border-radius pour les CTA mobiles */
.mobile-menu .pos-menu-horizontal .menu-content .menu-item.menu-CTA {
    border-radius: 6px;
    margin: 4px 0;
}
.main-menu .pos-menu-horizontal .menu-content .menu-item>a {
    margin-left: 0!important;
    font-family: "Protest Riot", sans-serif;
    font-size: 16px;
    font-weight: 400;
    text-transform: uppercase;
}
.main-menu .pos-menu-horizontal .menu-content .menu-item.menu-CTA>a i {
    font-size: 20px!important;
    margin-right: 10px!important;
}
.main-menu .pos-menu-horizontal .menu-content .menu-item>a i.hidden-md-down {
    font-size: 10px!important;
    margin-left: 6px!important;
}
.main-menu .pos-menu-horizontal .menu-content .menu-item .menu-dropdown {
    padding-top: 0!important;
}
.main-menu .pos-menu-horizontal .menu-content .menu-item .menu-dropdown .column_title, .main-menu .pos-menu-horizontal .menu-content .menu-item .menu-dropdown .ul-column:not(.column_dropdown) .submenu-item>a {
    text-decoration: underline;
}
.main-menu .pos-menu-horizontal .menu-content .menu-item .menu-dropdown .pos-menu-row .pos-menu-col.menu-sub.cols-2 ul.category-sub-menu {
    display: flex;
    flex-wrap: wrap;
}
.main-menu .pos-menu-horizontal .menu-content .menu-item .menu-dropdown .pos-menu-row .pos-menu-col.menu-sub.cols-2 ul.category-sub-menu > li {
    width: 50%;
}
#_desktop_megamenu .pos-menu-horizontal .menu-content .menu-item.menu-item4 .menu-dropdown {
    margin-left: -20px;
}
.main-menu .pos-menu-horizontal .menu-content .menu-item .menu-dropdown .pos-sub-inner, 
.main-menu .pos-menu-horizontal .menu-content .menu-item .menu-dropdown.cat-drop-menu li a {
    color: #ffffff;
    background: #333333;
	border: none;
}
/*** HOME ***/
.box-slider-home .slider-item {
    position: relative;
}
.box-slider-home .pos-slideshow-wrapper .desc-banner {
    top: 0;
    width: 100%;
    height: 100%;
    -webkit-transform: none;
    transform: none;
}
.box-slider-home .pos-slideshow-wrapper .desc-banner a.slideshow-button {
    width: 100%;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
    font-size: 0 !important;
    background-color: transparent !important;
}
.mini-banner.home {
    border: 3px solid white;
}
.mini-banner.home .home-banner .banner-content {
    width: 380px;
    height: 220px;
    background: #0000008c;
    top: 25%;
    left: 5% !important;
}
.mini-banner.home .home-banner .rt-banner-link img:hover {
    filter: brightness(0.7);
}
/* TASK-036: Noms produits complets (sans troncature) + layout flexible */
.js-product-miniature .product_desc .product_name,
.js-product-miniature .product_desc .product_name.one_line {
	font-size: 13px;
	white-space: normal !important;
	overflow: visible !important;
	text-overflow: unset !important;
	height: auto !important;
	line-height: 1.4;
	display: block;
}
/* Cartes produit: flexbox pour aligner prix/boutons malgre noms de longueur variable */
.js-product-miniature.style_product5 .product_desc {
	display: flex;
	flex-direction: column;
}
.js-product-miniature.style_product5 .product_desc .cart {
	margin-top: auto;
}
.box-logos .slick-slide img {
    max-width: 160px !important;
    max-height: 160px;
    margin: auto;
}
.home-banner .banner-title, 
.home-banner .banner-title2 {
    font-family: "Dancing Script", cursive;
}
.home-banner .banner-title2 {
    margin-bottom: 6px !important;
}
.box-blog .post-item.design-4 .post-inner .post-title {
    font-family: "Dancing Script", cursive;
    font-size: 24px;
}
/* TASK-027: Format photos rectangle - supprimer espace blanc */
.js-product-miniature .img_block {
    aspect-ratio: 5 / 4 !important;
}
.js-product-miniature .img_block img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}
/*** Catalogue ***/
.btn, .btn-primary, 
.product-actions .add-to-cart, 
.wlp_bought_list .wlp_product .add-to-cart, 
.js-product-miniature.style_product5 .cart button.ajax_add_to_cart_button, 
.js-product-miniature.style_product5 .cart span.ajax_add_to_cart_button {
    background: #e73c4a;
    color: #ffffff;
    border: none!important;
}
.product-actions .add-to-cart:hover,
.js-product-miniature.style_product5 .cart button.ajax_add_to_cart_button:hover, 
.js-product-miniature.style_product5 .cart span.ajax_add_to_cart_button:hover {
    border-color: #333333;
    background: #333333;
    color: #fff;
}
.js-product-miniature.style_product5 .product_desc {
    text-align: center;
}
.categories-container .category-item .style2 .category-content {
    padding-top: 10px;
}
.page-title-wrapper {
    background: #fafafa;
    background-size: cover !important;
    background-position: center center !important;
    min-height: 100px;
    display: flex;
    align-items: center;
    margin-bottom: 30px;
}
.page-title-wrapper.p_tilte_big {
    min-height: 350px;
}
.page-title-wrapper.p_tilte_small h1 {
    color: #333333;
    text-shadow: none;
}
#wrapper .page-title-wrapper.p_tilte_small .breadcrumb li a, 
#wrapper .page-title-wrapper.p_tilte_small .breadcrumb li span {
    color: #333333;
    text-shadow: none;
}
/* TASK-030: Sous-categories - images cover dans rond */
#subcategories .subcategories-list {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px 20px;
    list-style: none;
    padding: 0;
    margin: 15px 0;
}
#subcategories .subcategories-list li {
    text-align: center;
    max-width: 130px;
}
/* TASK-074: Police normale pour noms sous-catégories */
#subcategories .subcategories-list h5,
#subcategories .subcategories-list .subcategory-name {
    font-family: 'Poppins', sans-serif;
    font-weight: 500;
    font-size: 13px;
    letter-spacing: normal;
    text-transform: none;
}
#subcategories .subcategory-image {
    filter: drop-shadow(0 1px 4px rgba(0,0,0,0.15));
}
#subcategories .subcategory-image a {
    display: block;
    width: 120px;
    height: 120px;
    margin: 0 auto;
    border-radius: 50%;
    overflow: hidden;
    background: #f5f0eb;
}
#subcategories ul li .subcategory-image a img {
    display: block !important;
    width: 120px !important;
    height: 120px !important;
    object-fit: cover !important;
    object-position: center !important;
    border: none !important;
    border-radius: 0 !important;
    max-width: none !important;
}
@media (max-width: 480px) {
    #subcategories .subcategories-list {
        gap: 8px 12px;
    }
    #subcategories .subcategory-image a {
        width: 100px;
        height: 100px;
    }
    #subcategories ul li .subcategory-image a img {
        width: 100px !important;
        height: 100px !important;
    }
    #subcategories .subcategories-list li {
        max-width: 110px;
    }
}

/* TASK-029: Breadcrumb + titre sous le bandeau categorie */
.page-category .page-title-wrapper.p_tilte_small {
    min-height: auto;
    padding: 0;
    display: block;
    margin-bottom: 15px;
    position: relative;
    background-size: cover !important;
    background-position: center !important;
}
.page-category .page-title-wrapper.p_tilte_small::before {
    content: '';
    position: absolute;
    top: 180px;
    left: 0;
    width: 100%;
    height: calc(100% - 180px);
    background: white;
    z-index: 1;
}
.page-category .page-title-wrapper.p_tilte_small::after {
    content: '';
    background: rgba(0,0,0,0.15);
    width: 100%;
    height: 180px;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
}
.page-category .page-title-wrapper.p_tilte_small .container {
    position: relative;
    z-index: 2;
    padding-top: 195px;
    text-align: left;
}
.page-category .page-title-wrapper.p_tilte_small .breadcrumb {
    margin-bottom: 0;
    padding: 3px 0 0;
    background: transparent;
}
.page-category #wrapper .breadcrumb li a,
.page-category #wrapper .breadcrumb li span {
    color: #888 !important;
    text-shadow: none !important;
    font-size: 13px;
    font-weight: 400;
}
.page-category .page-header h1 {
    color: #333 !important;
    text-shadow: none !important;
    font-size: 1.5rem;
    font-weight: 700;
    margin: 5px 0 10px;
}
.grid-no-border .js-product-miniature.style_product5 .product_desc {
    padding-bottom: 40px;
}
/*** REFERENCE LISTING (TASK-009) ***/
.product-reference-listing {
    display: block;
    font-size: 11px;
    color: #999;
    margin: -2px 0 6px 0;
    font-weight: 400;
    letter-spacing: 0.5px;
}
/*** ICONES CARACTERISTIQUES PRODUIT (TASK-019) ***/
/* TASK-019 (2026-05-20) : vrais SVG/WebP client = illustrations COULEUR
   auto-portantes (chacune a deja son fond/cercle). On supprime donc les
   anciennes pastilles colorees + SVG monochrome ; le conteneur ne fait plus
   que positionner + dimensionner l'<img>.
   Position : bas-gauche du visuel (spec Natacha 2026-05-18). */
.product-feature-icons {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    position: absolute;
    bottom: 8px;
    left: 8px;
    z-index: 3;
    pointer-events: none;
}
.feature-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
}
.feature-icon img {
    height: 34px;
    width: auto;
    display: block;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,0.25));
}
/* Listing (.product-miniature) : un cran plus petit, img_block deja relative */
.js-product-miniature .img_block .product-feature-icons {
    bottom: 8px;
    left: 8px;
    top: auto;
    right: auto;
    gap: 3px;
}
.js-product-miniature .img_block .feature-icon img {
    /* !important pour battre la regle theme `.img_block img{width/height:100%!important}` */
    height: 30px !important;
    width: auto !important;
}
/* Fiche produit : icones plus grandes, superposees bas-gauche de l'IMAGE.
   .product-cover-container = boîte de l'image cover (sans la bande miniatures),
   rendue relative pour ancrer les icones dessus (TASK-019 2026-05-20). */
.product-container .product-cover-container {
    position: relative;
}
.product-container .product-feature-icons {
    bottom: 10px;
    left: 10px;
    top: auto;
    right: auto;
    gap: 6px;
}
.product-container .feature-icon img {
    height: 44px;
}
/* Mobile : reduire pour ne pas masquer les petites vignettes */
@media (max-width: 575px) {
    .js-product-miniature .img_block .feature-icon img {
        height: 26px !important;
        width: auto !important;
    }
    .product-container .feature-icon img {
        height: 36px;
    }
}
/*** PRODUIT ***/
/* TASK-013: Supprimer capitalize sur "Autres Produits Dans La Même Catégorie" */
.categoryproducts .pos_title h2 {
    text-transform: none !important;
}
/* TASK-015 + TASK-A1A6: Nom produit — taille + bold (spec Natacha 2026-05-12) */
h1.namne_details {
    font-size: 28px !important;
    font-weight: 700 !important;
}
/* TASK-014: Forcer taille police description produit (éviter inline styles trop petits) */
.product-description,
.product-description p {
    font-size: 16px !important;
    line-height: 1.7;
}
/* TASK-A1A6: Référence produit — même taille que le nom, même couleur que le prix (#121111) */
.product-reference {
    font-size: 28px;
    color: #121111;
    margin: 5px 0 10px 0;
    line-height: 1.2;
}
.product-reference .label {
    font-weight: 600;
    color: #121111;
}
.product-weight {
    font-size: 14px;
    color: #666;
    margin: 5px 0 10px 0;
}
.product-weight .label {
    font-weight: 600;
    color: #333;
}
.tabs .nav-tabs .nav-item .nav-link {
    font-size: 16px;
}
.product-manufacturer {
    margin-bottom: 20px;
    max-width: 120px;
}
.product-add-to-cart .product-quantity .qty .bootstrap-touchspin .input-group-btn-vertical .btn-touchspin {
    background: #a7a7a7;
}
.page-product .categoryproducts.section-products.slider-arrows-middle .product_categoryslide {
    display: flex;
    justify-content: space-evenly;
}
.page-product .categoryproducts.section-products.slider-arrows-middle .product_categoryslide .js-product-miniature .img_block img {
    max-width: 250px;
    max-height: 250px;
}
.qty-selector-miniature .btn-touchspin i.material-icons {
    top: 7px;
}
.qty-selector-miniature .minimal-qty-notice {
    color: #e73c4a!important;
    font-weight: 500;
}
/*** PAGES ***/
.shadow {
    box-shadow: 0 0 13.5px 1.5px rgba(0,0,0,.12);
}
.shadow-big {
    box-shadow: 10px 33px 72px 0px rgba(58, 30.999999999999986, 0, 0.1);
}
.titre.elementor-widget-heading .elementor-heading-title {
    font-family: "Protest Riot", sans-serif !important;
    font-size: 42px;
    font-weight: 400;
    text-transform: none;
    margin-bottom: 20px;
}
.page-cms .elementor-image img {
    border-radius: 10px;
}

/* TASK-076/079: Pages CMS — retirer capitalize sur les titres CE */
.page-cms .elementor-heading-title {
    text-transform: none !important;
}

/* TASK-079: Page CGV — police normale (Poppins) pour les titres */
.page-cms #content h2,
.page-cms #content h3 {
    font-family: 'Poppins', sans-serif;
    text-transform: none;
}
.col-img-vertical img {
    margin: 5px;
    border-radius: 10px;
    box-shadow: 10px 33px 72px 0px rgba(58, 30.999999999999986, 0, 0.1);
}
.col-img-vertical.small img {
    max-width: 160px !important;
}
.box-txt > .elementor-column-wrap {
    padding: 20px 30px !important;
}
.box-txt.left > .elementor-column-wrap {
    padding: 20px 30px 20px 0 !important;
}
.box-txt.right > .elementor-column-wrap {
    padding: 20px 0 20px 30px !important;
}
/*** COMPTE ***/
#main .page-content h6 {
    font-family: "Poppins", sans-serif;
}
/*** RECETTES ***/
.servings-calculator .input-group .form-control#servings-count {
    text-align: center;
}
/* TASK-012: Police Poppins pour titres recettes + suppression capitalize */
.recipe-title,
.recipe-card-title,
.recipe-linked-products-section h2,
.recipe-comments-section h2,
.recipe-similar-section h2,
.recipe-description-full h2,
.recipe-steps-panel h2,
.recipe-ingredients-panel h2 {
    font-family: "Poppins", sans-serif !important;
    text-transform: none !important;
    font-weight: 600;
}
/*** CART ***/
/*** CHECKOUT ***/
.page-order #ddw-summary {
    background: #fea000;
    padding: 20px;
    margin: 20px 0 10px;
    border-radius: 5px;
}
.ddw_text_checkout strong {
    color: #e73c4a;
    text-decoration: underline;
    font-size: 18px;
}
.page-order #ddw-summary * {
    color: white;
    font-size: 18px;
}
.payment-option label[for*="payment-option"] span {
    color: #313030;
    font-weight: 600;
}
body#checkout section.checkout-step .payment-options label[for="payment-option-4"] > img {
    float: right;
    padding-left: 10px;
    position: relative;
    top: 5px;
}
body#checkout .additional-information,
.osb-payment-description {
    margin-left: 25px!important;
    margin-bottom: 30px;
}
.payment-method-description,
.osb-payment-description {
    padding: 8px 10px!important;
    background: #f0f0f0;
}
/*** Modale ***/
#modalLoginRequired .modal-title {
    margin: 0;
    font-size: 20px;
    line-height: 1.5;
    display: flex;
    justify-content: center;
}
#modalLoginRequired .modal-body {
    text-align: center;
}
#modalLoginRequired .modal-body h6 {
    font-size: 18px;
    text-transform: none;
}
#modalLoginRequired .modal-body p {
    font-size: 16px;
}
#modalLoginRequired .modal-footer {
    text-align: center;
    display: flex;
    justify-content: space-around;
}
#modalLoginRequired .modal-footer::after {
    display: none;
}
body#checkout .cart-grid-right .card .order-summary-title {
    font-family: "Poppins", sans-serif;
}
/* Payment method descriptions - always visible */
.payment-options .additional-information {
    display: block !important;
    margin-left: 2.5rem;
    margin-bottom: 15px;
}
.payment-method-description {
    font-size: 14px;
    line-height: 1.6;
    color: #333;
    padding: 5px 0;
}
.payment-method-description p {
    margin-bottom: 8px;
}
.payment-method-description p:last-child {
    margin-bottom: 0;
}
.payment-method-description strong {
    color: #e73c4a;
}
/* OSB/Payzen - Logo after title */
.payment-option label[for*="payment-option"] {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}
.payment-option label[for*="payment-option"] span {
    order: 1;
}
.payment-option label[for*="payment-option"] img {
    order: 2;
    max-height: 24px;
    width: auto;
}
/* OSB description injected via JS */
.osb-payment-description {
    font-size: 14px;
    line-height: 1.6;
    color: #333;
    padding: 5px 0;
    margin-left: 2.5rem;
    margin-bottom: 15px;
}
.osb-payment-description p {
    margin: 0;
}

/*** POSFAKEORDER - Recent Orders Popup ***/
/* Hide empty box until JS populates content and adds fadeInUp */
.pos-recent-orders {
    visibility: hidden;
    opacity: 0;
}
.pos-recent-orders.fadeInUp {
    visibility: visible;
    opacity: 1;
}

/*** SELECTEUR QUANTITE MINIATURES ***/
.product-add-to-cart-miniature {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}
.product-add-to-cart-miniature form {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
}
.qty-selector-miniature {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}
.qty-selector-miniature .qty {
    display: flex;
    justify-content: center;
}
.qty-selector-miniature .bootstrap-touchspin {
    display: flex;
    align-items: center;
    border: 1px solid #ccc;
    border-radius: 4px;
    overflow: hidden;
    background: #fff;
}
.qty-selector-miniature .bootstrap-touchspin input.form-control {
    width: 40px;
    height: 32px;
    text-align: center;
    border: none;
    font-size: 14px;
    font-weight: 600;
    padding: 0;
    -moz-appearance: textfield;
}
.qty-selector-miniature .bootstrap-touchspin input.form-control::-webkit-outer-spin-button,
.qty-selector-miniature .bootstrap-touchspin input.form-control::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.qty-selector-miniature .input-group-btn-vertical {
    display: flex;
    flex-direction: row;
}
.qty-selector-miniature .btn-touchspin {
    width: 28px;
    height: 32px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f5f5f5;
    border: none;
    border-left: 1px solid #ccc;
    cursor: pointer;
    transition: background 0.2s;
}
.qty-selector-miniature .btn-touchspin:hover {
    background: #e0e0e0;
}
.qty-selector-miniature .btn-touchspin:first-child {
    order: 2;
}
.qty-selector-miniature .btn-touchspin:last-child {
    order: 1;
    border-left: none;
    border-right: 1px solid #ccc;
}
.qty-selector-miniature .btn-touchspin i.material-icons {
    font-size: 18px;
    color: #333;
}
.qty-selector-miniature .btn-touchspin i.touchspin-up::before {
    content: 'add';
}
.qty-selector-miniature .btn-touchspin i.touchspin-down::before {
    content: 'remove';
}
.qty-selector-miniature .minimal-qty-notice {
    font-size: 10px;
    color: #888;
    font-style: italic;
}
/* Ajustements pour le bouton ajouter au panier */
.product-add-to-cart-miniature .ajax_add_to_cart_button {
    flex: 1;
    max-width: none;
    white-space: nowrap;
    font-size: 12px !important;
    height: 34px;
    line-height: 34px !important;
    padding: 0 10px !important;
    border-radius: 4px;
}
/* TASK-035: Icone panier a droite du texte (categories + widgets) */
.js-product-miniature .cart .ajax_add_to_cart_button,
.product-add-to-cart-miniature .ajax_add_to_cart_button {
    display: inline-flex !important;
    flex-direction: row-reverse !important;
    align-items: center !important;
    justify-content: center !important;
}
.js-product-miniature .cart .ajax_add_to_cart_button::before,
.product-add-to-cart-miniature .ajax_add_to_cart_button::before {
    margin-right: 0 !important;
    margin-left: 5px !important;
}
.product-add-to-cart-miniature .ajax_add_to_cart_button::before {
    font-size: 14px !important;
    vertical-align: middle;
}
/* TASK-077: Icone caddie seule (sans texte) sur les listings */
.product-add-to-cart-miniature .btn-cart-icon-only,
button.btn-cart-icon-only.ajax_add_to_cart_button,
span.btn-cart-icon-only.ajax_add_to_cart_button {
    font-size: 0 !important;
    padding: 0 14px !important;
    min-width: 44px;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: row !important;
}
/* Garder l'icone ::before du thème parent (roadthemes-icon) et l'agrandir */
.product-add-to-cart-miniature .btn-cart-icon-only::before,
button.btn-cart-icon-only.ajax_add_to_cart_button::before,
span.btn-cart-icon-only.ajax_add_to_cart_button::before,
.js-product-miniature .cart .btn-cart-icon-only::before {
    font-size: 20px !important;
    margin: 0 !important;
    display: inline-block !important;
}
/* TASK-010: Bouton panier TOUJOURS visible (pas hover-only) */
.js-product-miniature.style_product5 .cart {
    position: relative !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
    bottom: auto !important;
    padding: 5px 5px 0;
}
/* Prix toujours visible au hover */
.js-product-miniature.style_product5:hover .product-price-and-shipping {
    visibility: visible !important;
    opacity: 1 !important;
    transform: none !important;
}
/* Pas de padding bottom supplementaire necessaire */
.grid-no-border .js-product-miniature.style_product5 .product_desc {
    padding-bottom: 15px;
}

/*** TOOLTIP TITRES PRODUITS - DESACTIVE par TASK-036 (noms complets affiches) ***/

/* TASK-018: Header mobile/tablette — icônes compactes sur une seule ligne */
/* Note : .elementor-element-xoccuan = section visible uniquement mobile+tablette (elementor-hidden-desktop) */
.elementor-element-xoccuan .elementor-column-wrap.elementor-element-populated,
.elementor-element-xoccuan .elementor-widget-wrap {
    flex-direction: row !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
}
.elementor-element-xoccuan .elementor-element-gbznwsb .elementor-widget-wrap {
    justify-content: flex-end !important;
}
.elementor-element-xoccuan .elementor-element-kmrwtmx .elementor-widget-wrap {
    justify-content: center !important;
}
.elementor-element-xoccuan .pos-search__toggle i::after,
.elementor-element-xoccuan .blockcart.cart-preview > a > i::after {
    display: none !important;
}
.elementor-element-xoccuan .pos-search__toggle i,
.elementor-element-xoccuan .blockcart.cart-preview > a > i,
.elementor-element-xoccuan .pos-account .account-login > i {
    font-size: 24px !important;
}
.elementor-element-xoccuan .elementor-widget {
    margin-bottom: 0 !important;
}
.elementor-element-xoccuan {
    padding: 5px 0 !important;
}
.elementor-element-xoccuan > .elementor-container {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.elementor-element-xoccuan .blockcart .cart-products-count {
    top: -8px !important;
    left: 18px !important;
    font-size: 10px !important;
    min-width: 16px !important;
    height: 16px !important;
    line-height: 16px !important;
}
.elementor-element-xoccuan .elementor-widget-pos_menu {
    margin-right: 5px !important;
}
.elementor-element-xoccuan .elementor-widget-posCart {
    margin-left: 8px !important;
}

/* ===== TASK-040/041/042/043 : Mon Compte UX ===== */

/* --- TASK-040 : Menu deroulant compte header --- */
.elementor-widget-posAccount.pos-dropdown-right .pos-dropdown-menu {
    width: 280px !important;
    text-align: left;
    padding: 8px 0 !important;
}
.elementor-widget-posAccount .pos-dropdown-menu li {
    border-bottom: 1px solid #f0f0f0;
}
.elementor-widget-posAccount .pos-dropdown-menu li:last-child {
    border-bottom: none;
}
.elementor-widget-posAccount .pos-dropdown-menu a {
    font-size: 14px !important;
    padding: 12px 20px !important;
    display: block;
    transition: background-color 0.2s;
}
.elementor-widget-posAccount .pos-dropdown-menu a:hover {
    background-color: #f8f8f8;
}

/* --- TASK-041 : Tableau de bord Mon compte (cartes) --- */
.page-my-account #content .links {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    padding: 0;
}
@media (max-width: 767px) {
    .page-my-account #content .links {
        grid-template-columns: repeat(2, 1fr);
    }
}
.page-my-account #content .links > a {
    background: #fff;
    border-radius: 10px;
    border: none !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.10);
    padding: 28px 16px;
    transition: box-shadow 0.2s, transform 0.2s;
    text-decoration: none;
    width: 100% !important;
    max-width: 100% !important;
    flex: none !important;
}
.page-my-account #content .links > a:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.16);
    transform: translateY(-3px);
}
.page-my-account #content .links .link-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 10px;
    box-shadow: none !important;
    border: none !important;
}
.page-my-account #content .links .link-item i.material-icons {
    color: #e73c4a;
    font-size: 38px;
}
.page-my-account #content .links .link-item {
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-size: 14px;
    color: #333;
}
/* Boutons Retour/Accueil : masqués sur le dashboard, centrés sur les sous-pages */
.page-my-account .page-footer {
    display: none;
}
#wrapper .page-footer {
    text-align: center;
    margin-top: 24px;
}

/* --- TASK-042 : Page de connexion --- */
.page-authentication .login-form {
    max-width: 440px;
    margin: 0 auto;
    padding: 40px 36px;
    background: #fff;
    border-radius: 10px;
    box-shadow: 0 4px 16px rgba(0,0,0,0.10);
}
/* Labels au-dessus des inputs (pas côte à côte) */
.page-authentication .login-form .form-group.row {
    display: flex !important;
    flex-direction: column !important;
}
.page-authentication .login-form .form-group .form-control-label,
.page-authentication .login-form .form-group .col-md-2 {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: none !important;
    float: none !important;
    text-align: left !important;
    margin-bottom: 6px;
    padding-left: 0;
    font-size: 14px;
    font-weight: 500;
    color: #333;
}
.page-authentication .login-form .form-group + .form-group {
    margin-top: 16px;
}
.page-authentication .login-form .form-group .col-md-10 {
    width: 100% !important;
    max-width: 100% !important;
    flex: none !important;
    float: none !important;
    padding-left: 0;
    padding-right: 0;
}
.page-authentication .login-form .form-group input.form-control {
    border-radius: 6px;
    border: 1px solid #ddd;
    padding: 12px 16px;
    font-size: 14px;
    height: auto;
    transition: border-color 0.2s;
}
.page-authentication .login-form .form-group input.form-control:focus {
    border-color: #e73c4a;
    outline: none;
    box-shadow: 0 0 0 2px rgba(231,60,74,0.1);
}
/* Bouton Afficher/Masquer mot de passe */
.page-authentication .login-form .input-group-btn .btn {
    background: #f5f5f5;
    border: 1px solid #ddd;
    border-left: none;
    color: #666;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    padding: 12px 14px;
    border-radius: 0 6px 6px 0;
}
.page-authentication .login-form .input-group-btn .btn:hover {
    background: #eee;
    color: #333;
}
/* Mot de passe oublié */
.page-authentication .forgot-password {
    text-align: right;
    margin-top: 8px;
}
.page-authentication .forgot-password a {
    color: #666;
    font-size: 13px;
}
.page-authentication .forgot-password a:hover {
    color: #e73c4a;
}
/* Bouton Connexion */
.page-authentication #submit-login {
    background: #e73c4a;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 14px;
    font-weight: 600;
    text-transform: uppercase;
    width: 100%;
    font-size: 15px;
    letter-spacing: 0.5px;
    cursor: pointer;
    margin-top: 8px;
    transition: background-color 0.2s;
}
.page-authentication #submit-login:hover {
    background: #d12e3c;
}
/* Séparateur */
.page-authentication .page-content hr {
    border: none;
    border-top: 1px solid #ddd;
    margin: 28px 0;
}
/* Lien créer un compte */
.page-authentication .no-account {
    text-align: center;
}
.page-authentication .no-account a {
    color: #e73c4a;
    font-weight: 500;
    font-size: 15px;
    text-decoration: none;
}
.page-authentication .no-account a:hover {
    text-decoration: underline;
}

/* --- FIX : Wishlist button visual state (coeur rouge) --- */
.addToWishlist.is-in-wishlist i,
#wishlist_button.is-in-wishlist i {
    color: #e73c4a !important;
}
.addToWishlist.is-in-wishlist span {
    color: #e73c4a;
}

/* --- TASK-043 : Page Mes adresses --- */
.page-addresses #content .row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
}
.page-addresses article.address {
    background: #fff;
    border: none !important;
    border-radius: 10px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.10) !important;
    padding: 24px;
    transition: box-shadow 0.2s;
}
.page-addresses article.address:hover {
    box-shadow: 0 6px 20px rgba(0,0,0,0.16) !important;
}
/* TASK-057 : Grille 3 colonnes responsive flex */
.page-addresses .col-lg-4 {
    flex: 1 1 calc(33.333% - 16px) !important;
    max-width: calc(33.333% - 16px) !important;
}
@media (max-width: 991px) {
    .page-addresses .col-lg-4 {
        flex: 1 1 calc(50% - 16px) !important;
        max-width: calc(50% - 16px) !important;
    }
}
@media (max-width: 575px) {
    .page-addresses .col-lg-4 {
        flex: 1 1 100% !important;
        max-width: 100% !important;
    }
}
.page-addresses .address-body h4 {
    font-family: "Poppins", sans-serif;
    font-weight: 600;
    font-size: 16px;
    color: #333;
    margin-bottom: 10px;
}
.page-addresses .address-body address,
.page-addresses .address-body address * {
    font-size: 14px;
    line-height: 1.6;
    color: #555 !important;
    font-style: normal;
}
.page-addresses .address-footer {
    display: flex;
    gap: 16px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #f0f0f0;
}
.page-addresses .address-footer a {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: #666;
    text-decoration: none;
    transition: color 0.2s;
}
.page-addresses .address-footer a:hover {
    color: #e73c4a;
}
.page-addresses .address-footer a i.material-icons {
    font-size: 18px;
}
/* Conteneur flex pour remonter le bouton "Créer" en haut */
.page-addresses #content {
    display: flex !important;
    flex-direction: column;
}
.page-addresses .addresses-footer {
    order: -1;
    margin-bottom: 20px;
    margin-top: 0;
    text-align: center;
}
.page-addresses .addresses-footer a {
    display: inline-flex !important;
    align-items: center;
    gap: 6px;
    background: #e73c4a !important;
    color: #fff !important;
    padding: 10px 20px !important;
    border-radius: 6px !important;
    font-weight: 600;
    font-size: 14px !important;
    text-decoration: none !important;
    transition: background-color 0.2s;
}
.page-addresses .addresses-footer a:hover {
    background: #d12e3c !important;
}
.page-addresses .addresses-footer a > i.material-icons,
.page-addresses .addresses-footer a > span {
    display: inline !important;
    background: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 0 !important;
    width: auto !important;
    height: auto !important;
    color: #fff !important;
    font-size: 14px !important;
    line-height: 1 !important;
}
.page-addresses .addresses-footer a > i.material-icons {
    font-size: 18px !important;
}
.page-addresses .addresses-footer a:hover {
    background: #d12e3c;
    color: #fff;
}
.page-addresses .addresses-footer a i.material-icons {
    font-size: 20px;
}

/*** BLOG HIBLOG ***/
/* Blog listing page */
.hi-blog-main-page-description {
    font-size: 16px;
    color: #666;
    margin-bottom: 25px;
    padding-bottom: 20px;
    border-bottom: 1px solid #eee;
}
#blog_post_container .blog-post {
    margin-bottom: 30px;
    padding-bottom: 30px;
    border-bottom: 1px solid #eee;
}
#blog_post_container .blog-post:last-child {
    border-bottom: none;
}
#blog_post_container .blog-post-item {
    display: flex;
    gap: 25px;
    align-items: flex-start;
}
#blog_post_container .post-image-block {
    flex: 0 0 380px;
    max-width: 380px;
    overflow: hidden;
    border-radius: 8px;
}
#blog_post_container .post-image-block img {
    width: 100%;
    height: 250px;
    object-fit: cover;
    border-radius: 8px;
    transition: transform .3s ease;
}
#blog_post_container .post-image-block img:hover {
    transform: scale(1.03);
}
#blog_post_container .blog-post-content {
    flex: 1;
}
#blog_post_container .blog-post-content h2,
#blog_post_container .blog-post-content h3 {
    font-family: "Protest Riot", sans-serif;
    margin-top: 0;
    margin-bottom: 5px;
    font-size: 22px;
}
#blog_post_container .blog-post-content h2 a,
#blog_post_container .blog-post-content h3 a {
    color: #333;
    text-decoration: none;
}
#blog_post_container .blog-post-content h2 a:hover,
#blog_post_container .blog-post-content h3 a:hover {
    color: #d12e3c;
}
/* Date + meta : plus visible */
#blog_post_container .post-published,
#blog_post_container .post-meta {
    color: #555;
    font-size: 14px;
    margin-bottom: 10px;
}
#blog_post_container .post-published .material-icons,
#blog_post_container .post-meta i {
    font-size: 16px;
    margin-right: 3px;
    vertical-align: text-bottom;
}
/* Masquer likes et icône coeur */
#blog_post_container .hi-blog-post-like,
#blog_post_container .heart-icon-big,
#blog_post_container .like-count {
    display: none !important;
}
/* Description plus lisible */
#blog_post_container .post-desc,
#blog_post_container .short-desc {
    color: #444;
    font-size: 15px;
    line-height: 1.7;
    margin-bottom: 12px;
}
/* Bouton "Lire la suite" — style CTA rouge */
#blog_post_container .post-read-more-button,
#blog_post_container .read-more-link,
#blog_post_container .blog-read-more a,
#blog_post_container a.blog-read-more {
    display: inline-block;
    background: #d12e3c;
    color: #fff !important;
    font-weight: 600;
    font-size: 13px;
    text-decoration: none;
    padding: 8px 20px;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: background .2s, transform .1s;
    margin-top: 5px;
}
#blog_post_container .post-read-more-button:hover,
#blog_post_container .read-more-link:hover,
#blog_post_container .blog-read-more a:hover,
#blog_post_container a.blog-read-more:hover {
    background: #a8232f;
    color: #fff !important;
    text-decoration: none;
    transform: translateY(-1px);
}
/* Blog detail page */
.hi-blog-details .post-details-image {
    border-radius: 8px;
    overflow: hidden;
    margin-bottom: 20px;
}
.hi-blog-details .post-details-image img {
    width: 100%;
    height: auto;
    border-radius: 8px;
}
.hi-blog-details .post-title {
    font-family: "Protest Riot", sans-serif;
    font-size: 28px;
    margin-bottom: 10px;
}
.hi-blog-details .post-content {
    font-size: 15px;
    line-height: 1.7;
    color: #444;
}
.hi-blog-details .post-content h2 {
    font-family: "Protest Riot", sans-serif;
    font-size: 24px;
    margin-top: 30px;
    margin-bottom: 15px;
    color: #333;
}
.hi-blog-details .post-content h3 {
    font-family: "Protest Riot", sans-serif;
    font-size: 20px;
    margin-top: 25px;
    margin-bottom: 10px;
    color: #333;
}
.hi-blog-details .post-content ul {
    padding-left: 20px;
    margin-bottom: 20px;
}
.hi-blog-details .post-content ul li {
    margin-bottom: 8px;
    line-height: 1.6;
}
.hi-blog-details .post-categories {
    margin-top: 20px;
    padding-top: 15px;
    border-top: 1px solid #eee;
    font-size: 13px;
    color: #999;
}
.hi-blog-details .post-categories a {
    color: #d12e3c;
}
/* Date + meta : détail — plus visible */
.post-published,
.post-published span,
.hi-blog-17 .post-published,
.hi-blog-17 .post-meta,
.blog-desc-content .post-published,
.blog-desc-content .post-published span {
    color: #555 !important;
    font-size: 15px !important;
}
.post-published .material-icons,
.blog-desc-content .post-published .material-icons {
    font-size: 17px !important;
    vertical-align: text-bottom;
    color: #666 !important;
}
/* Masquer likes sur détail aussi */
.hi-blog-17 .hi-blog-post-like,
.hi-blog-17 .heart-icon-big,
.hi-blog-details .hi-blog-post-like {
    display: none !important;
}
/* Masquer section commentaires entièrement */
.coments-container,
.blog-tab-content,
.blog-tabs,
.comment-tabs,
.customer-comments-form-block {
    display: none !important;
}
/* Masquer aussi le compteur likes en détail */
.hi-blog-desc-content .hi-blog-post-like,
.post-published .hi-blog-post-like {
    display: none !important;
}
/* Table of Contents */
.hi-blog-details .toc-block,
.hi-blog-17 .hi-blog-toc {
    background: #f9f9f9;
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 25px;
}
.hi-blog-details .toc-block h4,
.hi-blog-17 .hi-blog-toc h4 {
    font-family: "Poppins", sans-serif;
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 10px;
}
/* Contenu détail — police/couleur */
.hi-blog-17 .post-desc,
.hi-blog-17 .hi-blog-desc-content {
    font-size: 15px;
    line-height: 1.7;
    color: #444;
}
/* Blog responsive */
@media (max-width: 767px) {
    #blog_post_container .blog-post-item {
        flex-direction: column;
    }
    #blog_post_container .post-image-block {
        flex: none;
        max-width: 100%;
    }
    #blog_post_container .post-image-block img {
        height: 200px;
    }
    .hi-blog-details .post-title {
        font-size: 22px;
    }
}

/*** PANIER — TASK-059 : bouton check + loader quantité ***/
.cart-qty-wrapper {
    display: flex;
    align-items: center;
    gap: 6px;
}
.cart-qty-wrapper .cart-qty-input {
    width: 60px;
    text-align: center;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 6px 4px;
    font-size: 15px;
    font-weight: 600;
    -moz-appearance: textfield;
}
.cart-qty-wrapper .cart-qty-input::-webkit-inner-spin-button,
.cart-qty-wrapper .cart-qty-input::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.cart-qty-wrapper .cart-qty-input.qty-changed {
    border-color: #d12e3c;
    background: #fff5f5;
}
.btn-cart-qty-confirm {
    background: #d12e3c;
    color: #fff;
    border: none;
    border-radius: 4px;
    width: 32px;
    height: 32px;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: background .2s, transform .1s;
    flex-shrink: 0;
}
.btn-cart-qty-confirm:hover {
    background: #a8232f;
}
.btn-cart-qty-confirm:active {
    transform: scale(0.95);
}
.btn-cart-qty-confirm i.material-icons {
    font-size: 18px;
}
.cart-qty-loader {
    flex-shrink: 0;
}
.cart-qty-loader .spinner-border-sm {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid #ddd;
    border-top-color: #d12e3c;
    border-radius: 50%;
    animation: cart-spinner .6s linear infinite;
}
@keyframes cart-spinner {
    to { transform: rotate(360deg); }
}

/*** FOOTER ***/
#footer {
    margin-top: 30px;
}
/* TASK-056 : footer container 100% + 4 colonnes 25% */
#footer .elementor-section > .elementor-container {
    max-width: 100% !important;
    width: 100%;
    padding-left: 30px;
    padding-right: 30px;
}
#footer .elementor-section > .elementor-container > .elementor-row > .elementor-column {
    flex: 1 1 25% !important;
    max-width: 25%;
    width: 25%;
}
.box-footer-feats {
    background-image: linear-gradient(to right, rgb(231, 60, 74), rgb(240, 109, 102), #da9c2e);
}
.footer-txt {
    margin-top: 20px;
}

/* TASK-080 #24 : override typo theme parent (.page-content.page-cms ul, p {font-size:1px}) */
/* qui ratatinait tout le texte des listes UL des pages CMS Creative Elements à 1px de hauteur. */
.page-content.page-cms ul,
.page-content.page-cms ul li,
.page-content.page-cms ul li span {
    font-size: inherit;
}

/* LOT G — TASK-083 #31 : footer mobile — passer en 1 colonne pour eviter overflow */
/* des titres "INFORMATIONS LEGALES" et "COORDONNEES" a 45px de width sur 375px viewport. */
@media (max-width: 575px) {
    #footer .elementor-section > .elementor-container > .elementor-row > .elementor-column {
        flex: 1 1 100% !important;
        max-width: 100%;
        width: 100%;
        margin-bottom: 24px;
    }
    #footer .elementor-section > .elementor-container > .elementor-row > .elementor-column:last-child {
        margin-bottom: 0;
    }
    #footer h2,
    #footer h3,
    #footer h4,
    #footer .elementor-heading-title {
        word-break: break-word;
        overflow-wrap: break-word;
        white-space: normal;
    }
}

/* LOT G — TASK-083 #32 : fiche produit mobile — eviter que le bottom nav fixe */
/* .quickmenu-mobile (~55px) ne cache le prix / bouton "Ajouter au panier". */
@media (max-width: 767px) {
    body.page-product main {
        padding-bottom: 80px;
    }
}

/* TASK-087 #51 : Harmonisation alignement vertical bouton "Ajouter au panier" */
/* sur listings categorie via Flexbox naturel (Option B retenue user 2026-04-29) : */
/* la card s'etire pour remplir la rangee, et le bouton est pousse en bas via margin-top:auto. */
/* Pas de min-height : chaque rangee a la hauteur naturelle de sa card la plus haute. */
.products.row {
    align-items: stretch;
}
.products .product,
.products .item-product {
    display: flex;
    flex-direction: column;
}
.js-product-miniature.style_product5 {
    display: flex;
    flex-direction: column;
    height: 100%;
}
/* La carte parente (.thumbnail-container) en flex column pour que .product_desc puisse grandir */
.js-product-miniature.style_product5 .product_desc {
    flex: 1 1 auto;
}

/* TASK-087 #51 : Bouton "Ajouter au panier" sur listings = largeur du picto cart */
/* (square button icon-only — plus de pleine largeur via flex:1 du selecteur quantite). */
/* Cible aussi le span.disabled "rupture de stock" qui est hors .product-add-to-cart-miniature. */
.js-product-miniature.style_product5 .product-add-to-cart-miniature .btn-cart-icon-only,
.js-product-miniature.style_product5 .product-add-to-cart-miniature button.btn-cart-icon-only.ajax_add_to_cart_button,
.js-product-miniature.style_product5 .product-add-to-cart-miniature span.btn-cart-icon-only.ajax_add_to_cart_button,
.js-product-miniature.style_product5 .cart > span.btn-cart-icon-only.ajax_add_to_cart_button.disabled {
    flex: 0 0 auto !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 34px !important;
    padding: 0 !important;
    border-radius: 4px;
}

/* =====================================================================
   TASK-A4 (2026-05-12) — Bouton + qty fiche produit : icône cassée
   Le thème optima utilise i.touchspin-up/down::after avec un glyph PUA
   (U+E98D pour +, U+E98E pour -) dans la font custom "roadthemes-icon".
   Sur certains rendus (mobile notamment) le glyph U+E98D apparaît
   tronqué/déformé. On override avec un + et un − ASCII propres.
   ===================================================================== */
.product-add-to-cart .product-quantity .qty .bootstrap-touchspin .input-group-btn-vertical .btn-touchspin.bootstrap-touchspin-up i.touchspin-up::after,
.product-quantity .bootstrap-touchspin-up i.touchspin-up::after,
.bootstrap-touchspin-up i.touchspin-up::after {
    content: "+" !important;
    font-family: "Poppins", Arial, sans-serif !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    display: inline-block;
    vertical-align: middle;
}
.product-add-to-cart .product-quantity .qty .bootstrap-touchspin .input-group-btn-vertical .btn-touchspin.bootstrap-touchspin-down i.touchspin-down::after,
.product-quantity .bootstrap-touchspin-down i.touchspin-down::after,
.bootstrap-touchspin-down i.touchspin-down::after {
    content: "\2212" !important; /* U+2212 MINUS SIGN — symétrique avec le + */
    font-family: "Poppins", Arial, sans-serif !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    display: inline-block;
    vertical-align: middle;
}

/* =====================================================================
   TASK-A5 (2026-05-12) — Listing miniatures : chevauchement nom/ref
   Spec Natacha : le nom sur 3 lignes cache la référence.
   Cause : .product_name est clampé à 2 lignes par le thème parent, et
   .product-reference-listing a un margin-top: -2px (négatif) qui chevauche
   quand le nom déborde. Fix : autoriser 3 lignes + suppr. marge négative.
   ===================================================================== */
.js-product-miniature .product_desc .product_name,
.js-product-miniature .product_desc .product_name:not(.one_line) {
    display: -webkit-box !important;
    -webkit-line-clamp: 3 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: normal !important;
    line-height: 1.4 !important;
    min-height: calc(3 * 1.4 * 13px); /* 54.6px : uniformise les cards */
}
.js-product-miniature .product-reference-listing {
    margin-top: 4px !important; /* override -2px d'origine qui causait l'overlap */
    margin-bottom: 6px;
}

/* =====================================================================
   TASK-A2 (2026-05-12) — Actualités : police classique sur titres blog
   Spec Natacha : "mettre une police d'écriture classique pour le titre
   (et pas de majuscule à chaque mot)".
   Cible : tous les titres dans .blog-desc-content (titre article + sous-
   titres sommaire/sections internes), qui héritent actuellement de
   "Protest Riot" (fonte décorative) + capitalize sur h2/h3.
   N'affecte PAS les titres menu/footer/widgets globaux.
   ===================================================================== */
.blog-desc-content h1,
.blog-desc-content h2,
.blog-desc-content h3,
.blog-desc-content h4,
.blog-desc-content .blog-desc-title,
/* TASK-A2 Phase 2 (P2) : extension au listing /actualites */
.blog-post .post-title h2,
.blog-post-item .post-title h2,
.blog-post .post-title h3 {
    font-family: "Poppins", sans-serif !important;
    text-transform: none !important;
}

/* CC7-BUG-002 : body padding-bottom pour .quickmenu-mobile (55px) visible à ≤991px */
/* Empêche la barre fixe de masquer les 55px du bas de page sur tablette/mobile. */
@media (max-width: 991px) {
    body {
        padding-bottom: 60px;
    }
}

/* =====================================================================
   TASK-A1A6 (2026-05-12) — Fiche produit : alignement photo + miniatures
   Spec Natacha :
   - Image cover en ratio 5/4 paysage (image source 1550x1250 native ratio
     ≈ 1.24, déformée en carré 800x800 par image_type PS).
   - Miniatures rapprochées du cover (espace réduit).
   - Top photo aligné top h1 (déjà OK en desktop ≥992px, ici on garantit
     que le passage en ratio 5/4 ne casse pas l'alignement).
   ===================================================================== */
.product-cover,
.product-cover .slick-list,
.product-cover .slick-track,
.product-cover .slick-slide,
.product-cover .slick-slide > div {
    aspect-ratio: 5 / 4;
    height: auto !important;
}
/* Chaîne descendante slick : forcer chaque wrapper à remplir parent à 100% */
.product-cover .slick-slide .cover-item,
.product-cover .cover-item,
.product-cover .easyzoom,
.product-cover .easyzoom > a {
    height: 100% !important;
    width: 100% !important;
    display: block;
}
.product-cover img,
.product-cover .slick-list img,
.product-cover .easyzoom img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: 50% 50%;
    aspect-ratio: 5 / 4;
}
/* Miniatures : moins d'espace entre elles et la grande photo
   (le cover hérite d'un margin-bottom:20px du thème — on neutralise puis
   on définit le gap unique via .product-images margin-top). */
.images-container .product-cover,
.product-cover-container .product-cover {
    margin-bottom: 0 !important;
}
.images-container .product-images {
    margin-top: 10px !important;
}
/* Garantie alignement top photo / top h1 en desktop large (déjà flex/grid) :
   pas de margin-top sur la colonne droite contenant h1. */
@media (min-width: 992px) {
    .product-container > .col-md-6:first-child,
    .product-container > [class*="col-"]:first-child {
        margin-top: 0;
    }
}

/* ─────────────────────────────────────────────────────────────────────
   TASK-UX-A3 — Prompt login visiteurs (mode catalog, show_prices=0)
   Affiché à la place du bloc prix sur fiche produit quand le visiteur
   n'a pas le droit de voir le prix. CTA primaire vers /connexion.
   ───────────────────────────────────────────────────────────────────── */
.ws-login-prompt {
    display: flex;
    align-items: center;
    gap: 14px;
    background: #fff;
    border: 1px solid #f0f0f0;
    border-left: 4px solid #e73c4a;
    border-radius: 4px;
    padding: 18px 20px;
    margin: 12px 0 18px;
}
.ws-login-prompt__icon {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: #fdecee;
    color: #e73c4a;
    display: flex;
    align-items: center;
    justify-content: center;
}
.ws-login-prompt__icon svg {
    width: 22px;
    height: 22px;
}
.ws-login-prompt__body {
    flex: 1 1 auto;
    min-width: 0;
}
.ws-login-prompt__title {
    margin: 0 0 10px;
    font-family: 'Poppins', sans-serif;
    font-size: 15px;
    font-weight: 600;
    color: #121111;
    line-height: 1.35;
}
.ws-login-prompt__cta.btn-primary {
    background: #e73c4a !important;
    border-color: #e73c4a !important;
    color: #fff !important;
    font-family: 'Poppins', sans-serif;
    font-weight: 600;
    font-size: 13px;
    padding: 8px 18px;
    border-radius: 3px;
    text-transform: none;
    display: inline-block;
    text-decoration: none;
    transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
}
.ws-login-prompt__cta.btn-primary:hover,
.ws-login-prompt__cta.btn-primary:focus {
    background: #c92e3a !important;
    border-color: #c92e3a !important;
    color: #fff !important;
}
/* Rappel discret dans le bloc Add-to-cart (sous le prompt principal) */
.ws-login-prompt__hint {
    margin: 6px 0 0;
    font-family: 'Poppins', sans-serif;
    font-size: 13px;
    color: #6c757d;
    font-style: italic;
}
.ws-login-prompt__hint a {
    color: #e73c4a;
    text-decoration: underline;
    font-weight: 600;
}
.ws-login-prompt__hint a:hover,
.ws-login-prompt__hint a:focus {
    color: #c92e3a;
}
/* Mobile : la zone passe en colonne pour rester lisible sur 375px */
@media (max-width: 575px) {
    .ws-login-prompt {
        flex-direction: column;
        align-items: flex-start;
        padding: 16px;
        gap: 12px;
    }
    .ws-login-prompt__cta.btn-primary {
        width: 100%;
        text-align: center;
        padding: 10px 18px;
    }
}

/* =====================================================================
   TASK-A1A6-LISTING (2026-05-18) + FIX 2026-05-21 (TASK-016 Volet 3)
   Listing : le NOM produit utilise la MÊME police + le MÊME poids que le PRIX
   de la carte. Le prix est Poppins / 600 / 16px (#555) → on aligne le nom
   dessus (Poppins / 600 / 16px ; couleur titre conservée). Référence : 16px / 400 / #555.
   (min-height retiré : la hauteur est gérée par le système flex — cf. règle plus
   bas + inline head.tpl — pour éviter l'espace vide sous les titres courts.)
   ===================================================================== */
.js-product-miniature .product_desc .product_name,
.js-product-miniature .product_desc .product_name:not(.one_line) {
    font-family: 'Poppins', sans-serif !important;
    font-size: 16px !important;
    font-weight: 600 !important;
}
.js-product-miniature .product-reference-listing {
    font-size: 16px !important;
    color: #555 !important;
    font-weight: 400 !important;
}

/* =====================================================================
   TASK-A1A6-MOBILEMIN (2026-05-18 Phase 2 P1 #3) — Mobile "+" bizarre
   Spec Natacha : sur listing mobile, le label "min. : 2" s'intercale
   entre le bouton + du stepper et le bouton panier rouge => effet
   visuel bizarre / collé. Le min est deja enforce par le quantity input.
   Fix : masquer le label sur listing en <576px (cosmetique uniquement).
   Le label reste accessible : title="Quantite minimum : 2" + visible
   sur la fiche produit (out-of-scope ici).
   ===================================================================== */
@media (max-width: 575px) {
    .js-product-miniature .cart .minimal-qty-notice {
        display: none !important;
    }
}

/* =====================================================================
   AUTOFLOW Phase 1 #1b (2026-05-21) — Listing : nom produit complet,
   jamais tronqué, jamais de chevauchement avec la référence.
   Contexte : les correctifs A5 + A1A6 ont supprimé le CHEVAUCHEMENT
   nom/référence (référence repassée en margin-top positive). Vérifié
   2026-05-21 : 0 overlap sur Dinde/Volailles à 390px. MAIS le nom
   restait clampé à 3 lignes (-webkit-line-clamp:3 + overflow:hidden),
   donc les noms longs (ex. "1 lobe de foie gras de canard cru déveiné
   congelé, France") étaient coupés par "…". Le brief demande de NE PAS
   tronquer le nom et une carte à hauteur AUTO.
   Fix : zone titre flexible — on retire le clamp et l'overflow:hidden
   pour afficher le nom entier sur autant de lignes que nécessaire. Le
   min-height (plancher 3 lignes @16px = 67.2px) reste pour l'uniformité.
   La carte est déjà flex-column (height:100% + .product_desc flex:1) et
   la rangée est align-items:stretch => les paires s'égalisent en hauteur,
   prix/bouton restent en bas, et la référence (flux normal, margin-top
   positive) ne peut jamais être recouverte, quel que soit le nb de lignes.
   ===================================================================== */
.js-product-miniature .product_desc .product_name,
.js-product-miniature .product_desc .product_name:not(.one_line) {
    display: block !important;
    -webkit-line-clamp: unset !important;
    -webkit-box-orient: unset !important;
    overflow: visible !important;
    max-height: none !important;
    text-overflow: clip !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
    /* AJUST 2026-05-21 : plus de min-height fixe (causait un espace vide sous
       les titres courts). Hauteur naturelle ; l'alignement des cartes est
       assuré par le flex (cf. bloc ci-dessous), pas par un plancher de hauteur. */
    min-height: 0 !important;
}
.js-product-miniature .product-reference-listing {
    margin-top: 6px !important; /* espace clair sous le nom, jamais de recouvrement */
}

/* AJUST 2026-05-21 — Système flexible d'alignement des cartes listing.
   Titre = hauteur naturelle (pas d'espace mort sous les titres courts).
   Le groupe prix + actions (bouton panier) est poussé en bas via
   margin-top:auto sur .product-price-and-shipping, de sorte que les prix
   et boutons restent alignés en bas entre les cartes d'une même rangée
   (rangée déjà en align-items:stretch). On neutralise l'ancien
   margin-top:auto isolé sur .cart pour que prix + panier restent groupés
   (sinon l'espace libre se répartirait entre les deux). */
.js-product-miniature.style_product5 .product_desc .product-price-and-shipping {
    margin-top: auto;
}
.js-product-miniature.style_product5 .product_desc .cart {
    margin-top: 0;
}

/* =====================================================================
   TASK-016 (2026-05-21) — Prix au kilo + mention "poids moyen"
   - Fiche : .product-unit-price (prix/kilo) déjà géré par le thème,
     on ajoute .charc-weight-notice (encadré discret) sous le prix.
   - Listing : le hook unit_price ne rend rien → on affiche directement
     .charc-unit-price-listing + une mention compacte.
   ===================================================================== */

/* Prix au kilo — carte listing */
.charc-unit-price-listing {
    display: block;
    margin: 2px 0 0;
    font-family: 'Poppins', sans-serif;
    font-size: 13px;
    font-weight: 500;
    color: #555;
    line-height: 1.3;
}

/* Mention poids moyen — fiche produit (encadré discret design system) */
.charc-weight-notice {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin: 10px 0 0;
    padding: 8px 11px;
    background: #fdecee;
    border-left: 3px solid #e73c4a;
    border-radius: 3px;
    font-family: 'Poppins', sans-serif;
    font-size: 12.5px;
    line-height: 1.4;
    color: #7a4147;
}
.charc-weight-notice__icon {
    flex: 0 0 auto;
    color: #e73c4a;
    display: inline-flex;
    align-items: center;
    margin-top: 1px;
}
.charc-weight-notice__icon svg {
    width: 14px;
    height: 14px;
}
.charc-weight-notice__text {
    flex: 1 1 auto;
}

/* AJUST 2026-05-21 : la mention "poids moyen" reste UNIQUEMENT sur la fiche.
   Sur le listing, seul le prix au kilo (.charc-unit-price-listing) est affiché.
   (.charc-weight-notice--listing retirée — plus utilisée.) */

@media (max-width: 575px) {
    .charc-weight-notice {
        font-size: 12px;
        padding: 8px 10px;
    }
    .charc-unit-price-listing {
        font-size: 12px;
    }
}
