body {
    font-family: Montserrat;
}
@font-face {
    font-family: Montserrat;
    font-style: normal;
    font-display: swap;
    src: url('../assets/fonts/Montserrat-VariableFont_wght.ttf') format('truetype');
}
@font-face {
    font-family: DINEngschrift;
    font-style: normal;
    font-display: swap;
    src: url('../fonts/DINEngschrift-Regular.ttf') format('truetype');
}
@font-face {
    font-family: bertholdakzidenzgroteskbe;
    font-style: normal;
    font-display: swap;
    src: url('../fonts/bertholdakzidenzgroteskbe.ttf') format('truetype');
}
:root {
    --bs-body-bg: #FAFAFA;
    --bs-body-font-family: Montserrat;
    --restos-du-coeur: #E6007E;
    --couleur-fond-de-page: #FAFAFA;
    --couleur-accent: #EE411F;
    --couleur-primaire: #22958E;
    --couleur-secondaire: #1A6B64;
    --couleur-texte: #333333;
    --couleur-notification: #ED300B;
    --couleur-séparateur: #C1C1C1;
    --couleur-cadre-hover: #5C5C5C;
    --couleur-champ-validé: #0ABE7F;
}

body{
    background-color: var(--bs-body-bg);
    font: normal normal normal 11px Montserrat;
}

.loading{
    float: right;
    margin-left: 115px;
    width: 30px;
    height: 30px;
    display: block;
    background-image: '../images/loading.gif';
}

.mozaique {
    background: rgba(0, 0, 0, 0) none repeat scroll 0 0;
    float: left;
    margin: 0 10px 10px 0;
    padding: 0;

}

.imghautFixe{
    height: 159px !important;
}
.conditionnement {
    font-weight: bold;
    font-size: 11px;
}
.maj {
    text-transform: uppercase;
}

.pastilleHalal {
    background: #ec4646 none repeat scroll 0 0;
    color: #fff;
    font-size: 12px;
    padding: 3px 11px;
    position: absolute;
    right: 0;
    text-transform: uppercase;
    top: 13px;
    z-index: 999;
    width: 50px;
    height: 25px;
    text-align: center;
    line-height: 19px;
}

.pastilleSurgeles {
    background: #93c2dd none repeat scroll 0 0;
    color: #fff;
    font-size: 12px;
    height: 25px;
    left: 0;
    line-height: 21px;
    padding: 3px 11px;
    position: absolute;
    text-align: center;
    text-transform: uppercase;
    top: 13px;
    width: 80px;
    z-index: 7;
}

.pastilleMenuHalal {
    position: relative
}
.pastilleMenuHalal::before {
    background: rgba(0, 0, 0, 0) url("../images/halal.png") no-repeat scroll 0 0;
    color: #fff;
    content: "";
    font-family: 'arial';
    font-size: 12px;
    height: 31px;
    padding: 4px 11px;
    position: absolute;
    right: 0;
    text-align: left;
    text-transform: uppercase;
    top: -12px;
    width: 47px;
}
.pastilleMenuSurgele {
    position: relative
}
.pastilleMenuSurgele::before {
    background: rgba(0, 0, 0, 0) url("../images/new-2.png") no-repeat scroll 0 0;
    color: #fff;
    content: "Surgelé";
    font-family: arial;
    font-size: 12px;
    height: 34px;
    padding: 4px 11px;
    position: absolute;
    right: 0;
    text-align: center;
    text-transform: uppercase;
    top: -12px;
}
/*.resultat{
    background: #lalala;
    width: 700px;
    height: 86px;
    padding-left: 80px;
    color: blue;
    font-size: 18px;
}*/
.resultat{
    display: block;
    top: 70px;
    z-index: 999999999 !important;
    position: absolute;
    width: auto;
    height: auto;
    background: white;
}
.popover{
    max-width:500px;
    z-index: 9999;
}

.offer-row {
    margin-bottom: 10px;
}

.offer-img {
    width: 100px;
}

.offer-txt {
    font-size : 20px;
}

.footer-fixed {
    position: fixed;
    height: 100px;
    bottom: 0;
    width: 100%;
}

.toolbar .pager{
    width: 55% !important;
}

footer .co-info{
    background: #FFFFFF;
}

footer .co-info address{
    color: #000000;
}

