/* ==========================================================================
   Épicerie Bonnes Saveurs — thème v3 (direction "grande épicerie en ligne")
   Structure et langage visuel inspirés des conventions d'e-commerce premium
   (header compact, navigation par catégories, grille produit sans carte,
   typographie condensée en capitales) — appliqués à l'identité EBS (logo,
   couleurs, contenu). Chargé après bootstrap.min.css et style.css : ce
   fichier prend le dessus sans casser les composants Bootstrap (modal,
   dropdown, offcanvas) dont le reste du site dépend encore.
   ========================================================================== */

:root {
    --ebs2-olive: #8e9400;
    --ebs2-amber: #d9920a;
    --ebs2-ochre: #a2591a;
    --ebs2-ink: #3e3b3e;
    --ebs2-ink-soft: #8a868a;
    --ebs2-line: #d8d5d6;
    --ebs2-bg: #ffffff;
    --ebs2-tint-1: #f3ebdc;
    --ebs2-tint-2: #eef0e3;
    --ebs2-tint-3: #f6e9e2;
    --ebs2-announce: #eef1e7;
    --ebs2-grad: linear-gradient(120deg, var(--ebs2-olive), var(--ebs2-amber));
}

body {
    background: var(--ebs2-bg);
    color: var(--ebs2-ink);
    font-family: 'Roboto', ui-sans-serif, system-ui, sans-serif;
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Roboto Condensed', ui-sans-serif, system-ui, sans-serif;
    font-weight: 700;
    letter-spacing: -0.005em;
    color: var(--ebs2-ink);
}

/* Bootstrap souligne les liens par défaut (text-decoration: underline) ;
   tout le nouveau balisage ebs2- part du principe inverse : aucun lien
   n'est souligné sauf choix explicite (ex. .ebs2-see-all, avec sa propre
   bordure en guise de soulignement). */
a { color: var(--ebs2-ink); text-decoration: none; }
a:hover { color: var(--ebs2-ochre); text-decoration: none; }

/* Bootstrap colore .btn-link en bleu par défaut (#0d6efd), souligné ;
   ce n'est pas un <a> donc la règle ci-dessus ne l'atteint pas. */
.btn-link { color: var(--ebs2-ink) !important; text-decoration: underline !important; }
.btn-link:hover { color: var(--ebs2-ochre) !important; }

#authModal .nav-pills .nav-link { color: var(--ebs2-ink-soft); border-radius: 4px; }
#authModal .nav-pills .nav-link.active { background: var(--ebs2-ink); color: #fff; }
#authModal .modal-content { border-radius: 8px; }

.ebs2-eyebrow {
    font-size: 0.72rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 700;
    color: var(--ebs2-ochre);
    display: block;
    margin-bottom: 8px;
}

/* ---------- Bandeau d'annonce ---------- */
.ebs-topbar {
    background: var(--ebs2-announce) !important;
    color: var(--ebs2-ink) !important;
    text-align: center;
    padding: 9px 0 !important;
}
.ebs-topbar .container { justify-content: center !important; }
.ebs-topbar span, .ebs-topbar div { font-size: 0.76rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; }
.ebs-topbar .d-flex.flex-column.flex-md-row { display: none !important; }