footer .icon-location-arrow::before, footer .icon-mobile-phone::before, footer .icon-envelope:before {
    color: #000000;
}

footer address div {
    border-bottom: 1px #000000 dotted;
}

footer .social a {
    color: #000000;
}

#aboutUs p{
    font-size: 16px;
}

#aboutUs h2{
    font-weight: 600;
}

.btn-green{
    background: #22958E !important;
}

.btn-blue{
    background: #2f8cff !important;
}

.btn-red{
    background: #942a25 !important;
}

.btn-gray{
    background: #eaeaea !important;
}

.form-group-lg .form-control {
    height: 46px;
    padding: 10px 16px;
    font-size: 18px;
    line-height: 1.3333333;
    border-radius: 6px;
}

.product-view .product-shop .price {
    font-size: 24px;
    color: #f83f0e;
    font-weight: bold;
}
.product-view .product-shop .other-price {
    font-size: 18px;
    color: #22958E;
    font-weight: bold;
}

.logo-item img{
    height: 100px;
}

.logo-item {
    border: none;
}

.force-white{
    color: white !important;
}

.header-banner h1{
    font-size: 19px;
    margin-top: 0px;
    margin-bottom: 0px;
}

p.availability {
    margin: 7px;
}
.availability.in-stock, .availability.out-of-stock {
    padding: 0;
}

footer{
    margin-top: 10px;
}

footer .newsletter-row {
    padding: 10px 0;
}

.footer-bottom {
    padding: 0;
}

address {
    line-height: 14px;
}

footer address{
    margin-top: 8px;
    margin-bottom: 8px;
}

.amazon-ads iframe{
    display: block;
    margin: 30px auto 0 auto;
}

.page-heading .page-title h1 {
    color: #fff;
}

.button-primary{
    background-color: #84bd58;
    color: white;
    font-size: 1.2rem;
    font-weight: bold;
    padding: 1.5rem;
}

.button-green{
    background: #22958E !important;
    color: #fff;
    border: 2px solid #22958E !important;
}

.mega-menu .level0-wrapper{
    z-index: 1000;
}

#nav > li > a {
    color: #0f8880;
}

.header-container {
    background-color: #fff;
}

#nav ul.level0 > li > a {
    color: #22958E;
}

.has-search .form-control-feedback {
    right: initial;
    left: 0;
    color: #ccc;
    font-size: 2.5em;
}

.has-search .form-control {
    padding-right: 12px;
    padding-left: 34px;
}

.page-heading {
    padding: 100px 0 20px 0;
}

#nav ul.level0 > li {
    width: 22.4%;
    text-transform: uppercase;
}

header .top-nav .navbar-top .web-logo img {
    width: calc(120px + (300 - 120) * ((100vw - 320px) / (1920 - 320)));
    height: auto;
    -o-object-fit: contain;
    object-fit: contain;
}

.resultat thead, .resultat tbody, .resultat tfoot, .resultat tr, .resultat td, .resultat th {
    border-color: inherit;
    border-style: hidden;
    border-width: 0;
}

.resultat a{
    color: #000;
}

.resultat .badge {
    margin: 1px;
}

.cart-table table tbody tr td {
    min-width: calc(70px + (170 - 135) * ((100vw - 320px) / (1920 - 320)));
}

.delivery-pickup-box{
    border-radius: 8px;
    padding: calc(12px + (24 - 12) * ((100vw - 320px) / (1920 - 320)));
    background-color: #fff;
    height: 100%;
    -webkit-box-shadow: 0 0 9px rgba(0,0,0,0.07);
    box-shadow: 0 0 9px rgba(0,0,0,0.07);
    margin-bottom: 10px
}
.delivery-pickup-box>div{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    position: relative;
}
.delivery-pickup-detail{
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 10px;
    margin-left: 10px;
    width: calc(85% + (75 - 85) * ((100vw - 320px) / (1920 - 320)));
}
.delivery-pickup-detail .pickup-title{
    width: 100%;
}
.delivery-pickup-detail .label{
    position: absolute;
    top: 0;
    right: 0;
    padding: 2px 8px;
}
.checkout-icon .fa{
    margin: 5px;
}
.text-color{
    color: var(--theme-color) !important;
}
.b-none{
    border: none !important;
}