/* ---------- En-tête ---------- */
.ebs-header {
    background: var(--ebs2-bg) !important;
    border-bottom: 1px solid var(--ebs2-line);
}
.ebs-mainnav {
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    margin-top: 0 !important;
    padding-top: 16px !important;
    padding-bottom: 16px !important;
}
.ebs-brand { gap: 10px; }
.ebs-brand .fw-bold {
    color: var(--ebs2-ink) !important;
    font-family: 'Roboto Condensed'; font-weight: 700;
    letter-spacing: 0.08em; font-size: 1.1rem;
}
.ebs-logo { height: 32px !important; }
.ebs-brand-slogan {
    font-size: 0.68rem;
    font-style: italic;
    color: var(--ebs2-ink-soft, #8a868a);
    letter-spacing: 0.01em;
    line-height: 1.1;
}
@media (max-width: 767px) {
    .ebs-brand-slogan { display: none; }
}
.ebs-search { max-width: 480px; }
.ebs-search .input-group {
    box-shadow: none !important;
    border: 1px solid var(--ebs2-line) !important;
    border-radius: 999px !important;
    overflow: hidden;
}
.ebs-search .form-control { font-size: 0.9rem; }
.ebs-search .form-control:focus { box-shadow: none !important; }
.ebs-search .btn-ebs {
    background: transparent !important;
    color: var(--ebs2-ink) !important;
    border: none !important;
    box-shadow: none !important;
    font-size: 1.1rem;
    padding: 0 18px !important;
}
.btn-ebs {
    background: var(--ebs2-ink) !important;
    border: 1.5px solid var(--ebs2-ink) !important;
    color: #fff !important;
    border-radius: 4px;
    font-weight: 700;
    font-size: 0.8rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}
.btn-ebs:hover { background: #000 !important; border-color: #000 !important; }
.ebs-actions .btn-icon {
    border-radius: 50% !important;
    border: none !important;
    color: var(--ebs2-ink) !important;
    background: transparent !important;
}
.ebs-actions .btn-icon:hover { box-shadow: none !important; color: var(--ebs2-ochre) !important; }
.ebs-nav {
    background: var(--ebs2-bg) !important;
    border-color: var(--ebs2-line) !important;
}
.ebs-nav-link {
    color: var(--ebs2-ink-soft) !important;
    font-weight: 700;
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border-radius: 0 !important;
    border-bottom: 2px solid transparent;
    padding-bottom: 6px !important;
}
.ebs-nav-link:hover { background: transparent !important; color: var(--ebs2-ink) !important; border-color: var(--ebs2-ochre); }
.ebs-nav-link i { display: none; }
.ebs-nav .badge { display: none; }

.btn-outline-success {
    border: 1.5px solid var(--ebs2-ink) !important;
    color: var(--ebs2-ink) !important;
    background: transparent !important;
    border-radius: 4px;
    font-weight: 700;
    font-size: 0.78rem;
    letter-spacing: 0.03em;
    text-transform: uppercase;
}
.btn-outline-success:hover { background: var(--ebs2-ink) !important; border-color: var(--ebs2-ink) !important; color: #fff !important; }
.btn-success { background: var(--ebs2-ink) !important; border-color: var(--ebs2-ink) !important; border-radius: 4px; }
.btn-success:hover { background: #000 !important; border-color: #000 !important; }

/* ---------- Mise en page générale ---------- */
.ebs2-wrap { max-width: 1320px; margin: 0 auto; padding: 0 28px; }
.ebs2-section { padding: 60px 0; }
.ebs2-section.tight { padding: 52px 0; }
.ebs2-section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 32px; }
.ebs2-section-head h2 { font-size: clamp(1.4rem, 2vw, 1.8rem); text-transform: uppercase; }
.ebs2-see-all { font-size: 0.8rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; color: var(--ebs2-ink); border-bottom: 1px solid var(--ebs2-ink); padding-bottom: 2px; white-space: nowrap; }
.ebs2-see-all:hover { color: var(--ebs2-ink); }

/* ---------- Hero : carrousel plein format, responsive ---------- */
.ebs2-hero-slider .carousel-inner,
.ebs2-hero-slider .carousel-item { height: clamp(360px, 52vw, 560px); }
.ebs2-slide {
    position: relative; height: 100%; width: 100%;
    background-size: cover; background-position: center; background-color: var(--ebs2-tint-1);
    display: flex; align-items: flex-end;
}
.ebs2-slide::after {
    content: ""; position: absolute; inset: 0;
    background: linear-gradient(0deg, rgba(20,16,10,0.72) 0%, rgba(20,16,10,0.32) 42%, rgba(20,16,10,0.05) 70%);
}
.ebs2-slide-copy { position: relative; z-index: 1; padding: 40px 56px 48px; max-width: 620px; color: #fff; }
.ebs2-slide-copy h1 {
    font-size: clamp(1.7rem, 3.4vw, 2.6rem); line-height: 1.08; margin-top: 14px;
    text-transform: uppercase; color: #fff;
}
.ebs2-slide-copy p { margin-top: 12px; color: rgba(255,255,255,0.86); max-width: 42ch; }
.ebs2-slide-copy .ebs2-btn { margin-top: 22px; }
.ebs2-pill-badge-light { border-color: rgba(255,255,255,0.7); color: #fff; }

.ebs2-hero-slider .carousel-indicators { margin-bottom: 18px; }
.ebs2-hero-slider .carousel-indicators [data-bs-target] {
    width: 8px; height: 8px; border-radius: 50%; background: rgba(255,255,255,0.55);
    border: none; opacity: 1; margin: 0 4px;
}
.ebs2-hero-slider .carousel-indicators .active { background: #fff; }
.ebs2-hero-slider .carousel-control-prev,
.ebs2-hero-slider .carousel-control-next { width: 64px; opacity: 1; }
.ebs2-slide-arrow {
    display: inline-flex; align-items: center; justify-content: center;
    width: 40px; height: 40px; border-radius: 50%;
    background: rgba(255,255,255,0.16); color: #fff; font-size: 1.6rem; line-height: 1;
    transition: background-color .15s ease;
}
.ebs2-hero-slider .carousel-control-prev:hover .ebs2-slide-arrow,
.ebs2-hero-slider .carousel-control-next:hover .ebs2-slide-arrow { background: rgba(255,255,255,0.3); }

@media (max-width: 640px) {
    .ebs2-slide-copy { padding: 28px 24px 32px; }
    .ebs2-hero-slider .carousel-control-prev,
    .ebs2-hero-slider .carousel-control-next { display: none; }
}

.ebs2-pill-badge {
    display: inline-block; border: 1px solid var(--ebs2-ink); border-radius: 999px;
    padding: 6px 14px; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.06em;
    text-transform: uppercase; width: fit-content;
}

.ebs2-btn {
    display: inline-flex; align-items: center; gap: 8px; font-weight: 700; font-size: 0.8rem;
    letter-spacing: 0.04em; text-transform: uppercase;
    padding: 13px 24px; border-radius: 4px; border: 1.5px solid var(--ebs2-ink);
    cursor: pointer; transition: background-color .15s ease, color .15s ease;
    width: fit-content;
}
.ebs2-btn-dark { background: var(--ebs2-ink); color: #fff; }
.ebs2-btn-dark:hover { background: #000; color: #fff; }
.ebs2-btn-line { background: transparent; color: var(--ebs2-ink); }
.ebs2-btn-line:hover { background: var(--ebs2-ink); color: #fff; }
.ebs2-hero-copy .ebs2-btn { margin-top: 24px; }

/* ---------- Bande de réassurance ---------- */
.ebs2-trust { border-bottom: 1px solid var(--ebs2-line); background: var(--ebs2-tint-2); }
.ebs2-trust-row { display: flex; justify-content: center; gap: 32px; flex-wrap: wrap; padding: 12px 0; font-size: 0.74rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--ebs2-ink-soft); }

/* ---------- Tuiles éditoriales 4-up ---------- */
.ebs2-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--ebs2-line); border-top: 1px solid var(--ebs2-line); border-bottom: 1px solid var(--ebs2-line); }
.ebs2-tile { background: #fff; padding: 26px 22px; }
.ebs2-tile p { font-family: 'Roboto Condensed'; font-weight: 700; font-size: 1rem; margin-top: 6px; line-height: 1.25; }

/* ---------- Catégories : carrés, pas de cercles ---------- */
.ebs2-cat-row { display: flex; justify-content: center; gap: 22px; flex-wrap: wrap; }
.ebs2-cat-item { text-align: center; width: 96px; }
.ebs2-cat-photo { width: 96px; height: 96px; border-radius: 4px; overflow: hidden; margin: 0 auto 8px; background: var(--ebs2-tint-1); }
.ebs2-cat-photo img { width: 100%; height: 100%; object-fit: cover; }
.ebs2-cat-item span { display: block; font-weight: 700; font-size: 0.7rem; text-transform: uppercase; letter-spacing: 0.02em; }
#categories.ebs2-section { padding: 28px 0; }
#categories .ebs2-section-head { margin-bottom: 18px; }

/* ---------- Produits : sans carte, bouton "Ajouter" texte ---------- */
.ebs2-product-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px 20px; }

/* Carte visible et cohérente : bordure fine, coins arrondis, le bouton
   fait partie du même bloc que la photo (plus de pièce détachée en dessous). */
.ebs2-product-item {
    display: flex; flex-direction: column; height: 100%;
    border: 1px solid var(--ebs2-line); border-radius: 8px; overflow: hidden;
    background: #fff; transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease;
}
.ebs2-product-item:hover { border-color: #c7c3c4; box-shadow: 0 16px 32px -18px rgba(20,16,10,0.4); transform: translateY(-3px); }
.ebs2-product-link { display: flex; flex-direction: column; flex: 1; color: inherit; padding: 14px 16px 0; }
.ebs2-product-photo {
    aspect-ratio: 1 / 1; overflow: hidden; position: relative; background: var(--ebs2-tint-1);
    margin: -14px -16px 14px; /* la photo vient toucher les bords de la carte */
}
.ebs2-product-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.ebs2-product-item:hover .ebs2-product-photo img { transform: scale(1.04); }
.ebs2-product-flag {
    position: absolute; top: 10px; left: 10px; background: #fff; border: 1px solid var(--ebs2-ink);
    border-radius: 999px; font-size: 0.6rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; padding: 4px 10px;
}
.ebs2-product-cat { font-size: 0.76rem; color: var(--ebs2-ink-soft); }
.ebs2-product-name {
    font-family: 'Roboto Condensed'; font-weight: 700; font-size: 0.96rem; line-height: 1.25; margin-top: 2px;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.4em;
}
.ebs2-product-stars { display: flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 0.76rem; color: var(--ebs2-ink-soft); }
.ebs2-product-stars .stars { color: var(--ebs2-ink); letter-spacing: 1px; font-size: 0.74rem; }
.ebs2-price-row { display: flex; align-items: baseline; gap: 8px; margin-top: auto; padding-top: 10px; padding-bottom: 14px; }
.ebs2-price-row .now { font-family: 'Roboto Condensed'; font-weight: 700; font-size: 1.1rem; }
.ebs2-price-row .was { font-size: 0.72rem; color: var(--ebs2-ink-soft); text-decoration: line-through; }
.ebs2-pack-label { font-size: 0.7rem; color: var(--ebs2-ink-soft); background: var(--ebs2-bg-soft, #f3ead4); border-radius: 999px; padding: 1px 8px; margin-left: auto; }
.ebs2-product-item > form { padding: 0 16px 16px; }
.ebs2-add-link {
    display: flex; align-items: center; justify-content: center; gap: 6px;
    width: 100%; text-align: center;
    border: 1.5px solid var(--ebs2-ink); border-radius: 4px; padding: 10px; background: var(--ebs2-ink); color: #fff;
    font-size: 0.76rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; cursor: pointer;
    transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.ebs2-add-link:hover { background: #000; border-color: #000; color: #fff; }

/* ---------- Bannière de positionnement ---------- */
.ebs2-statement { text-align: center; padding: 52px 24px; background: var(--ebs2-tint-2); }
.ebs2-statement h2 { font-size: clamp(1.3rem, 2vw, 1.7rem); text-transform: uppercase; }
.ebs2-statement p { margin-top: 10px; color: var(--ebs2-ink-soft); }

/* ---------- Histoire ---------- */
.ebs2-story-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; align-items: center; }
.ebs2-story-photo { aspect-ratio: 4/3; overflow: hidden; }
.ebs2-story-photo img { width: 100%; height: 100%; object-fit: cover; }
.ebs2-story-copy h2 { font-size: clamp(1.4rem, 2.2vw, 1.9rem); line-height: 1.1; text-transform: uppercase; margin-top: 8px; }
.ebs2-story-copy p { margin-top: 14px; color: var(--ebs2-ink-soft); max-width: 48ch; }
.ebs2-story-copy ul { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 8px; font-size: 0.92rem; }
.ebs2-story-copy ul li::before { content: "— "; font-weight: 700; }

/* ---------- Avis ---------- */
.ebs2-reviews { text-align: center; }
.ebs2-reviews .stars-big { font-size: 1.15rem; letter-spacing: 3px; }
.ebs2-reviews .count { font-family: 'Roboto Condensed'; font-weight: 700; font-size: 1rem; margin-top: 8px; text-transform: uppercase; }
.ebs2-quote-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 32px; }
.ebs2-quote-item { text-align: left; border-top: 1px solid var(--ebs2-line); padding-top: 16px; }
.ebs2-quote-item .stars { color: var(--ebs2-ink); font-size: 0.76rem; letter-spacing: 2px; }
.ebs2-quote-item p { margin-top: 8px; font-size: 0.9rem; }
.ebs2-quote-item .who { margin-top: 8px; font-size: 0.72rem; color: var(--ebs2-ink-soft); text-transform: uppercase; font-weight: 700; letter-spacing: 0.03em; }

/* ---------- Bandeau WhatsApp : seul endroit avec le dégradé de marque ---------- */
.ebs2-cta-band { background: var(--ebs2-grad); text-align: center; padding: 48px 24px; border-radius: 4px; }
.ebs2-cta-band h2 { color: #fff; font-size: clamp(1.3rem, 2.2vw, 1.8rem); text-transform: uppercase; }
.ebs2-cta-band p { color: rgba(255,255,255,0.88); margin-top: 10px; }
.ebs2-cta-band .ebs2-btn { margin: 20px auto 0; border-color: #fff; color: #fff; }
.ebs2-cta-band .ebs2-btn:hover { background: #fff; color: var(--ebs2-ink); }

/* ---------- Bandeau communauté WhatsApp (global) ---------- */
.wa-community-card { background: var(--ebs2-tint-2) !important; border: 1px solid var(--ebs2-line) !important; border-radius: 4px !important; box-shadow: none !important; }
.wa-community-title, .wa-community-subtitle { color: var(--ebs2-ink) !important; }
.wa-community-icon { color: var(--ebs2-ochre) !important; }
.wa-community-btn { background: var(--ebs2-ink) !important; color: #fff !important; border: none !important; border-radius: 4px !important; font-weight: 700; }
.wa-community-btn:hover { background: #000 !important; color: #fff !important; }

/* ---------- Pied de page ---------- */
.footer {
    background: var(--ebs2-bg) !important;
    color: var(--ebs2-ink-soft) !important;
    border-top: 1px solid var(--ebs2-line);
}
.footer h6 {
    color: var(--ebs2-ink) !important;
    font-family: 'Roboto Condensed'; font-size: 0.78rem; letter-spacing: 0.05em; font-weight: 700;
}
.footer a { color: var(--ebs2-ink-soft) !important; text-decoration: none; }
.footer a:hover { color: var(--ebs2-ink) !important; }
.footer .border-secondary { border-color: var(--ebs2-line) !important; }
.footer .form-control { background: #fff; border: 1px solid var(--ebs2-line); color: var(--ebs2-ink); border-radius: 4px; }
.footer .form-control::placeholder { color: var(--ebs2-ink-soft); }
.footer .fa-whatsapp, .footer .fa-facebook, .footer .fa-instagram { color: var(--ebs2-ink-soft); }

/* ---------- WhatsApp flottant ---------- */
.ebs2-float-wa {
    position: fixed; right: 20px; bottom: 20px; z-index: 1030; background: var(--ebs2-ink); color: #fff;
    width: 50px; height: 50px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
    text-decoration: none; font-size: 1.25rem; box-shadow: 0 10px 24px -8px rgba(0,0,0,0.35);
}
.ebs2-float-wa:hover { color: #fff; background: #000; }

/* ---------- Bas de navigation mobile ---------- */
.bottom-nav { background: var(--ebs2-bg) !important; border-top: 1px solid var(--ebs2-line) !important; box-shadow: none !important; }
.bottom-nav a { color: var(--ebs2-ink-soft) !important; }

@media (max-width: 980px) {
    .ebs2-tiles { grid-template-columns: repeat(2, 1fr); }
    .ebs2-cat-row { gap: 18px; }
    .ebs2-cat-item, .ebs2-cat-photo { width: 120px; height: 120px; }
    .ebs2-product-grid { grid-template-columns: repeat(2, 1fr); }
    .ebs2-story-grid { grid-template-columns: 1fr; gap: 26px; }
    .ebs2-quote-grid { grid-template-columns: 1fr; gap: 16px; }
    .ebs2-float-wa { right: 16px; bottom: 76px; }
}

/* ==========================================================================
   Pages intérieures (catalogue, fiche produit, panier, checkout, pages
   statiques) — mêmes tokens que l'accueil, composants supplémentaires.
   ========================================================================== */

/* ---------- Fil d'Ariane ---------- */
.ebs2-breadcrumb { font-size: 0.82rem; color: var(--ebs2-ink-soft); }
.ebs2-breadcrumb a { color: var(--ebs2-ink-soft); }
.ebs2-breadcrumb a:hover { color: var(--ebs2-ink); }
.ebs2-breadcrumb span { margin: 0 6px; }

.ebs2-catalog-head h1 { font-size: clamp(1.6rem, 2.4vw, 2.1rem); margin-top: 4px; }

/* ---------- Champs de formulaire ---------- */
.ebs2-input,
.ebs2-input.form-select,
textarea.ebs2-input {
    border: 1px solid var(--ebs2-line) !important; border-radius: 4px !important;
    box-shadow: none !important; color: var(--ebs2-ink);
}
.ebs2-input:focus { border-color: var(--ebs2-ink) !important; box-shadow: none !important; }

/* ---------- Panneau de filtres (catalogue) ---------- */
.ebs2-filter-panel { border: 1px solid var(--ebs2-line); border-radius: 8px; padding: 22px; }
.ebs2-filter-title { font-family: 'Roboto Condensed'; font-weight: 700; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 10px; }
.ebs2-filter-link { display: block; padding: 7px 0; font-size: 0.92rem; color: var(--ebs2-ink-soft); border-bottom: 1px solid var(--ebs2-line); }
.ebs2-filter-link:last-of-type { border-bottom: none; }
.ebs2-filter-link:hover { color: var(--ebs2-ink); }
.ebs2-filter-link.is-active { color: var(--ebs2-ochre); font-weight: 700; }

/* ---------- Grille catalogue (3 colonnes, plus de place par carte) ---------- */
.ebs2-product-grid-3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 980px) { .ebs2-product-grid-3 { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Actions sous la carte produit (catalogue : favoris + ajouter) ---------- */
.ebs2-product-actions { display: flex; align-items: stretch; gap: 8px; padding: 0 16px 16px; }
.ebs2-product-actions form { margin: 0; }
.ebs2-icon-btn {
    width: 42px; height: 42px; flex: none; border: 1px solid var(--ebs2-line); border-radius: 4px;
    background: #fff; color: var(--ebs2-ink-soft); display: inline-flex; align-items: center; justify-content: center;
    cursor: pointer; transition: border-color .15s ease, color .15s ease;
}
.ebs2-icon-btn:hover { border-color: var(--ebs2-ink); color: var(--ebs2-ochre); }
.ebs2-product-actions .ebs2-add-link { margin: 0; }

.ebs2-empty-state { border: 1px solid var(--ebs2-line); border-radius: 8px; padding: 56px 24px; }

.ebs2-pagination .page-link { color: var(--ebs2-ink); border-color: var(--ebs2-line); }
.ebs2-pagination .page-item.active .page-link { background: var(--ebs2-ink); border-color: var(--ebs2-ink); }
.ebs2-pagination .page-link:hover { color: var(--ebs2-ochre); }

/* ---------- Fiche produit ---------- */
.breadcrumb-item a { color: var(--ebs2-ink-soft); }
.breadcrumb-item a:hover { color: var(--ebs2-ink); }
.breadcrumb-item.active { color: var(--ebs2-ink); }
.breadcrumb-item + .breadcrumb-item::before { color: var(--ebs2-ink-soft); }

.product-preview-main {
    background: var(--ebs2-tint-1) !important; border-radius: 8px !important;
    border: 1px solid var(--ebs2-line);
}
.preview-thumb { border: 1px solid var(--ebs2-line) !important; border-radius: 4px !important; }
.preview-thumb:hover { border-color: var(--ebs2-ink) !important; box-shadow: none !important; }
.preview-thumb img { border-radius: 2px !important; }

.product-chip {
    border-radius: 4px !important; background: var(--ebs2-tint-2) !important; color: var(--ebs2-ink) !important;
    font-size: 0.78rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em;
}
.product-chip.accent { background: var(--ebs2-ochre) !important; color: #fff !important; }
.product-chip.muted { background: var(--ebs2-tint-2) !important; color: var(--ebs2-ink-soft) !important; }
.product-preview-main .product-chip { box-shadow: none !important; }

.product-price-card {
    border-radius: 8px !important; background: var(--ebs2-tint-2) !important; border: 1px solid var(--ebs2-line);
}
.product-price-card .text-success { color: var(--ebs2-ink) !important; font-family: 'Roboto Condensed'; }
.product-price-card .text-success.fw-semibold { color: #1d7a3d !important; font-family: inherit; font-size: 0.86rem; }
.product-price-card .text-danger { color: #b3261e !important; font-size: 0.86rem; }

.product-purchase {
    border-radius: 8px !important; border: 1px solid var(--ebs2-line) !important; box-shadow: none !important;
}
.product-qty-group { border: 1px solid var(--ebs2-line); border-radius: 4px; overflow: hidden; }
.product-qty-group .input-group-text,
.product-qty-group .form-control { border: none !important; box-shadow: none !important; }

.product-service-card {
    border-radius: 8px !important; border: 1px solid var(--ebs2-line) !important; box-shadow: none !important;
}
.product-service-card .icon { background: var(--ebs2-tint-2) !important; color: var(--ebs2-ochre) !important; border-radius: 4px !important; }

.product-detail-card {
    border-radius: 8px !important; border: 1px solid var(--ebs2-line) !important; box-shadow: none !important; padding: 1.75rem !important;
}
.product-facts {
    background: #fff !important; border-radius: 8px !important; border: 1px solid var(--ebs2-line) !important; box-shadow: none !important;
}
.product-spec-grid dd { color: var(--ebs2-ink); font-family: 'Roboto Condensed'; }
.product-tags span { border-radius: 4px !important; background: var(--ebs2-tint-2) !important; color: var(--ebs2-ink-soft); }

.product-rel-card {
    border-radius: 8px !important; border: 1px solid var(--ebs2-line) !important; box-shadow: none !important; transition: box-shadow .2s ease, transform .2s ease;
}
.product-rel-card:hover { box-shadow: 0 16px 32px -18px rgba(20,16,10,0.4) !important; transform: translateY(-3px); }

.stock-alert-card { border: 1px solid var(--ebs2-line) !important; border-radius: 8px !important; background: var(--ebs2-tint-2) !important; }

.review-summary { border-radius: 8px !important; border: 1px solid var(--ebs2-line) !important; background: var(--ebs2-tint-2) !important; }
.review-card { border-radius: 8px !important; border: 1px solid var(--ebs2-line) !important; box-shadow: none !important; }
.review-stars i,
.review-stars .fa-star,
.review-stars .fa-star-half-alt { color: var(--ebs2-ochre) !important; }
.review-stars .text-muted { color: var(--ebs2-line) !important; }

.top-badge {
    background: var(--ebs2-ochre) !important; border-radius: 4px !important; font-weight: 700; text-transform: uppercase; letter-spacing: 0.03em; font-size: 0.7rem;
}

/* ---------- Panier / checkout / compte : blocs partagés ---------- */
.catalog-toolbar,
.page-hero-compact {
    background: #fff !important; border: 1px solid var(--ebs2-line) !important;
    border-radius: 8px !important; box-shadow: none !important;
}
.catalog-filter-panel {
    background: #fff !important; border: 1px solid var(--ebs2-line) !important;
    border-radius: 8px !important; box-shadow: none !important; position: static !important;
}
.catalog-filter-panel .filter-title { color: var(--ebs2-ink-soft) !important; }
.catalog-filter-panel .filter-link { color: var(--ebs2-ink-soft) !important; border-radius: 4px !important; }
.catalog-filter-panel .filter-link:hover,
.catalog-filter-panel .filter-link.is-active { background: var(--ebs2-tint-2) !important; color: var(--ebs2-ochre) !important; }

.cart-panel {
    background: #fff !important; border: 1px solid var(--ebs2-line); border-radius: 8px !important; box-shadow: none !important;
}
.cart-summary-panel {
    background: #fff !important; border: 1px solid var(--ebs2-line) !important;
    border-radius: 8px !important; box-shadow: none !important;
}
.cart-product-thumb { border-radius: 4px !important; border: 1px solid var(--ebs2-line) !important; background: var(--ebs2-tint-1) !important; }

.checkout-clean,
.checkout-summary-clean { border-radius: 8px !important; box-shadow: none !important; border: 1px solid var(--ebs2-line) !important; }
.checkout-block { border-bottom-color: var(--ebs2-line) !important; }
.checkout-payment-box {
    border: 1px solid var(--ebs2-line) !important; background: var(--ebs2-tint-2) !important;
}
.checkout-option label { border-radius: 4px !important; border-color: var(--ebs2-line) !important; box-shadow: none !important; }
.checkout-option i { color: var(--ebs2-ochre) !important; }
.checkout-option input:checked + label {
    border-color: var(--ebs2-ink) !important; background: var(--ebs2-tint-2) !important; box-shadow: none !important;
}
.checkout-summary-thumb { border-radius: 4px !important; }
.checkout-summary-total { border-top-color: var(--ebs2-line) !important; }

.account-card,
.card { background: #fff !important; border: 1px solid var(--ebs2-line) !important; border-radius: 8px !important; box-shadow: none !important; }
.card-header,
.account-card .card-header,
.account-card-head { background: var(--ebs2-tint-2) !important; border-bottom-color: var(--ebs2-line) !important; font-weight: 700; }

.table { --bs-table-hover-bg: var(--ebs2-tint-2); }
.table thead th { color: var(--ebs2-ink-soft); font-size: 0.76rem; text-transform: uppercase; letter-spacing: 0.03em; border-bottom-color: var(--ebs2-line) !important; }
.table td, .table th { border-color: var(--ebs2-line) !important; }
.table .text-success { color: var(--ebs2-ink) !important; font-family: 'Roboto Condensed'; }

/* ---------- Blog ---------- */
.blog-hero {
    border-radius: 8px !important;
    background: linear-gradient(120deg, rgba(33,26,14,0.82), rgba(33,26,14,0.5)), url('../images/products/banniereepicerie.jpg') center/cover no-repeat !important;
}
/* Les sélecteurs h1-h6 globaux gagnent sur la couleur héritée du conteneur
   (l'héritage a toujours la priorité la plus basse) : on la réaffirme ici. */
.blog-hero-inner,
.blog-hero-inner h1,
.blog-hero-inner h2,
.blog-hero-inner p { color: #fff !important; }
.blog-filters { border: 1px solid var(--ebs2-line) !important; border-radius: 8px !important; }
.blog-card { border: 1px solid var(--ebs2-line) !important; border-radius: 8px !important; box-shadow: none !important; }
.blog-chip { border-radius: 4px !important; }
.blog-tag { border-radius: 4px !important; background: var(--ebs2-tint-2) !important; color: var(--ebs2-ink-soft) !important; }
.blog-tag:hover { background: var(--ebs2-tint-1) !important; color: var(--ebs2-ochre) !important; }

/* ---------- FAQ / Contact ---------- */
.ebs2-accordion .accordion-item { border: 1px solid var(--ebs2-line) !important; border-radius: 8px !important; overflow: hidden; margin-bottom: 10px; }
.ebs2-accordion .accordion-button { font-weight: 700; color: var(--ebs2-ink); background: #fff; }
.ebs2-accordion .accordion-button:not(.collapsed) { background: var(--ebs2-tint-2); color: var(--ebs2-ink); box-shadow: none; }
.ebs2-accordion .accordion-button:focus { box-shadow: none; border-color: var(--ebs2-line); }
.ebs2-map-frame { border-radius: 8px; overflow: hidden; border: 1px solid var(--ebs2-line); }

/* ---------- Article de blog ---------- */
.blog-article-media img { border-radius: 8px !important; box-shadow: none !important; }
.blog-prose { color: var(--ebs2-ink); }
.blog-prose h2, .blog-prose h3, .blog-prose h4 { text-transform: none; }
.product-card { border: 1px solid var(--ebs2-line) !important; border-radius: 8px !important; box-shadow: none !important; }
.product-card:hover { box-shadow: 0 16px 32px -18px rgba(20,16,10,0.4) !important; }