h2, h3, h4, h5{
    text-transform: none !important;
}

.datepicker{
    background:#fff url(https://cdn1.iconfinder.com/data/icons/cc_mono_icon_set/blacks/16x16/calendar_2.png)  97% 50% no-repeat ;
}
.datepicker::-webkit-inner-spin-button {
    display: none;
}
.datepicker::-webkit-calendar-picker-indicator {
    opacity: 0;
}


.datepicker {
    border: 1px solid #c4c4c4;
    border-radius: 5px;
    background-color: #fff;
    padding: 3px 5px;
    box-shadow: inset 0 3px 6px rgba(0,0,0,0.1);
    width: 190px;
}

.ui-datepicker {
    padding: 4em;
    background: #fff2ec;
    font: 13px/1.4 Geneva, 'Lucida Sans', 'Lucida Grande', 'Lucida Sans Unicode', Verdana, sans-serif;
}

.infobulle {
    position: relative;  /* les .infobulle deviennent référents */
    cursor: help;
}

/* on génère un élément :after lors du survol et du focus :*/

.infobulle:hover::after,
.infobulle:focus::after {
    content: attr(aria-label);  /* on affiche aria-label */
    position: absolute;
    top: -2.4em;
    left: 50%;
    transform: translateX(-50%); /* on centre horizontalement  */
    z-index: 1; /* pour s'afficher au dessus des éléments en position relative */
    white-space: nowrap;  /* on interdit le retour à la ligne */
}

.vert-theme{
    color: #22958E !important;
}

.orange-theme{
    color: #EE411F !important;
}

.bg-vert-theme{
    background-color: #22958E !important;
}

.bg-orange-theme{
    background-color: #EE411F !important;
}

.shop-section .show-button .filter-category ul li::before {
    display: none;
}
.shop-section .show-button .filter-category ul li {
    padding: calc(6px + (9 - 6) * ((100vw - 320px) / (1920 - 320))) calc(7px + (11 - 7) * ((100vw - 320px) / (1920 - 320))) calc(6px + (9 - 6) * ((100vw - 320px) / (1920 - 320))) calc(7px + (11 - 7) * ((100vw - 320px) / (1920 - 320)));
}

h1, h2, h3, h4, h5, h6{
    text-transform: initial;
}

.text-monserrat{
    font-family: 'Montserrat', sans-serif;
}

.subnav-none.ps-xl-2.ps-0.nav-link::before {
    content: inherit !important;
}

.btn-product-enabled{
    background-color: #22958E;
    color: #fff !important;
}

.btn-product-added{
    background-color: #6c757d;
    color: #fff !important;
}

header .top-nav .navbar-top .rightside-box .right-side-menu .right-side .header-wishlist span {
    border-radius: 18px;
}

.btn-animation{
    background: #EE411F;
}

.btn-animation::after {
    background: #f34827;
}

.vendor-header{
    border-radius: 10px 10px 0 0;
    opacity: 1;
    text-align: center;
    padding: 10px 0;
}

.vendor-vert{
    background: transparent linear-gradient(146deg, #22958E 0%, #1A6B64 100%) 0% 0% no-repeat padding-box;
}

.vendor-orange{
    background: #EE411F;
}

.vendor-header p{
    margin: 10px 0;
    color: #FAFAFA;
    font-size: 20px;
}

.vendor-list{
    padding: 10px 10px;
    background: #F2EFEA;
    margin: 0 !important;
}

.vendor-box .product-wrapper{
    background: #F2EFEA;
    padding: 10px;
}

.qty-box .input-group button {
    border-radius: 18px !important;
}

.qty-box .input-group button i{
    color: #EE411F;
}

.address-contact{
    display: inline-block !important;
    text-align: center;
}

.address-contact h5{
    display: inline;
    font-size: 0.8rem;
}

.address-contact i{
    font-size: 1.2rem;
}

.product-section-box .custom-nav .nav-item .nav-link::after {
    bottom: 0;
    top: auto;
}

.product-section-box .custom-nav .nav-item .nav-link:focus, .product-section-box .custom-nav .nav-item .nav-link:hover, .product-section-box .custom-nav .nav-item .nav-link.active {
    background-color: #FAFAFA;
}

.table-nutriments{
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 1px 8px rgba(0, 0, 0, 0.2);
    margin-top: 10px;
}

.product-box-3{
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 10px;
    overflow: hidden;
    margin-top: 5px;
    border: 1px solid #C1C1C1;
    background-color: #FFFFFF;
}

.product-wrapper-box{
    padding-left: 5px;
    padding-right: 5px;
    margin-top: 10px;
}

.product-box-3 .product-footer .product-detail .unit {
    font-size: 11px;
}

.product-detail h5 {
    font-size: calc(12px + 1*((100vw - 320px) /(1920 - 320)));
}

.product-box-3 .product-footer .product-detail .span-name {
    font-size: 12px;
}

.product-list-section .slick-slider .slick-list .slick-slide>div, .slick-slider .slick-list .slick-slide>ul {
    margin: 0 5px;
}

.product-image .label-flex .discount {
    background-color: #EE411F;
    color: #fff;
    padding: 4px 19px 4px calc(7px + 3*((100vw - 320px) /(1920 - 320)));
    border-radius: 1px;
    clip-path: polygon(0 0, 70% 0, 100% 70%, 100% 100%, 0 100%);
}

.product-image .label-flex.text-danger {
    bottom: 0;
    top: auto;
}

.product-image .product-first-price {
    position: absolute;
    top: 6px;
    right: -48px;
    background: #22958E;
    color: white;
    padding: 5px 65px;
    transform: rotate(27deg);
    font-weight: bold;
    font-size: 14px;
    font-family: 'Montserrat', serif;
    z-index: 1;
}
.editPhone{
    display: inline-flex;
}
.invalid-feedback {
    display: block;
}
.cart-table table tbody tr td.product-detail .product .product-detail ul li {
    white-space: initial;
}
.product-box-3 .product-footer .product-detail .name {
    font: normal normal 600 14px/18px Montserrat;
    letter-spacing: 0;
    color: #333333;
    height: 36px;
}

.product-box-3 .product-footer .product-detail .span-name {
    font: normal normal normal 11px Montserrat;
    letter-spacing: 0;
    color: #5C5C5C;
    height: 11px;
}

.product-box-3 .product-footer .product-detail .unit {
    font: normal normal 500 11px/11px Montserrat;
    letter-spacing: 0;
    /*color: #22958E;*/
}

.btn-product-offline{
    background: #F4F5F5 0 0 no-repeat padding-box;
    border-radius: 25px;
    font: normal normal 500 14px/18px Montserrat;
    letter-spacing: 0;
    color: #333333;
}

.btn-product-offline:hover{
    background: #22958E 0 0 no-repeat padding-box;
    color: #FAFAFA;
}

.btn-product-offline .bg-light-gray{
    background: #FFFFFF 0 0 no-repeat padding-box !important;
}

.btn-product-offline .fa.fa-eye{
    color: #f8400c;
    font-size: 20px !important;
}

.mb-20{
    margin-bottom: 20px;
}
.product-box-3:hover .product-footer .product-detail .name {
    color: #EE411F;
}
.product-box-3:hover .btn-product-offline{
    background: #22958E 0 0 no-repeat padding-box;
    color: #FAFAFA;
}
.product-box-3:hover .btn-product-enabled{
    background: #EE411F 0 0 no-repeat padding-box;
    color: #FAFAFA;
}
.product-date-exp{
    height: 20px;
}
.product-box-3 .btn{
    font: normal normal 500 14px/22px Montserrat
}

.product-box-3 .btn.btn-product-enabled{
    font: normal normal 500 12px/22px Montserrat
}

section .title h2{
    font: normal normal 600 24px/35px Montserrat;
}

section .title h2::after {
    content: '';
    display: inline-block;
    width: 100%;
    height: 27px;
    vertical-align: middle;
    background-image: url('../images/fonds/Separateur.svg');
    background-size: contain;
    background-repeat: no-repeat;
}
a.text-black:hover{
    color: #22958E !important;
}
.transport-info{
    font: normal normal normal 14px/22px Montserrat;
    padding-bottom: 40px;
}
.text-left{
    text-align: left;
}
#brands-content h2{
    font: normal normal 600 150px / 10px Montserrat;
    color: #EE411F;
    opacity: 0.1;
    margin-top: 100px;
    font-size: 13px;
}
#brands-content .col-md-3.col-sm-3.col-xs-4 {
    z-index: 1;
}
.price-block td {
    padding: 4px 0;
}

.price-block .other-price{
    background-color: var(--theme-color);
    width: 100%;
    color: var(--couleur-fond-de-page);
    padding: 4px 0;
    margin: 4px 0;
    font-weight: 500;
}
.price-block td.price-radio{
    text-align: center; vertical-align: middle;padding: 0.5rem;
}
.price-block td.price-center{
    text-align: center; vertical-align: middle;
}

.lazy-loaded-block,
.js-injected,
.dynamic-widget {
    min-height: 100px;
}

.slideout-menu,
.nav-dropdown,
.cookie-consent,
.toast-notification {
    min-height: 40px;
    transition: all 0.3s ease-in-out;
}
.alert-banner,
.header-banner,
.cart-floating {
    min-height: 40px;
    transition: all 0.3s ease-in-out;
}

/* 🔧 Réserve de l’espace pour l’image produit */
.slider-image,
.product-image-wrapper,
.product-image {
    min-height: 50px;
}

/* 🚫 Neutralise l'effet "blur-up" si source de CLS */
img.blur-up {
    filter: none !important;
    transition: none !important;
}

.product-main .slider-image {
    min-height: 600px;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.primary-image {
    min-height: 50px;
    display: block;
}

img {
    transition: none !important;
}

.scrolling-wrapper {
    overflow-x: auto;
    white-space: nowrap;
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none;  /* IE 10+ */
}

.scrolling-wrapper::-webkit-scrollbar {
    display: none; /* Chrome, Safari */
}

.pill-container {
    display: inline-flex;
    gap: 0.5rem;
    padding-right: 2rem; /* pour laisser la place au bouton */
    padding-bottom: 1rem;
}

.scroll-btn {
    position: absolute;
    right: 0;
    top: 0;
    background-color: #009688;
    border: none;
    border-radius: 50%;
    color: white;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;
}

.scroll-area {
    position: relative;
    padding-right: 60px;
    padding-left: 60px;
}

.pill-container .btn{
    border: 2px solid var(--couleur-fond-de-page);
    font-size: 12px;
}

.breadcrumb-title{
    font-size: 27px !important;
    font-weight: 600 !important;
}
.breadcrumb-item{
    font-weight: 200;
}

.scrolling-wrapper a.rounded-pill:hover{
    background-color: var(--couleur-primaire) !important;
    border: 2px solid var(--couleur-primaire);
}
.search-section{
    padding: 10px 0;
}
.breadscrumb-section .breadscrumb-contain nav .breadcrumb .breadcrumb-item+.breadcrumb-item::before {
    color: var(--couleur-primaire);
}
.breadscrumb-contain .scroll-area {
    margin-top: 20px;
}
/* ========== STABILISATION ANTI-CLS ========== */

/* Fly Cart (panier flottant dynamique) */
.fly-cart {
    min-height: 80px; /* Ajuste si besoin selon ton design */
    position: relative;
    display: block;
}

/* Bandeau République française */
.alcohol-banner__visual {
    width: 250px;
    height: 150px;
    display: block;
    object-fit: contain;
}

/* Avis Vérifiés (étoiles et encarts) */
.avis-verifies-widget,
.avis-verifies-stars {
    min-height: 40px; /* Ajuste selon la hauteur finale rendue */
    display: block;
}

/* Bandeau promotionnel (sticky ou top) */
#promo-banner,
.promo-banner {
    min-height: 50px;
    display: block;
}

/* Image de fallback produit (logo générique) */
img[src*="product-logo.png"] {
    width: 300px;
    height: auto;
    aspect-ratio: 1 / 1;
    display: block;
}

/* Autres images produit sans dimensions explicites */
.primary-image {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    display: block;
}

/* Placeholder produit dans carrousel ou card */
.card-product__image img {
    min-height: 150px;
    display: block;
}
@media (max-width: 768px) {
    .product-main .slider-image {
        min-height: 400px;
    }
}

/* ========== FIN BLOC ANTI-CLS ========== */
.breadcrumb{
    justify-content: flex-start;
    text-align: left;
}

.breadscrumb-contain{
    display: inline-table;
    margin-top: 10px;
    margin-bottom: 10px;
}
