/**
 * Header CBP Boutique : barre bleue (top) + barre blanche (logo, recherche, boutons)
 * Design conforme maquette – desktop + responsive
 * Utilise des classes type Bootstrap (container, row, col) ; grille de secours ci-dessous si Bootstrap absent.
 */

/* Grille de secours (si Bootstrap non chargé) */
.cbp-top-header .container,
.cbp-main-header .container {
    max-width: var(--cbp-container-max, 1320px);
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

.cbp-top-header .row,
.cbp-main-header .row {
    display: flex;
    flex-wrap: wrap;
    margin-left: -15px;
    margin-right: -15px;
}

.cbp-top-header [class*="col-"],
.cbp-main-header [class*="col-"] {
    padding-left: 15px;
    padding-right: 15px;
}

.cbp-main-header .col {
    flex: 1 1 0;
    min-width: 0;
}

.cbp-main-header .col-auto {
    flex: 0 0 auto;
}

.d-flex {
    display: flex;
}

.align-items-center {
    align-items: center;
}

.justify-content-between {
    justify-content: space-between;
}

.flex-nowrap {
    flex-wrap: nowrap;
}

.flex-wrap {
    flex-wrap: wrap;
}

.gap-1 {
    gap: 0.25rem;
}

.gap-2 {
    gap: 0.5rem;
}

.gap-3 {
    gap: 0.75rem;
}

/* Forcer le thème clair sur les pages CBP (Electro ajoute electro-dark au body) */
body.cbp-shop-page.electro-dark,
body.cbp-contact-page.electro-dark,
body.cbp-imprimerie-page.electro-dark,
body.cbp-shop-page,
body.cbp-contact-page,
body.cbp-imprimerie-page {
    background-color: #f5f5f5 !important;
    color: #333 !important;
}

body.cbp-shop-page .cbp-top-header,
body.cbp-contact-page .cbp-top-header,
body.cbp-imprimerie-page .cbp-top-header {
    background: var(--cbp-header-blue) !important;
    color: #fff !important;
}

body.cbp-shop-page .cbp-main-header,
body.cbp-contact-page .cbp-main-header,
body.cbp-imprimerie-page .cbp-main-header {
    background: var(--cbp-main-header-bg) !important;
    color: var(--cbp-main-header-text) !important;
}

:root {
    --cbp-header-blue: #1a237e;
    --cbp-header-blue-dark: #0d1542;
    /* Logo : bleu cyan vif comme sur l’image */
    --cbp-logo-blue: #00bcd4;
    /* Boutons : bleu pastel clair */
    --cbp-btn-bg: #c6e9f8;
    /* Badges icônes : bleu un peu plus saturé */
    --cbp-badge-blue: #03a9f4;
    --cbp-main-header-bg: #f5f5f5;
    /* Texte et icônes : noir pour bon contraste */
    --cbp-main-header-text: #000000;
    --cbp-search-border: #e0e0e0;
    /* Barre de recherche : placeholder et icône en gris clair (pas noir) */
    --cbp-search-placeholder: #9e9e9e;
    --cbp-search-icon: #9e9e9e;
    --cbp-search-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
    /* Largeur max du contenu (réduit les marges externes, aligné Bootstrap xxl) */
    --cbp-container-max: 1320px;
    /* Liste produits : bleu entreprise (barre d’outils, pagination, boutons) */
    --cbp-shop-primary: #1976d2;
    --cbp-shop-primary-light: #42a5f5;
    --cbp-shop-toolbar-bg: #e3f2fd;
    --cbp-shop-toolbar-border: #90caf9;
}

/* Page boutique : contenu pleine largeur (sections + grille produits) sans décalage sidebar */
body.cbp-shop-page .content-area,
body.cbp-shop-page #primary {
    width: 100%;
    max-width: 100%;
}
body.cbp-shop-page .site-content .col-full {
    width: 100%;
    max-width: 100%;
}

/* ========== Section 1 : Top header (barre bleue) – police Roboto ========== */
.cbp-top-header {
    font-family: 'Roboto', sans-serif;
    background: var(--cbp-header-blue);
    color: #fff;
    font-size: 0.875rem;
    padding: 0.85rem 0;
    width: 100%;
}

.cbp-top-header__container {
    max-width: var(--cbp-container-max, 1320px);
    margin: 0 auto;
    padding-left: 24px;
    padding-right: 24px;
}

.cbp-top-header__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0 1.25rem;
    min-height: 32px;
}

/* Chaque bloc : icône + texte */
.cbp-top-header__block {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: #fff;
}

.cbp-top-header__text {
    color: inherit;
    white-space: nowrap;
}

.cbp-top-header__link {
    color: inherit;
    text-decoration: none;
}

.cbp-top-header__link:hover {
    text-decoration: underline;
}

.cbp-top-header__icon {
    flex-shrink: 0;
    display: inline-block;
    width: 16px;
    height: 16px;
    background-color: #fff;
}

/* Icône téléphone (même style que la page Contact) */
.cbp-top-header__icon-phone {
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Une seule barre verticale entre les blocs (pas de doublon avec le caractère |) */
.cbp-top-header__vline {
    display: inline-block;
    width: 1px;
    height: 1em;
    min-height: 14px;
    background: rgba(255, 255, 255, 0.9);
    margin: 0 0.75rem;
    flex-shrink: 0;
    font-size: 0;
    line-height: 0;
    overflow: hidden;
    text-indent: -9999px;
}

/* ========== Section 2 : Main header – fond gris très clair, police Roboto ========== */
.cbp-main-header {
    font-family: 'Roboto', sans-serif;
    background: var(--cbp-main-header-bg);
    border-bottom: 1px solid #e8e8e8;
    padding: 0.875rem 0;
}

.cbp-main-header__container {
    max-width: var(--cbp-container-max, 1320px);
    margin: 0 auto;
    padding-left: 24px;
    padding-right: 24px;
}

.cbp-main-header__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    column-gap: 2rem;
    row-gap: 1rem;
    min-height: 56px;
}

/* Espacement net entre logo et barre de recherche */
.cbp-main-header__logo {
    margin-right: 0.5rem;
}

/* Barre de recherche : occupe l’espace central avec marges */
.cbp-main-header__search {
    flex: 1;
    min-width: 200px;
    max-width: 520px;
    margin: 0 0.25rem;
}

/* Logo : carré bleu légèrement incliné + cbp + 4 barres */
.cbp-main-header__logo-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: #fff;
}

.cbp-main-header__logo-img {
    display: block;
    width: auto;
    max-width: 160px;
    max-height: 52px;
    height: auto;
    object-fit: contain;
}

.cbp-main-header__logo-square {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    background: var(--cbp-logo-blue);
    border-radius: 12px;
    transform: rotate(-12deg);
    padding: 8px 6px 6px;
    box-shadow: 0 2px 8px rgba(0, 172, 193, 0.3);
}

.cbp-main-header__logo-text {
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
    text-transform: lowercase;
    letter-spacing: 0.02em;
    line-height: 1.1;
}

.cbp-main-header__logo-bars {
    display: flex;
    gap: 3px;
    margin-top: 4px;
}

.cbp-main-header__bar {
    width: 12px;
    height: 3px;
    border-radius: 2px;
}

.cbp-main-header__bar--cyan {
    background: #00bcd4;
}

.cbp-main-header__bar--magenta {
    background: #e91e63;
}

.cbp-main-header__bar--yellow {
    background: #ffeb3b;
}

.cbp-main-header__bar--dark {
    background: #37474f;
}

/* Barre de recherche : fond blanc forcé (Electro peut mettre fond sombre sur input) */
body.cbp-shop-page .cbp-search-form,
.cbp-main-header .cbp-search-form {
    display: flex;
    align-items: center;
    background: #ffffff !important;
    border: 1px solid var(--cbp-search-border);
    border-radius: 15px;
    overflow: hidden;
    box-shadow: var(--cbp-search-shadow);
}

body.cbp-shop-page .cbp-search-form__input,
body.cbp-shop-page .cbp-search-form input[type="search"],
.cbp-main-header .cbp-search-form__input,
.cbp-main-header .cbp-search-form input[type="search"] {
    flex: 1;
    border: none !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    padding: 0.65rem 1rem 0.65rem 1.25rem;
    font-family: 'Roboto', sans-serif;
    font-size: 11px;
    font-weight: 400;
    letter-spacing: 0.4em;
    outline: none;
    color: var(--cbp-main-header-text);
}

body.cbp-shop-page .cbp-search-form__input::placeholder,
body.cbp-shop-page .cbp-search-form input::placeholder,
.cbp-main-header .cbp-search-form__input::placeholder,
.cbp-main-header .cbp-search-form input::placeholder {
    color: var(--cbp-search-placeholder) !important;
    letter-spacing: 0.4em;
}

body.cbp-shop-page .cbp-search-form__btn,
.cbp-main-header .cbp-search-form__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0.5rem 1rem 0.5rem 0.5rem;
    border: none;
    background: transparent !important;
    background-color: transparent !important;
    color: var(--cbp-search-icon) !important;
    cursor: pointer;
}

body.cbp-shop-page .cbp-search-form__btn:hover,
.cbp-main-header .cbp-search-form__btn:hover {
    color: #333333 !important;
}

body.cbp-shop-page .cbp-search-form__btn svg,
.cbp-main-header .cbp-search-form__btn svg,
.cbp-search-form__icon {
    flex-shrink: 0;
    stroke: currentColor;
    fill: none;
}

/* Boutons : radius modéré, texte normal (pas gras), police Roboto */
.cbp-main-header__btn {
    display: inline-block;
    padding: 0.5rem 1.25rem;
    font-family: 'Roboto', sans-serif;
    font-size: 0.8125rem;
    font-weight: 400;
    text-decoration: none;
    border-radius: 8px;
    white-space: nowrap;
    background: var(--cbp-btn-bg);
    color: var(--cbp-main-header-text) !important;
    border: none;
    transition: none;
}

.cbp-main-header__btn:hover {
    background: #b3e0f5;
    color: var(--cbp-main-header-text) !important;
}

.cbp-main-header__nav {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

/* Mobile : masquer Boutique / Imprimerie / Contacts à côté du panier (ils sont dans le menu burger) */
@media (max-width: 991px) {
    .cbp-main-header__nav {
        display: none !important;
    }
}
@media (min-width: 992px) {
    .cbp-main-header__nav {
        display: flex;
    }
}

/* Icônes : gris foncé #37474f + badge bleu #03a9f4, chiffre blanc */
.cbp-main-header__icons {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.cbp-main-header__icon-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    font-family: 'Roboto', sans-serif;
    color: var(--cbp-main-header-text);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 400;
}

.cbp-main-header__icon-wrap:hover {
    color: var(--cbp-badge-blue);
}

.cbp-main-header__icon-with-badge {
    position: relative;
    display: inline-flex;
}

.cbp-main-header__icon-svg {
    display: block;
}

.cbp-main-header__badge {
    position: absolute;
    top: -4px;
    right: -4px;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--cbp-badge-blue);
    color: #fff;
    font-size: 0.7rem;
    font-weight: 600;
    border-radius: 50%;
    border: 1px solid #fff;
}

.cbp-main-header__cart-link {
    gap: 0.35rem;
}

.cbp-main-header__cart-label {
    color: var(--cbp-main-header-text);
}

/* ========== Bouton burger (mobile uniquement, visible < 992px) ========== */
@media (min-width: 992px) {
    .cbp-main-header__burger {
        display: none !important;
    }
}

.cbp-main-header__burger {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    color: var(--cbp-main-header-text);
    margin-right: 0.5rem;
    flex-shrink: 0;
}

.cbp-main-header__burger:hover {
    color: #333;
}

.cbp-main-header__burger-bar,
.cbp-main-header__burger .cbp-burger__bar {
    display: block;
    width: 22px;
    height: 2px;
    background: currentColor;
    border-radius: 1px;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

/* ========== Menu off-canvas (mobile uniquement) – comme sur la maquette ========== */
.cbp-offcanvas-backdrop {
    position: fixed;
    inset: 0;
    z-index: 1039;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}

.cbp-offcanvas-backdrop.is-visible {
    opacity: 1;
    pointer-events: auto;
}

.cbp-offcanvas {
    position: fixed;
    top: 0;
    left: 0;
    bottom: 0;
    width: 85%;
    max-width: 320px;
    height: 100%;
    z-index: 1040;
    pointer-events: none;
    visibility: hidden;
    background: #fff;
    box-shadow: 2px 0 12px rgba(0, 0, 0, 0.15);
    transform: translateX(-100%);
    transition: transform 0.3s ease, visibility 0.3s;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.cbp-offcanvas.is-open {
    pointer-events: auto;
    visibility: visible;
    transform: translateX(0);
}

/* Desktop : off-canvas et backdrop toujours cachés (évite tout conflit avec Electro) */
@media (min-width: 992px) {
    #cbp-offcanvas-backdrop,
    #cbp-offcanvas {
        display: none !important;
        visibility: hidden !important;
        transform: translateX(-100%) !important;
        pointer-events: none !important;
    }
}

.cbp-offcanvas__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
    opacity: 0;
    transition: opacity 0.25s ease;
}

.cbp-offcanvas.is-open .cbp-offcanvas__backdrop {
    opacity: 1;
}

.cbp-offcanvas__panel {
    position: absolute;
    top: 0;
    left: 0;
    width: 85%;
    max-width: 320px;
    height: 100%;
    background: #fff;
    box-shadow: 2px 0 12px rgba(0, 0, 0, 0.15);
    transform: translateX(-100%);
    transition: transform 0.3s ease;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

/* Annuler tout fond/box sur les boutons du panneau (thème parent, Bootstrap, etc.) */
.cbp-offcanvas__panel button {
    background-color: transparent !important;
    box-shadow: none !important;
}

.cbp-offcanvas.is-open .cbp-offcanvas__panel {
    transform: translateX(0);
}

.cbp-offcanvas__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid #e8e8e8;
    flex-shrink: 0;
}

.cbp-offcanvas__logo {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    color: inherit;
}

.cbp-offcanvas__logo-img {
    width: 52px;
    height: 52px;
    object-fit: contain;
    transform: rotate(-12deg);
}

.cbp-offcanvas__logo-square {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    background: var(--cbp-logo-blue);
    border-radius: 12px;
    transform: rotate(-12deg);
    padding: 8px 6px 6px;
}

.cbp-offcanvas__logo-text {
    font-size: 1.1rem;
    font-weight: 700;
    color: #fff;
    text-transform: lowercase;
    letter-spacing: 0.02em;
    line-height: 1.1;
}

.cbp-offcanvas__logo-bars {
    display: flex;
    gap: 3px;
    margin-top: 4px;
}

.cbp-offcanvas__bar {
    width: 12px;
    height: 3px;
    border-radius: 2px;
}

.cbp-offcanvas__bar--cyan { background: #00bcd4; }
.cbp-offcanvas__bar--magenta { background: #e91e63; }
.cbp-offcanvas__bar--yellow { background: #ffeb3b; }
.cbp-offcanvas__bar--dark { background: #37474f; }

.cbp-offcanvas__close {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: none;
    background: transparent !important;
    cursor: pointer;
    color: #000;
}

.cbp-offcanvas__close:hover {
    color: #1a237e;
}

.cbp-offcanvas__body {
    flex: 1;
    overflow-y: auto;
    padding: 1rem 1.25rem;
}

.cbp-offcanvas__categories-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
}

.cbp-offcanvas__categories-title {
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: #1a237e;
    margin: 0;
}

/* Lien « Voir plus » vers la boutique (quand ≤ 5 catégories) */
.cbp-offcanvas__voir-plus {
    font-family: 'Roboto', sans-serif;
    font-size: 0.8125rem;
    color: #000;
    text-decoration: none;
}

.cbp-offcanvas__voir-plus:hover {
    color: #1a237e;
    text-decoration: underline;
}

/* Bouton « Voir plus » / « Voir moins » : pas de fond (ni noir ni gris), texte noir / bleu nuit */
.cbp-offcanvas__toggle-more {
    font-family: 'Roboto', sans-serif;
    font-size: 0.8125rem;
    color: #000;
    background: transparent !important;
    border: none;
    padding: 0;
    cursor: pointer;
    text-decoration: none;
    outline: none;
}

.cbp-offcanvas__toggle-more:hover,
.cbp-offcanvas__toggle-more:focus {
    color: #1a237e;
    text-decoration: underline;
    background: transparent !important;
    outline: none;
}

.cbp-offcanvas__toggle-more .cbp-offcanvas__toggle-more-text {
    color: inherit;
}

.cbp-offcanvas__toggle-more[aria-expanded="true"] .cbp-offcanvas__toggle-more-text {
    color: #1a237e;
}

.cbp-offcanvas__categories-list {
    list-style: none;
    margin: 0;
    padding: 0;
    border-top: 1px solid #e8e8e8;
}

.cbp-offcanvas__category-item {
    border-bottom: 1px solid #e8e8e8;
}

/* Catégories masquées par défaut (affichées au clic sur « Voir plus ») */
.cbp-offcanvas__category-item--more {
    display: none;
}

.cbp-offcanvas__categories-list.is-expanded .cbp-offcanvas__category-item--more {
    display: block;
}

.cbp-offcanvas__category-link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 0;
    font-family: 'Roboto', sans-serif;
    font-size: 0.9375rem;
    color: #000 !important;
    text-decoration: none;
    transition: background 0.2s, color 0.2s;
}

.cbp-offcanvas__category-link:hover,
.cbp-offcanvas__category-link:focus {
    color: #1a237e !important;
    background: #fff;
}

.cbp-offcanvas__category-name {
    flex: 1;
    color: #000 !important;
}

.cbp-offcanvas__category-link:hover .cbp-offcanvas__category-name,
.cbp-offcanvas__category-link:focus .cbp-offcanvas__category-name {
    color: #1a237e !important;
}

.cbp-offcanvas__category-chevron {
    flex-shrink: 0;
    font-size: 1.125rem;
    color: #000 !important;
}

.cbp-offcanvas__category-link:hover .cbp-offcanvas__category-chevron,
.cbp-offcanvas__category-link:focus .cbp-offcanvas__category-chevron {
    color: #1a237e;
}

.cbp-offcanvas__footer {
    padding: 1.25rem 1.25rem;
    border-top: 1px solid #e8e8e8;
    flex-shrink: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.cbp-offcanvas__footer-link {
    display: block;
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    color: #000 !important;
    text-decoration: none;
    text-align: center;
    padding: 0.75rem;
}

.cbp-offcanvas__footer-link:hover,
.cbp-offcanvas__footer-link:focus {
    color: #1a237e !important;
}

/* Off-canvas structure (header-cbp-shop) */
.cbp-offcanvas__inner {
    flex: 1;
    overflow-y: auto;
    padding: 0;
    display: flex;
    flex-direction: column;
}

.cbp-offcanvas__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid #e8e8e8;
    flex-shrink: 0;
}

.cbp-offcanvas__menu-label {
    font-family: 'Roboto', sans-serif;
    font-size: 1.125rem;
    font-weight: 600;
    color: #1a237e;
}

.cbp-offcanvas__close {
    margin: 0;
    margin-left: auto;
}

/* Bloc Boutique / Imprimerie / Contacts : même design que le header */
.cbp-offcanvas__nav {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    padding: 1rem 1.25rem;
    border-bottom: 1px solid #e8e8e8;
    flex-shrink: 0;
}

.cbp-offcanvas__nav-btn {
    display: block;
    padding: 0.75rem 1.25rem;
    font-family: 'Roboto', sans-serif;
    font-size: 0.875rem;
    font-weight: 500;
    text-decoration: none;
    text-align: center;
    border-radius: 8px;
    background: var(--cbp-btn-bg, #c6e9f8);
    color: var(--cbp-main-header-text, #000) !important;
    border: none;
    transition: background 0.2s ease, color 0.2s ease;
}

.cbp-offcanvas__nav-btn:hover {
    background: #b3e0f5;
    color: var(--cbp-main-header-text, #000) !important;
}

.cbp-offcanvas__title {
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 600;
    color: #1a237e;
    margin: 0;
    padding: 1rem 1.25rem 0.5rem;
}

.cbp-offcanvas__list {
    list-style: none;
    margin: 0;
    padding: 0 1.25rem 1rem;
    border-top: 1px solid #e8e8e8;
}

.cbp-offcanvas__item {
    border-bottom: 1px solid #e8e8e8;
}

.cbp-offcanvas__item--more {
    display: none;
}

.cbp-offcanvas__list.is-expanded .cbp-offcanvas__item--more {
    display: block;
}

.cbp-offcanvas__link {
    display: block;
    padding: 0.75rem 0;
    font-family: 'Roboto', sans-serif;
    font-size: 0.9375rem;
    color: #000 !important;
    text-decoration: none;
}

.cbp-offcanvas__link:hover {
    color: #1a237e !important;
}

.cbp-offcanvas__toggle-more {
    margin: 0 1.25rem 1rem;
}

body.cbp-offcanvas-open,
body.cbp-categories-modal-open {
    overflow: hidden !important;
}

/* ========== Responsive ========== */
@media (max-width: 991px) {
    .cbp-main-header,
    .cbp-main-header__container,
    .cbp-main-header__inner {
        overflow: visible;
    }

    .cbp-main-header__nav .cbp-main-header__btn {
        padding: 0.4rem 0.75rem;
        font-size: 0.75rem;
    }

    .cbp-main-header__search {
        min-width: 120px;
    }
}

@media (max-width: 767px) {
    .cbp-top-header {
        font-size: 0.8125rem;
        padding: 0.75rem 0;
    }

    .cbp-top-header__container {
        padding-left: 16px;
        padding-right: 16px;
    }

    .cbp-top-header__inner {
        justify-content: center;
        gap: 0.75rem 1rem;
    }

    .cbp-top-header__vline {
        display: none;
    }

    .cbp-top-header__text {
        white-space: normal;
    }

    .cbp-main-header__inner {
        flex-wrap: wrap;
        gap: 0.75rem;
    }

    .cbp-main-header__burger {
        order: -1;
    }

    .cbp-main-header__logo {
        order: 0;
    }

    .cbp-main-header__search {
        order: 10;
        width: 100%;
        max-width: 100%;
        flex-basis: 100%;
    }

    .cbp-main-header__nav {
        order: 1;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .cbp-main-header__icons {
        order: 2;
        margin-left: auto;
        flex-shrink: 0;
    }

    .cbp-main-header__cart-label {
        display: inline;
    }
}

@media (max-width: 575px) {
    .cbp-main-header__nav {
        width: 100%;
        justify-content: flex-start;
    }

    .cbp-main-header__icons {
        width: auto;
        justify-content: flex-end;
    }
}

/* Pages boutique / Tous les produits / Imprimerie : pas d’étirement vertical (éviter le grand vide sous les produits) */
body.cbp-shop-page #page,
body.cbp-shop-page .site,
body.cbp-shop-page #content,
body.cbp-shop-page .site-content,
body.cbp-imprimerie-page #page,
body.cbp-imprimerie-page .site,
body.cbp-imprimerie-page #content,
body.cbp-imprimerie-page .site-content {
    min-height: 0 !important;
    height: auto !important;
}

body.cbp-shop-page #cbp-shop-page-wrap,
body.cbp-imprimerie-page #cbp-shop-page-wrap {
    min-height: 0 !important;
    height: auto !important;
}

/* Mobile : en plus, overflow visible pour le scroll */
@media (max-width: 991px) {
    body.cbp-shop-page #page,
    body.cbp-shop-page .site,
    body.cbp-shop-page #content,
    body.cbp-shop-page .site-content,
    body.cbp-imprimerie-page #page,
    body.cbp-imprimerie-page .site,
    body.cbp-imprimerie-page #content,
    body.cbp-imprimerie-page .site-content {
        overflow: visible !important;
    }

    body.cbp-shop-page #cbp-shop-page-wrap,
    body.cbp-imprimerie-page #cbp-shop-page-wrap {
        overflow: visible !important;
    }

    body.cbp-shop-page,
    body.cbp-imprimerie-page {
        overflow-x: hidden;
        overflow-y: auto;
    }
}

/* ==========================================================================
   Pages CBP : forcer fond clair (éviter fond noir du thème parent / conflits)
   ========================================================================== */
body.cbp-shop-page,
body.cbp-imprimerie-page,
body.cbp-contact-page,
body.cbp-landing-page {
    background-color: #f5f5f5 !important;
    background: #f5f5f5 !important;
}
body.cbp-landing-page {
    background: linear-gradient(135deg, #f8fcff 0%, #e3f2fd 50%, #b3e5fc 100%) !important;
}
body.cbp-shop-page #page,
body.cbp-shop-page .site,
body.cbp-shop-page #content,
body.cbp-shop-page .site-content,
body.cbp-imprimerie-page #page,
body.cbp-imprimerie-page .site,
body.cbp-imprimerie-page #content,
body.cbp-imprimerie-page .site-content,
body.cbp-contact-page #page,
body.cbp-contact-page .site,
body.cbp-contact-page #content,
body.cbp-contact-page .site-content,
body.cbp-landing-page #page,
body.cbp-landing-page .site,
body.cbp-landing-page #content,
body.cbp-landing-page .site-content {
    background-color: #f5f5f5 !important;
    background: #f5f5f5 !important;
}
body.cbp-landing-page #page,
body.cbp-landing-page .site,
body.cbp-landing-page #content,
body.cbp-landing-page .site-content {
    background: linear-gradient(135deg, #f8fcff 0%, #e3f2fd 50%, #b3e5fc 100%) !important;
}

/* Backdrop modal : ne pas couvrir la page quand aucun modal n'est ouvert */
body:not(.modal-open) .modal-backdrop.fade.show {
    display: none !important;
}

/* ==========================================================================
   Pages CBP : largeur contenu étendue (réduit marges externes), Bootstrap respecté
   ========================================================================== */
body.cbp-shop-page .container,
body.cbp-contact-page .container,
body.cbp-imprimerie-page .container {
    max-width: var(--cbp-container-max, 1320px);
}

/* ==========================================================================
   Page boutique CBP : supprimer les barres noires (body, wrappers, footer)
   ========================================================================== */
body.cbp-shop-page,
body.cbp-shop-page #page,
body.cbp-shop-page .site,
body.cbp-shop-page #content,
body.cbp-shop-page .site-content,
body.cbp-shop-page #cbp-shop-page-wrap {
    background: #f5f5f5 !important;
}

/* Page Imprimerie CBP : même fond, supprimer le trait / bordure noire */
body.cbp-imprimerie-page,
body.cbp-imprimerie-page #page,
body.cbp-imprimerie-page .site,
body.cbp-imprimerie-page #content,
body.cbp-imprimerie-page .site-content,
body.cbp-imprimerie-page #cbp-shop-page-wrap {
    background: #f5f5f5 !important;
    border: none !important;
    outline: none !important;
}

body.cbp-imprimerie-page #page,
body.cbp-imprimerie-page .site,
body.cbp-imprimerie-page #content,
body.cbp-imprimerie-page .site-content,
body.cbp-imprimerie-page #cbp-shop-page-wrap {
    box-shadow: none !important;
}

body.cbp-shop-page .site-footer,
body.cbp-shop-page footer,
body.cbp-shop-page #colophon {
    background: #f5f5f5 !important;
}

/* Textes du footer en noir (au lieu de gris) */
body.cbp-shop-page .site-footer,
body.cbp-shop-page .site-footer *,
body.cbp-shop-page footer,
body.cbp-shop-page footer *,
body.cbp-shop-page #colophon,
body.cbp-shop-page #colophon * {
    color: #000 !important;
}

body.cbp-imprimerie-page .site-footer,
body.cbp-imprimerie-page footer,
body.cbp-imprimerie-page #colophon {
    background: #f5f5f5 !important;
}

body.cbp-imprimerie-page .site-footer,
body.cbp-imprimerie-page .site-footer *,
body.cbp-imprimerie-page footer,
body.cbp-imprimerie-page footer *,
body.cbp-imprimerie-page #colophon,
body.cbp-imprimerie-page #colophon * {
    color: #000 !important;
}

/* Masquer lien/bouton "MARQUES" (hors panier pour ne pas casser le tableau) */
body.cbp-shop-page:not(.woocommerce-cart) a[href*="marque"],
body.cbp-shop-page .site-footer [class*="marque"] {
    display: none !important;
}

/* Footer : garder la disposition en ligne (contact, localisation) */
body.cbp-shop-page .site-footer .row,
body.cbp-shop-page .site-footer .section-contact-boutique .row,
body.cbp-shop-page .site-footer .section-contact-imprimerie .row {
    display: flex !important;
    flex-wrap: wrap !important;
    margin-left: -15px !important;
    margin-right: -15px !important;
}

body.cbp-shop-page .site-footer .row > [class*="col-"] {
    padding-left: 15px !important;
    padding-right: 15px !important;
}

body.cbp-shop-page .site-footer .row > .col-lg-3 {
    flex: 0 0 25% !important;
    max-width: 25% !important;
}

@media (max-width: 991px) {
    body.cbp-shop-page .site-footer .row > .col-md-6 {
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }
}

@media (max-width: 767px) {
    body.cbp-shop-page .site-footer .row > .col-sm-6 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
    }
}

/* Page Contact CBP : même fond et footer que boutique */
body.cbp-contact-page .site-footer,
body.cbp-contact-page footer,
body.cbp-contact-page #colophon {
    background: #f5f5f5 !important;
}

/* Contact : formulaire mobile (champs plus grands, évite zoom iOS, padding bas, centré) */
@media (max-width: 767px) {
    .cbp-contact-page-wrap .cbp-contact-form-col input[type="text"],
    .cbp-contact-page-wrap .cbp-contact-form-col input[type="email"],
    .cbp-contact-page-wrap .cbp-contact-form-col textarea {
        font-size: 16px !important;
    }
    .cbp-contact-page-wrap .cbp-contact-layout,
    .cbp-contact-page-wrap .cbp-contact-inner {
        padding-bottom: 100px;
    }
    .cbp-contact-page-wrap .cbp-contact-inner {
        width: 100%;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
    }
}

/* Hero boutique : masquer la colonne catégories sur mobile (sauf en archive catégorie) */
@media (max-width: 991px) {
    .cbp-shop-section:not(.cbp-shop-section--category-archive) .cbp-shop-categories {
        display: none !important;
    }
}

/* ==========================================================================
   Pages boutique CBP : masquer icônes desktop/Android et éléments Electro
   (boutique + contact)
   ========================================================================== */

/* Icônes "desktop" et "android" (version desktop / app mobile) – ne pas afficher sur le main header */
body.cbp-shop-page .cbp-main-header .fa-desktop,
body.cbp-shop-page .cbp-main-header .fa-android,
body.cbp-shop-page .cbp-main-header .fab.fa-android,
body.cbp-shop-page .cbp-main-header [class*="desktop"],
body.cbp-shop-page .cbp-main-header [class*="android"],
body.cbp-contact-page .cbp-main-header .fa-desktop,
body.cbp-contact-page .cbp-main-header .fa-android,
body.cbp-contact-page .cbp-main-header .fab.fa-android,
body.cbp-contact-page .cbp-main-header [class*="desktop"],
body.cbp-contact-page .cbp-main-header [class*="android"] {
    display: none !important;
}

/* Barre fixe handheld Electro (search, account, cart en bas) – masquée sur boutique CBP et contact */
body.cbp-shop-page .electro-handheld-footer-bar,
body.cbp-shop-page .handheld-footer-bar,
body.cbp-contact-page .electro-handheld-footer-bar,
body.cbp-contact-page .handheld-footer-bar {
    display: none !important;
}

/* Toolbar handheld Electro en haut (menu mobile) – masquée sur boutique CBP et contact */
body.cbp-shop-page .handheld-toolbar,
body.cbp-shop-page .handheld-navigation-wrapper,
body.cbp-contact-page .handheld-toolbar,
body.cbp-contact-page .handheld-navigation-wrapper {
    display: none !important;
}

/* Sélecteur Light/Dark du thème Electro – masqué sur boutique CBP et contact */
body.cbp-shop-page .electro-mode-switcher,
body.cbp-contact-page .electro-mode-switcher {
    display: none !important;
}

/* ==========================================================================
   Section boutique : catégories à gauche + carousel à droite
   ========================================================================== */

.cbp-shop-section {
    font-family: 'Roboto', sans-serif;
    background: var(--cbp-main-header-bg);
    padding: 1.5rem 0;
}

.cbp-shop-section__container {
    max-width: var(--cbp-container-max, 1320px);
    margin: 0 auto;
    padding-left: 24px;
    padding-right: 24px;
}

.cbp-shop-section__inner {
    display: flex;
    gap: 1.5rem;
    align-items: stretch;
}

/* Page Imprimerie : hero sans catégories, carousel pleine largeur */
.cbp-shop-section__inner--carousel-only .cbp-shop-carousel {
    flex: 1 1 100%;
    width: 100%;
}

/* Archive catégorie + page Tous les produits : zone principale (liste produits) à droite de la barre catégories, occupe tout l’espace restant */
/* Breadcrumb (fil d'Ariane) au-dessus de la barre de filtre */
.cbp-shop-breadcrumb {
    margin-bottom: 1rem;
    padding: 0.5rem 0;
    font-size: 13px;
    line-height: 1.4;
}
.cbp-shop-breadcrumb__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    gap: 0.25rem;
}
.cbp-shop-breadcrumb__item {
    display: inline-flex;
    align-items: center;
}
.cbp-shop-breadcrumb__sep {
    color: #9ca3af;
    margin: 0;
    padding: 0 0.15rem;
    user-select: none;
}
.cbp-shop-breadcrumb__link {
    color: #1976d2;
    text-decoration: none;
}
.cbp-shop-breadcrumb__link:hover {
    text-decoration: underline;
}
.cbp-shop-breadcrumb__current {
    color: #374151;
    font-weight: 500;
}

.cbp-shop-section--category-archive .cbp-shop-section__main,
.cbp-shop-section--all-products .cbp-shop-section__main,
.cbp-shop-section--single-product .cbp-shop-section__main {
    flex: 1 1 auto;
    min-width: 0;
}

.cbp-shop-section--category-archive .cbp-shop-section__main #primary {
    width: 100%;
}

/* Archive catégorie : tous les textes en noir (sauf au hover, voir ci-dessous) */
.cbp-shop-section--category-archive,
.cbp-shop-section--category-archive .cbp-shop-categories,
.cbp-shop-section--category-archive .cbp-shop-categories__list,
.cbp-shop-section--category-archive .cbp-shop-categories__link,
.cbp-shop-section--category-archive .cbp-shop-categories__name,
.cbp-shop-section--category-archive .cbp-shop-section__main,
.cbp-shop-section--category-archive .cbp-shop-section__main .page-title,
.cbp-shop-section--category-archive .cbp-shop-section__main .term-description,
.cbp-shop-section--category-archive .cbp-shop-section__main .woocommerce-result-count,
.cbp-shop-section--category-archive .cbp-shop-section__main .woocommerce-ordering,
.cbp-shop-section--category-archive .cbp-shop-section__main .woocommerce-ordering select,
.cbp-shop-section--category-archive .cbp-shop-section__main .products .product .woocommerce-loop-product__title,
.cbp-shop-section--category-archive .cbp-shop-section__main .products .product .price,
.cbp-shop-section--category-archive .cbp-shop-section__main .products .product .price .amount,
.cbp-shop-section--category-archive .cbp-shop-section__main .products .product a,
.cbp-shop-section--category-archive .cbp-shop-section__main .nav-links a,
.cbp-shop-section--category-archive .cbp-shop-section__main .woocommerce-info,
.cbp-shop-section--category-archive .cbp-shop-section__main .woocommerce-no-products-found {
    color: #000 !important;
}

/* ----- Hover produit : permutation des couleurs (fond = bleu du texte, texte = blanc) ----- */
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product {
    position: relative;
}

/* Au hover : la carte prend la couleur du texte (bleu), le texte devient blanc — plus d’overlay transparent */
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .product-inner,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .hover-area,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .product-inner,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .hover-area {
    background-color: var(--cbp-shop-primary) !important;
    background: var(--cbp-shop-primary) !important;
}

/* Effet hover carte : légère élévation pour meilleure UX */
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .product-inner,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .product-inner {
    box-shadow: 0 8px 24px rgba(25, 118, 210, 0.35);
    transform: translateY(-2px);
}

.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product .product-inner,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product > a,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product .product-inner,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product > a {
    position: relative;
    z-index: 1;
}

.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .woocommerce-loop-product__title,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .price,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .price .amount,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .loop-product-categories,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .loop-product-categories a,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover a,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .button,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .added_to_cart,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .woocommerce-loop-product__title,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .price,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .price .amount,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .loop-product-categories,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .loop-product-categories a,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover a,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .button,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .added_to_cart {
    color: #fff !important;
}

.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .button,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .button,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .added_to_cart,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .added_to_cart {
    border-color: #fff !important;
    background: rgba(255, 255, 255, 0.25) !important;
    background-color: rgba(255, 255, 255, 0.25) !important;
}

.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .button::before,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .added_to_cart::before,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .button::before,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .added_to_cart::before {
    color: #fff !important;
    background-color: rgba(255, 255, 255, 0.35) !important;
}

/* Annuler tout noir / orange du thème parent sur le hover produit */
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .product-inner,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .product-loop-footer,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .hover-area,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .product-inner,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .product-loop-footer,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .hover-area {
    border-color: transparent !important;
}

/* Forcer aucun noir au hover : tout le contenu de la carte en blanc */
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .product-inner,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .product-inner *,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .product-inner,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .product-inner * {
    color: #fff !important;
}

.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .product-inner .button::before,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product:hover .product-inner .added_to_cart::before,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .product-inner .button::before,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product:hover .product-inner .added_to_cart::before {
    background-color: rgba(255, 255, 255, 0.35) !important;
    border-bottom-color: transparent !important;
}

/* ----- Liste produits : design bleu entreprise (sans noir) ----- */
.cbp-shop-section--category-archive .cbp-shop-section__main .shop-control-bar,
.cbp-shop-section--all-products .cbp-shop-section__main .shop-control-bar {
    background-color: var(--cbp-shop-toolbar-bg);
    border: 1px solid var(--cbp-shop-toolbar-border);
    border-radius: 9px;
}

/* Page « Tous les produits » : espace barre/grille + grille auto (plus de « carte invisible » après le dernier produit) */
.cbp-shop-section--all-products .cbp-shop-section__main .shop-control-bar {
    margin-bottom: 1.5rem;
}
.cbp-shop-section--all-products .cbp-shop-section__main ul.products,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr));
    margin-top: 0.5rem;
    gap: 0.75rem;
    width: 100%;
}
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product {
    margin-bottom: 0;
    width: auto;
    max-width: 100%;
}

.cbp-shop-section--category-archive .cbp-shop-section__main .shop-control-bar .shop-view-switcher .nav-link:not(:hover):not(:focus):not(.active),
.cbp-shop-section--all-products .cbp-shop-section__main .shop-control-bar .shop-view-switcher .nav-link:not(:hover):not(:focus):not(.active) {
    color: var(--cbp-shop-primary-light);
}

.cbp-shop-section--category-archive .cbp-shop-section__main .shop-control-bar .shop-view-switcher .nav-link.active,
.cbp-shop-section--category-archive .cbp-shop-section__main .shop-control-bar .shop-view-switcher .nav-link:hover,
.cbp-shop-section--category-archive .cbp-shop-section__main .shop-control-bar .shop-view-switcher .nav-link:focus,
.cbp-shop-section--all-products .cbp-shop-section__main .shop-control-bar .shop-view-switcher .nav-link.active,
.cbp-shop-section--all-products .cbp-shop-section__main .shop-control-bar .shop-view-switcher .nav-link:hover,
.cbp-shop-section--all-products .cbp-shop-section__main .shop-control-bar .shop-view-switcher .nav-link:focus {
    color: var(--cbp-shop-primary);
}

.cbp-shop-section--category-archive .cbp-shop-section__main .shop-control-bar .woocommerce-ordering .orderby,
.cbp-shop-section--category-archive .cbp-shop-section__main .shop-control-bar .form-electro-wc-ppp .orderby,
.cbp-shop-section--category-archive .cbp-shop-section__main .shop-control-bar .form-electro-wc-ppp .c-select,
.cbp-shop-section--all-products .cbp-shop-section__main .shop-control-bar .woocommerce-ordering .orderby,
.cbp-shop-section--all-products .cbp-shop-section__main .shop-control-bar .form-electro-wc-ppp .orderby,
.cbp-shop-section--all-products .cbp-shop-section__main .shop-control-bar .form-electro-wc-ppp .c-select {
    background-color: #fff;
    color: var(--cbp-shop-primary);
    border: 1px solid var(--cbp-shop-toolbar-border);
}

.cbp-shop-section--category-archive .cbp-shop-section__main .electro-advanced-pagination,
.cbp-shop-section--category-archive .cbp-shop-section__main .electro-advanced-pagination a.prev,
.cbp-shop-section--category-archive .cbp-shop-section__main .electro-advanced-pagination a.next,
.cbp-shop-section--all-products .cbp-shop-section__main .electro-advanced-pagination,
.cbp-shop-section--all-products .cbp-shop-section__main .electro-advanced-pagination a.prev,
.cbp-shop-section--all-products .cbp-shop-section__main .electro-advanced-pagination a.next {
    color: var(--cbp-shop-primary);
}

.cbp-shop-section--category-archive .cbp-shop-section__main .electro-advanced-pagination a.prev:hover,
.cbp-shop-section--category-archive .cbp-shop-section__main .electro-advanced-pagination a.next:hover,
.cbp-shop-section--all-products .cbp-shop-section__main .electro-advanced-pagination a.prev:hover,
.cbp-shop-section--all-products .cbp-shop-section__main .electro-advanced-pagination a.next:hover {
    color: var(--cbp-header-blue);
}

/* Pagination « 1 of 19 » : numéro de page en bleu (pas noir) */
.cbp-shop-section--category-archive .cbp-shop-section__main .electro-advanced-pagination .form-adv-pagination,
.cbp-shop-section--all-products .cbp-shop-section__main .electro-advanced-pagination .form-adv-pagination {
    display: inline-block;
}

.cbp-shop-section--category-archive .cbp-shop-section__main .electro-advanced-pagination #goto-page,
.cbp-shop-section--category-archive .cbp-shop-section__main .electro-advanced-pagination .form-control,
.cbp-shop-section--all-products .cbp-shop-section__main .electro-advanced-pagination #goto-page,
.cbp-shop-section--all-products .cbp-shop-section__main .electro-advanced-pagination .form-control {
    background-color: var(--cbp-shop-primary) !important;
    color: #fff !important;
    border: 1px solid var(--cbp-shop-primary) !important;
    border-radius: 8px;
    font-weight: 600;
    min-width: 2.5em;
    text-align: center;
}

.cbp-shop-section--category-archive .cbp-shop-section__main .shop-control-bar-bottom,
.cbp-shop-section--all-products .cbp-shop-section__main .shop-control-bar-bottom {
    border-top-color: var(--cbp-shop-toolbar-border);
}

.cbp-shop-section--category-archive .cbp-shop-section__main .woocommerce-pagination ul.page-numbers > li a,
.cbp-shop-section--category-archive .cbp-shop-section__main .woocommerce-pagination ul.page-numbers > li span,
.cbp-shop-section--all-products .cbp-shop-section__main .woocommerce-pagination ul.page-numbers > li a,
.cbp-shop-section--all-products .cbp-shop-section__main .woocommerce-pagination ul.page-numbers > li span {
    background-color: var(--cbp-shop-toolbar-bg);
    color: var(--cbp-shop-primary);
    border: 1px solid var(--cbp-shop-toolbar-border);
}

.cbp-shop-section--category-archive .cbp-shop-section__main .woocommerce-pagination ul.page-numbers > li a:hover,
.cbp-shop-section--category-archive .cbp-shop-section__main .woocommerce-pagination ul.page-numbers > li span.current,
.cbp-shop-section--all-products .cbp-shop-section__main .woocommerce-pagination ul.page-numbers > li a:hover,
.cbp-shop-section--all-products .cbp-shop-section__main .woocommerce-pagination ul.page-numbers > li span.current {
    background-color: var(--cbp-shop-primary);
    color: #fff;
    border-color: var(--cbp-shop-primary);
}

/* ----- Cartes produit : état normal (design propre, bleu, pas de noir) ----- */
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product .product-inner,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product .product-inner {
    background-color: #fff !important;
    border: 1px solid rgba(25, 118, 210, 0.12);
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(25, 118, 210, 0.06);
    transition: box-shadow 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product .woocommerce-loop-product__title,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product .woocommerce-loop-product__title {
    color: #1565c0 !important;
    font-weight: 600;
}

.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product .loop-product-categories a,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product .loop-product-categories a {
    color: var(--cbp-shop-primary-light) !important;
}

.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product .price,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product .price .amount,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product .price,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product .price .amount {
    color: var(--cbp-shop-primary) !important;
    font-weight: 600;
}

/* Boutons ronds (panier + vue) : toujours bleu, jamais noir */
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product .button::before,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product .added_to_cart::before,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product .button::before,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product .added_to_cart::before {
    color: #fff !important;
    background-color: var(--cbp-shop-primary) !important;
    border-radius: 50%;
}

.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product .button,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product .added_to_cart,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product .button,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product .added_to_cart {
    color: var(--cbp-shop-primary) !important;
    border-color: var(--cbp-shop-toolbar-border) !important;
    background-color: transparent !important;
    background: transparent !important;
}

.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product .button:hover,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product .added_to_cart:hover,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product .button:hover,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product .added_to_cart:hover {
    color: #fff !important;
    background-color: var(--cbp-shop-primary) !important;
    background: var(--cbp-shop-primary) !important;
    border-color: var(--cbp-shop-primary) !important;
}

.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product .button:hover::before,
.cbp-shop-section--category-archive .cbp-shop-section__main ul.products .product .added_to_cart:hover::before,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product .button:hover::before,
.cbp-shop-section--all-products .cbp-shop-section__main ul.products .product .added_to_cart:hover::before {
    color: #fff !important;
    background-color: rgba(255, 255, 255, 0.3) !important;
}

/* ----- Carte catégories / sous-catégories (design sobre et pro) ----- */
.cbp-shop-categories {
    flex: 0 0 280px;
    min-width: 0;
}

.cbp-shop-categories__list {
    list-style: none;
    margin: 0;
    padding: 0;
    border: 1px solid #e5e7eb;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
    font-family: 'Roboto', sans-serif;
}

.cbp-shop-categories__item {
    border-bottom: 1px solid #f0f0f0;
}

.cbp-shop-categories__item:last-child {
    border-bottom: none;
}

.cbp-shop-categories__row {
    display: flex;
    align-items: center;
    min-height: 48px;
}

/* Lien sur toute la ligne uniquement quand il n’y a pas de flèche (sous-catégories) */
/* Ordre d’affichage : nom à gauche, flèche à droite (bouton en premier dans le DOM pour recevoir le clic) */
/* Avec sous-catégories : seule la zone du texte et celle de la flèche sont cliquables */
.cbp-shop-categories__row .cbp-shop-categories__link {
    min-width: 0;
    flex: 1;
}

/* Catégorie avec sous-catégories : lien (nom) + zone flèche ; au survol de la flèche = ouvrir la liste */
.cbp-shop-categories__item--has-children .cbp-shop-categories__link {
    flex: 1;
    min-width: 0;
}

.cbp-shop-categories__dropdown-wrap {
    position: relative;
    flex-shrink: 0;
}

.cbp-shop-categories__arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    min-width: 36px;
    min-height: 36px;
    margin: 0;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    color: #6b7280;
    border-radius: 6px;
    transition: color 0.2s, background 0.2s;
    -webkit-user-select: none;
    user-select: none;
}

.cbp-shop-categories__arrow:hover,
.cbp-shop-categories__arrow:focus {
    color: #1976d2;
    background: #f8fafc;
}

.cbp-shop-categories__arrow:focus-visible {
    outline: 2px solid #1976d2;
    outline-offset: 2px;
}

.cbp-shop-categories__arrow-icon {
    flex-shrink: 0;
    transition: transform 0.2s ease;
    transform: rotate(-90deg);
}

.cbp-shop-categories__dropdown-wrap.is-open .cbp-shop-categories__arrow-icon {
    transform: rotate(0deg);
}

/* Sous-catégories */
.cbp-shop-categories__sublist {
    list-style: none;
    margin: 0;
    padding: 0.5rem 0;
    background: #fafafa;
    display: none;
}

.cbp-shop-categories__item--open .cbp-shop-categories__sublist {
    display: block;
}

.cbp-shop-categories__subitem {
    border-bottom: none;
}

.cbp-shop-categories__subitem:last-child {
    border-bottom: none;
}

/* Ligne sous-catégorie */
.cbp-shop-categories__subrow {
    display: flex;
    align-items: center;
    min-height: 40px;
    padding: 0 1rem 0 1.25rem;
    gap: 0.5rem;
    border-left: 3px solid transparent;
    transition: background 0.15s;
}

.cbp-shop-categories__subrow .cbp-shop-categories__sublink {
    flex: 1;
    min-width: 0;
    padding: 0.4rem 0;
    margin: 0;
    font-size: 13px;
    color: #374151 !important;
    text-decoration: none;
    transition: color 0.15s;
}

.cbp-shop-categories__subrow:hover {
    background: #f5f5f5;
}

.cbp-shop-categories__subrow .cbp-shop-categories__sublink:hover {
    color: #1976d2 !important;
}

.cbp-shop-categories__subitem--current .cbp-shop-categories__subrow {
    background: #eff6ff;
    border-left-color: #1976d2;
}

.cbp-shop-categories__subitem--current .cbp-shop-categories__sublink {
    font-weight: 600;
    color: #1976d2 !important;
}

.cbp-shop-categories__arrow--sub {
    width: 32px;
    height: 32px;
    min-width: 32px;
    min-height: 32px;
    color: #9ca3af;
}

.cbp-shop-categories__arrow--sub:hover {
    color: #1976d2;
}

.cbp-shop-categories__arrow--sub .cbp-shop-categories__arrow-icon {
    width: 10px;
    height: 10px;
}

/* Liste produits (niveau 3) */
.cbp-shop-categories__productlist {
    list-style: none;
    margin: 0;
    padding: 0.35rem 0;
    background: #f5f5f5;
}

.cbp-shop-categories__productitem {
    margin: 0;
}

.cbp-shop-categories__productlink {
    display: block;
    padding: 0.4rem 1rem 0.4rem 2rem;
    font-size: 12px;
    color: #4b5563 !important;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}

.cbp-shop-categories__productlink:hover {
    background: #eee;
    color: #1976d2 !important;
}

.cbp-shop-categories__productitem--current .cbp-shop-categories__productlink {
    background: #eff6ff;
    font-weight: 600;
    color: #1976d2 !important;
}

.cbp-shop-categories__subitem--empty {
    padding: 0.5rem 1rem 0.5rem 1.25rem;
    font-size: 13px;
    color: #9ca3af;
    font-style: italic;
}

/* Liens catégories principales */
.cbp-shop-categories__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 1rem;
    height: 48px;
    font-family: 'Roboto', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: #1f2937 !important;
    text-decoration: none;
    transition: background 0.15s, color 0.15s;
}

.cbp-shop-categories__link:hover {
    background: #f8fafc;
    color: #1976d2 !important;
}

.cbp-shop-categories__item--current .cbp-shop-categories__link {
    background: #eff6ff;
    color: #1976d2 !important;
}

.cbp-shop-categories__item--current .cbp-shop-categories__chevron {
    color: #1976d2;
}

.cbp-shop-categories__name {
    flex: 1;
    color: inherit;
}

.cbp-shop-categories__chevron {
    flex-shrink: 0;
    font-size: 1rem;
    color: #6b7280;
}

.cbp-shop-categories__item--other .cbp-shop-categories__link {
    justify-content: flex-start;
}

.cbp-shop-categories__item--other .cbp-shop-categories__chevron {
    display: none;
}

/* Bouton "Autre catégorie" : même rendu que le lien */
button.cbp-shop-categories__link {
    width: 100%;
    margin: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    font: inherit;
    text-align: left;
}

/* ----- Modal "Autre catégorie" : design CBP (bleu, épuré) ----- */
.cbp-categories-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1.5rem;
    pointer-events: none;
    font-family: 'Roboto', sans-serif;
}

.cbp-categories-modal.is-open {
    display: flex;
    pointer-events: auto;
}

.cbp-categories-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(26, 35, 126, 0.25);
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.cbp-categories-modal.is-open .cbp-categories-modal__backdrop {
    opacity: 1;
}

.cbp-categories-modal__dialog {
    position: relative;
    width: 100%;
    max-width: 380px;
    max-height: min(85vh, 520px);
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 24px 48px rgba(26, 35, 126, 0.15), 0 0 0 1px rgba(25, 118, 210, 0.08);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: translateY(-12px);
    opacity: 0;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.cbp-categories-modal.is-open .cbp-categories-modal__dialog {
    transform: translateY(0);
    opacity: 1;
}

/* En-tête : fond bleu clair, titre + bouton fermer */
.cbp-categories-modal__dialog .cbp-categories-modal__title {
    margin: 0;
    padding: 1.125rem 3rem 1.125rem 1.25rem;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--cbp-header-blue, #1a237e);
    letter-spacing: 0.01em;
    background: var(--cbp-shop-toolbar-bg, #e3f2fd);
    border-bottom: 1px solid rgba(25, 118, 210, 0.15);
    flex-shrink: 0;
}

.cbp-categories-modal__close {
    position: absolute;
    top: 0.75rem;
    right: 0.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: none;
    background: transparent;
    color: var(--cbp-shop-primary, #1976d2);
    cursor: pointer;
    border-radius: 8px;
    font-size: 1.5rem;
    line-height: 1;
    transition: background 0.2s, color 0.2s;
}

.cbp-categories-modal__close:hover {
    background: rgba(25, 118, 210, 0.12);
    color: var(--cbp-header-blue, #1a237e);
}

/* Liste scrollable */
.cbp-categories-modal__list {
    list-style: none;
    margin: 0;
    padding: 0.5rem 0;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.cbp-categories-modal__item {
    margin: 0;
}

.cbp-categories-modal__link {
    display: block;
    padding: 0.75rem 1.25rem;
    font-size: 0.9375rem;
    font-weight: 500;
    color: #333 !important;
    text-decoration: none !important;
    transition: background 0.15s, color 0.15s;
    border-left: 3px solid transparent;
}

.cbp-categories-modal__link:hover {
    background: var(--cbp-shop-toolbar-bg, #e3f2fd);
    color: var(--cbp-shop-primary, #1976d2) !important;
    border-left-color: var(--cbp-shop-primary, #1976d2);
}

/* Premier lien "Tous les Produits" légèrement mis en avant */
.cbp-categories-modal__item:first-child .cbp-categories-modal__link {
    font-weight: 600;
    color: var(--cbp-shop-primary, #1976d2) !important;
}

.cbp-categories-modal__item:first-child .cbp-categories-modal__link:hover {
    background: rgba(25, 118, 210, 0.08);
}

.cbp-categories-modal__item .cbp-shop-categories__row,
.cbp-categories-modal__name {
    display: none;
}

.cbp-categories-modal__item .cbp-shop-categories__arrow {
    display: none;
}

/* ----- Colonne droite : carousel / bannière ----- */
.cbp-shop-carousel {
    flex: 1;
    min-width: 0;
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    background: #f5f5f5;
    min-height: 320px;
}

.cbp-shop-carousel__track {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 320px;
}

.cbp-shop-carousel__slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    min-height: 320px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #e0e0e0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.cbp-shop-carousel__slide--active {
    position: relative;
    opacity: 1;
    visibility: visible;
}

/* Fond noir semi-transparent sur toute la slide pour lisibilité du texte */
.cbp-shop-carousel__slide-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    pointer-events: none;
    z-index: 0;
}

.cbp-shop-carousel__slide-link,
.cbp-shop-carousel__slide-content {
    position: absolute;
    inset: 0;
    padding: 2rem 2.5rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    text-decoration: none;
    z-index: 1;
}

.cbp-shop-carousel__slide-link {
    text-decoration: none;
}

.cbp-shop-carousel__slide-title {
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    color: #fff;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}

.cbp-shop-carousel__slide-options {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-top: 0.5rem;
    font-size: 0.875rem;
    color: rgba(255, 255, 255, 0.95);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
}

.cbp-shop-carousel__option-line {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.cbp-shop-carousel__option-icon {
    flex-shrink: 0;
}

.cbp-shop-carousel__empty {
    font-family: 'Roboto', sans-serif;
    font-size: 1rem;
    color: #000000;
    margin: 0;
}

.cbp-shop-carousel__overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 80px;
    bottom: 0;
    padding: 2rem 2.5rem;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.cbp-shop-carousel__title {
    font-family: 'Roboto', sans-serif;
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 700;
    color: #fff;
    line-height: 1.2;
    margin: 0 0 1rem;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.cbp-shop-carousel__cta {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.cbp-shop-carousel__cta-line {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: 'Roboto', sans-serif;
    font-size: 0.9375rem;
    font-weight: 400;
    color: #fff;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.cbp-shop-carousel__cta-icon {
    flex-shrink: 0;
}

/* Contrôles carousel header : cercle blanc, bordure gris clair, icône magenta (comme maquette) */
.cbp-shop-carousel__controls {
    position: absolute;
    top: 50%;
    right: 1rem;
    transform: translateY(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    z-index: 2;
}

/* Boutons flèches : images arrow-circle-up.png / arrow-circle-down.png */
.cbp-shop-carousel__btn {
    width: 40px;
    height: 40px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s, opacity 0.2s;
}

.cbp-shop-carousel__btn img {
    display: block;
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.cbp-shop-carousel__btn:hover {
    opacity: 0.9;
    transform: scale(1.08);
}

.cbp-shop-carousel__btn:active {
    transform: scale(1);
}

.cbp-shop-carousel__dots {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* Points : inactif = cercle blanc bordure grise, actif = bleu avec contour blanc */
.cbp-shop-carousel__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid #d4d4d4;
    background: #fff;
    padding: 0;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, transform 0.2s;
}

.cbp-shop-carousel__dot:hover {
    background: #f0f0f0;
    border-color: #bdbdbd;
    transform: scale(1.15);
}

.cbp-shop-carousel__dot--active {
    background: #2196F3;
    border: 1px solid #fff;
    box-shadow: 0 0 0 1px #2196F3;
}

.cbp-shop-carousel__dot--active:hover {
    transform: scale(1.15);
}

/* Responsive : section boutique */
@media (max-width: 991px) {
    .cbp-shop-section__inner {
        flex-direction: column;
    }

    /* Masquer la carte des catégories à côté du carousel (hero page boutique) sur mobile – les catégories sont dans le menu burger. Ne pas cacher la sidebar sur la page archive catégorie. */
    .cbp-shop-section:not(.cbp-shop-section--category-archive) .cbp-shop-categories {
        display: none !important;
    }

    .cbp-shop-categories {
        flex: 0 0 auto;
        max-width: 100%;
    }

    .cbp-shop-carousel__overlay {
        right: 70px;
        padding: 1.5rem;
    }

    .cbp-shop-carousel__title {
        font-size: 1.5rem;
    }
}

@media (max-width: 575px) {
    .cbp-shop-section__container {
        padding-left: 15px;
        padding-right: 15px;
    }

    .cbp-shop-carousel__controls {
        right: 0.5rem;
    }

    .cbp-shop-carousel__overlay {
        right: 60px;
        padding: 1rem;
    }
}

/* ==========================================================================
   Section CATEGORIE DE PRODUITS : carousel de cartes (design maquette)
   Fond gris clair, bloc blanc arrondi, titre en pill bleu centré, flèches grises, points actif bleu / inactif blanc
   ========================================================================== */

.cbp-categories-cards {
    font-family: 'Roboto', sans-serif;
    background: #f5f5f5;
    padding: 2rem 24px;
}

/* Parent : contexte pour positionner le titre au centre du bord supérieur (comme carrou.html) */
.cbp-categories-cards__inner {
    position: relative;
    max-width: var(--cbp-container-max, 1320px);
    margin: 0 auto;
    margin-top: 40px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
    padding: 1.5rem 24px 1.5rem;
}

/* Enfant : titre CATEGORIE DE PRODUITS centré sur le bord supérieur de la carte blanche */
.cbp-categories-cards #id-categorie-produits {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    margin-bottom: 0;
}

/* Carte titre (CATEGORIE DE PRODUITS) : texte centré (comme IMPRIMERIE) */
.cbp-categories-cards .title-image {
    text-align: center;
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    min-width: 295px;
}

.cbp-categories-cards__wrap {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 20px;
    /* Espace sous le titre */
}

.cbp-categories-cards__track-wrap {
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

.cbp-categories-cards__track {
    display: flex;
    gap: 1rem;
    transition: transform 0.3s ease;
    will-change: transform;
}

.cbp-categories-cards__card {
    flex: 0 0 calc((100% - 2rem) / 3);
    min-width: 200px;
    display: block;
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid rgba(0, 188, 212, 0.35);
    aspect-ratio: 4 / 3;
    text-decoration: none;
}

@media (min-width: 992px) {
    .cbp-categories-cards__card {
        flex: 0 0 calc((100% - 3rem) / 4);
    }
}

.cbp-categories-cards__card-bg {
    position: absolute;
    inset: 0;
    background-color: #e8e8e8;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.cbp-categories-cards__card-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0);
    transition: background 0.25s ease;
}

.cbp-categories-cards__card:hover .cbp-categories-cards__card-overlay {
    background: rgba(0, 0, 0, 0.5);
}

.cbp-categories-cards__card-name {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    text-align: center;
    opacity: 0;
    transition: opacity 0.25s ease;
}

.cbp-categories-cards__card:hover .cbp-categories-cards__card-name {
    opacity: 1;
}

/* Flèches : images arrowleft.png / arrowright.png (flèche déjà dans un cercle) */
.cbp-categories-cards__btn {
    flex-shrink: 0;
    width: 56px;
    height: 56px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.2s, opacity 0.2s;
}

.cbp-categories-cards__btn img {
    display: block;
    width: 56px;
    height: 56px;
    object-fit: contain;
}

.cbp-categories-cards__btn:hover {
    opacity: 0.9;
    transform: scale(1.08);
}

.cbp-categories-cards__btn:active {
    transform: scale(1);
}

.cbp-categories-cards__dots {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1rem;
}

/* Points : inactif = cercle blanc bordure grise, actif = bleu plein avec contour blanc */
.cbp-categories-cards__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid #d4d4d4;
    background: #fff;
    padding: 0;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, transform 0.2s;
}

.cbp-categories-cards__dot:hover {
    background: #f0f0f0;
    border-color: #bdbdbd;
    transform: scale(1.15);
}

.cbp-categories-cards__dot.is-active {
    background: #2196F3;
    border: 1px solid #fff;
    box-shadow: 0 0 0 1px #2196F3;
}

.cbp-categories-cards__dot.is-active:hover {
    transform: scale(1.15);
}

/* ==========================================================================
   Section LES PLUS VENDUS : même présentation que CATEGORIE DE PRODUITS
   ========================================================================== */

.cbp-best-sellers {
    font-family: 'Roboto', sans-serif;
    background: #f5f5f5;
    padding: 2rem 24px;
}

.cbp-best-sellers__inner {
    position: relative;
    max-width: var(--cbp-container-max, 1320px);
    margin: 0 auto;
    margin-top: 40px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
    padding: 1.5rem 24px 1.5rem;
}

.cbp-best-sellers #id-plus-vendus {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    margin-bottom: 0;
}

/* Bandeau titre (LES PLUS VENDUS) : texte centré (comme IMPRIMERIE) */
.cbp-best-sellers .title-image {
    text-align: center;
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    min-width: 295px;
}

.cbp-best-sellers__wrap {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 20px;
}

.cbp-best-sellers__track-wrap {
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

.cbp-best-sellers__track {
    display: flex;
    gap: 1rem;
    transition: transform 0.3s ease;
    will-change: transform;
}

/* Carte article : bordure bleu clair, coins arrondis, pas d’effet au survol */
.cbp-best-sellers__card {
    flex: 0 0 calc((100% - 2rem) / 3);
    min-width: 200px;
    display: flex;
    flex-direction: column;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid #ADD8E6;
    text-decoration: none;
    color: inherit;
    background: #fff;
}

.cbp-best-sellers__card:hover {
    border-color: #ADD8E6;
    box-shadow: none;
    color: inherit;
}

.cbp-best-sellers__card:hover .cbp-best-sellers__card-title,
.cbp-best-sellers__card:hover .cbp-best-sellers__card-price {
    color: inherit;
}

.cbp-best-sellers__card:hover .cbp-best-sellers__card-title {
    color: #333;
}

.cbp-best-sellers__card:hover .cbp-best-sellers__card-price {
    color: #000;
}

@media (min-width: 992px) {
    .cbp-best-sellers__card {
        flex: 0 0 calc((100% - 3rem) / 4);
    }
}

/* Image : occupe le haut de la carte, sans espace avec la bordure */
.cbp-best-sellers__card-img {
    display: block;
    background: #e8e8e8;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    line-height: 0;
}

.cbp-best-sellers__card-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    vertical-align: top;
}

/* Zone blanche : titre + prix, alignés à gauche */
.cbp-best-sellers__card-title {
    display: block;
    padding: 0.75rem 0.75rem 0.25rem;
    font-size: 0.875rem;
    font-weight: 400;
    line-height: 1.3;
    color: #333;
    text-align: left;
    background: #fff;
}

.cbp-best-sellers__card-price {
    display: block;
    padding: 0 0.75rem 0.75rem;
    font-size: 1rem;
    font-weight: 700;
    color: #000;
    text-align: left;
    background: #fff;
}

.cbp-best-sellers__card-price del {
    opacity: 0.7;
    font-weight: 500;
}

/* Flèches : cercle blanc, bordure gris clair, icône magenta (comme maquette) */
.cbp-best-sellers__btn {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    border: 1px solid #d4d4d4;
    background: #fff;
    color: #e91e63;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, color 0.2s, border-color 0.2s, transform 0.2s;
}

.cbp-best-sellers__btn:hover {
    background: #f5f5f5;
    border-color: #bdbdbd;
    color: #c2185b;
    transform: scale(1.08);
}

.cbp-best-sellers__btn:active {
    transform: scale(1);
}

.cbp-best-sellers__dots {
    display: flex;
    justify-content: center;
    gap: 0.5rem;
    margin-top: 1rem;
}

/* Points : inactif = cercle blanc bordure grise, actif = bleu plein avec contour blanc */
.cbp-best-sellers__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    border: 1px solid #d4d4d4;
    background: #fff;
    padding: 0;
    cursor: pointer;
    transition: background 0.2s, border-color 0.2s, transform 0.2s;
}

.cbp-best-sellers__dot:hover {
    background: #f0f0f0;
    border-color: #bdbdbd;
    transform: scale(1.15);
}

.cbp-best-sellers__dot.is-active {
    background: #2196F3;
    border: 1px solid #fff;
    box-shadow: 0 0 0 1px #2196F3;
}

.cbp-best-sellers__dot.is-active:hover {
    transform: scale(1.15);
}

.cbp-best-sellers__more {
    text-align: center;
    margin-top: 1rem;
}

.cbp-best-sellers__more a {
    color: #00bcd4 !important;
    text-decoration: underline;
    font-weight: 600;
}

.cbp-best-sellers__more a:hover {
    color: #0097a7 !important;
}

/* ==========================================================================
   Page Tous les produits : carousel « Explorez d'autres produits » (défilement auto)
   ========================================================================== */
.cbp-all-products-carousel {
    font-family: 'Roboto', sans-serif;
    margin-top: 3rem;
    margin-bottom: 2rem;
    padding: 0 0 1.5rem;
}

/* Titre de section : en dehors de la carte blanche, aligné à gauche */
.cbp-all-products-carousel__title {
    margin: 0 0 1rem;
    font-size: 1.125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #333;
    text-align: left;
}

/* Carte blanche : uniquement le carousel (pas le titre) */
.cbp-all-products-carousel__card {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
    padding: 1.5rem 24px 1.5rem;
}

.cbp-all-products-carousel__wrap {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.cbp-all-products-carousel .cbp-best-sellers__track-wrap {
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

.cbp-all-products-carousel .cbp-best-sellers__dots {
    margin-top: 0.75rem;
}

/* Flèches et points du carousel « Explorez d'autres produits » : charte graphique (bleu) */
.cbp-all-products-carousel .cbp-best-sellers__btn {
    border-color: var(--cbp-shop-toolbar-border, #90caf9);
    background: #fff;
    color: var(--cbp-shop-primary, #1976d2);
}
.cbp-all-products-carousel .cbp-best-sellers__btn:hover {
    background: var(--cbp-shop-toolbar-bg, #e3f2fd);
    border-color: var(--cbp-shop-primary, #1976d2);
    color: var(--cbp-shop-primary, #1976d2);
}
.cbp-all-products-carousel .cbp-best-sellers__dot {
    border-color: var(--cbp-shop-toolbar-border, #90caf9);
    background: #fff;
}
.cbp-all-products-carousel .cbp-best-sellers__dot:hover {
    background: var(--cbp-shop-toolbar-bg, #e3f2fd);
    border-color: var(--cbp-shop-primary, #1976d2);
}
.cbp-all-products-carousel .cbp-best-sellers__dot.is-active {
    background: var(--cbp-shop-primary, #1976d2);
    border-color: #fff;
    box-shadow: 0 0 0 1px var(--cbp-shop-primary, #1976d2);
}

/* ==========================================================================
   Section IMPRIMERIE : même design que LES PLUS VENDUS (carte blanche + bandeau titre bleu)
   ========================================================================== */

.cbp-imprimerie {
    font-family: 'Roboto', sans-serif;
    background: #f5f5f5;
    padding: 2rem 24px;
}

/* Page Imprimerie : réduire l'espace entre le hero et la section description (distance normale) */
body.cbp-imprimerie-page .cbp-shop-section {
    padding-bottom: 0.5rem;
}

body.cbp-imprimerie-page .cbp-imprimerie {
    padding-top: 0.75rem;
}

.cbp-imprimerie__inner {
    position: relative;
    max-width: var(--cbp-container-max, 1320px);
    margin: 0 auto;
    margin-top: 40px;
    padding: 1.5rem 24px 1.5rem;
    background: #fff;
    border-radius: 12px;
}

.cbp-imprimerie #id-imprimerie {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    margin-bottom: 0;
}

/* Bandeau titre (IMPRIMERIE) : texte centré */
.cbp-imprimerie .title-image {
    text-align: center;
    color: #fff;
    font-weight: 700;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    min-width: 295px;
}

.cbp-imprimerie__content {
    margin-top: 20px;
}

.cbp-imprimerie__items {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2rem 2.5rem;
}

.cbp-imprimerie__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: inherit;
    max-width: 180px;
}

.cbp-imprimerie__item:hover {
    color: inherit;
}

.cbp-imprimerie__item-circle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: #e8e8e8;
    overflow: hidden;
    flex-shrink: 0;
}

.cbp-imprimerie__item-circle img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cbp-imprimerie__item-label {
    display: block;
    margin-top: 1rem;
    font-size: 0.9375rem;
    font-weight: 400;
    color: #000;
    text-align: center;
    line-height: 1.3;
}

.cbp-imprimerie__item-desc {
    margin-top: 0.5rem;
    font-size: 0.875rem;
    color: #333;
    text-align: center;
    line-height: 1.4;
}

/* Page Imprimerie : pas de bandeau titre, bloc description + liste alternée */
.cbp-imprimerie--page .cbp-imprimerie__inner {
    margin-top: 0;
}

.cbp-imprimerie__intro {
    margin-bottom: 2rem;
    color: #333;
    font-size: 1rem;
    line-height: 1.6;
    text-align: left;
}

.cbp-imprimerie__intro p {
    margin: 0 0 1rem;
}

.cbp-imprimerie__intro p:last-child {
    margin-bottom: 0;
}

.cbp-imprimerie__list {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}

.cbp-imprimerie__row {
    display: flex;
    align-items: flex-start;
    gap: 2rem;
}

.cbp-imprimerie__row--left {
    flex-direction: row;
}

.cbp-imprimerie__row--right {
    flex-direction: row-reverse;
}

.cbp-imprimerie__row-icon {
    flex-shrink: 0;
}

.cbp-imprimerie__row-icon-link {
    text-decoration: none;
    color: inherit;
    display: block;
}

.cbp-imprimerie__row-circle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: #e8e8e8;
    overflow: hidden;
}

.cbp-imprimerie__row-circle img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cbp-imprimerie__row-text {
    flex: 1;
    min-width: 0;
}

.cbp-imprimerie__row-title-wrap {
    display: block;
    text-decoration: none;
    color: inherit;
}

.cbp-imprimerie__row-title {
    font-size: 1.125rem;
    font-weight: 700;
    color: #333;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    line-height: 1.2;
}

.cbp-imprimerie__row-desc {
    margin-top: 0.75rem;
    font-size: 0.9375rem;
    font-weight: 400;
    color: #333;
    line-height: 1.6;
}

.cbp-imprimerie__row-desc p {
    margin: 0 0 0.5rem;
}

.cbp-imprimerie__row-desc p:last-child {
    margin-bottom: 0;
}

/* Mobile : liste alternée page Imprimerie */
@media (max-width: 767px) {

    .cbp-imprimerie__row,
    .cbp-imprimerie__row--left,
    .cbp-imprimerie__row--right {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .cbp-imprimerie__row-text {
        text-align: center;
    }

    .cbp-imprimerie__row-circle {
        width: 120px;
        height: 120px;
    }
}

/* Mobile : un item par ligne (pleine largeur), empilés verticalement */
@media (max-width: 767px) {
    .cbp-imprimerie__items {
        flex-direction: column;
        align-items: center;
        gap: 2rem;
    }

    .cbp-imprimerie__item {
        max-width: 100%;
        width: 100%;
    }

    .cbp-imprimerie__item-circle {
        width: 120px;
        height: 120px;
    }

    .cbp-imprimerie__item-label {
        margin-top: 1rem;
    }
}

/* Hero Imprimerie : même format que le carousel, hauteur 295px, texte centré verticalement */
.cbp-shop-carousel--hero {
    min-height: 295px;
    height: 400px;
}

.cbp-shop-carousel--hero .cbp-shop-carousel__track,
.cbp-shop-carousel--hero .cbp-shop-carousel__slide {
    min-height: 295px;
    height: 400px;
}

.cbp-shop-carousel--hero .cbp-shop-carousel__slide-content {
    justify-content: center;
}

/* Titre hero Imprimerie : 2 lignes (SERVICES D'IMPRIMERIE / DE CBP - RICOH) */
.cbp-shop-carousel__title--hero {
    display: block;
}

.cbp-shop-carousel__title-line {
    display: block;
    line-height: 1.2;
}

.cbp-shop-carousel__title-line+.cbp-shop-carousel__title-line {
    margin-top: 0.25em;
}

.cbp-shop-carousel--hero .cbp-shop-carousel__controls {
    display: none;
}

/* ==========================================================================
   Page Contact CBP : fond, couleurs (éviter tout en noir)
   ========================================================================== */
body.cbp-contact-page,
body.cbp-contact-page #page,
body.cbp-contact-page .site,
body.cbp-contact-page #content,
body.cbp-contact-page .site-content,
body.cbp-contact-page #cbp-shop-page-wrap {
    background: #f5f5f5 !important;
}

body.cbp-contact-page .cbp-contact-page-wrap,
body.cbp-contact-page .cbp-contact-page-wrap * {
    color: #000000;
}

body.cbp-contact-page .cbp-contact-title-wrap {
    text-align: center;
    padding: 0 15px 24px;
}

body.cbp-contact-page .cbp-contact-title {
    color: #000000 !important;
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0;
    letter-spacing: 0.02em;
}

body.cbp-contact-page .cbp-contact-title,
body.cbp-contact-page .cbp-contact-block-title,
body.cbp-contact-page .cbp-contact-line,
body.cbp-contact-page .cbp-contact-hours {
    color: #000000 !important;
}

body.cbp-contact-page .site-footer,
body.cbp-contact-page .site-footer *,
body.cbp-contact-page footer,
body.cbp-contact-page footer *,
body.cbp-contact-page #colophon,
body.cbp-contact-page #colophon * {
    color: #000 !important;
}

/* ==========================================================================
   Page Contact CBP : fil d'Ariane « Accueil > Contact » sous le main header
   ========================================================================== */
.cbp-contact-page-wrap .cbp-breadcrumb-wrap {
    padding-left: 15px;
    padding-right: 15px;
}

.cbp-contact-page-wrap .cbp-breadcrumb {
    padding: 12px 0 16px;
    margin: 0;
    font-size: 14px;
    line-height: 1.4;
    color: #000000;
}

.cbp-contact-page-wrap .cbp-breadcrumb a {
    color: #000000;
    text-decoration: none;
}

.cbp-contact-page-wrap .cbp-breadcrumb a:hover {
    text-decoration: underline;
}

.cbp-contact-page-wrap .cbp-breadcrumb__sep {
    margin: 0 6px;
    color: #000000;
}

.cbp-contact-page-wrap .cbp-breadcrumb__current {
    color: #000000;
}

/* ==========================================================================
   Page Contact CBP : mise en page exacte (2 colonnes, formulaire / infos)
   ========================================================================== */
body.cbp-contact-page .cbp-contact-layout {
    max-width: var(--cbp-container-max, 1320px);
    margin: 0 auto;
    padding: 40px 15px 50px;
    background: #ffffff;
    border-radius: 8px;
    box-shadow: none;
}

body.cbp-contact-page .cbp-contact-inner {
    display: flex;
    flex-wrap: wrap;
    gap: 40px 60px;
    align-items: flex-start;
}

body.cbp-contact-page .cbp-contact-form-col {
    flex: 1 1 380px;
    min-width: 0;
    background: #ffffff;
    color: #000000;
}

body.cbp-contact-page .cbp-contact-info-col {
    flex: 1 1 380px;
    min-width: 0;
}

/* Formulaire : options BOUTIQUE / IMPRIMERIE en haut du formulaire (maquette) */
body.cbp-contact-page .cbp-contact-radios {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin-bottom: 18px;
}

body.cbp-contact-page .cbp-contact-radio {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #2c2c2c;
}

body.cbp-contact-page .cbp-contact-radio input {
    width: 18px;
    height: 18px;
    margin: 0;
    padding: 0;
    cursor: pointer;
    border: 2px solid #D1D1D1;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    border-radius: 50%;
    background: #ffffff;
    box-sizing: border-box;
}

body.cbp-contact-page .cbp-contact-radio input:checked {
    border-color: #D1D1D1;
    background: #00A6EA;
}

body.cbp-contact-page .cbp-contact-radio-label {
    user-select: none;
}

/* Champs formulaire : identique à la maquette – fond blanc, bordure #D1D1D1, radius 15px, espacement 18px */
body.cbp-contact-page .cbp-contact-field {
    margin-bottom: 18px;
}

body.cbp-contact-page .cbp-contact-form-col .cbp-contact-input,
body.cbp-contact-page .cbp-contact-form-col .cbp-contact-textarea,
body.cbp-contact-page .cbp-contact-input,
body.cbp-contact-page .cbp-contact-textarea {
    display: block;
    width: 100%;
    height: 43px;
    padding: 0 14px;
    font-size: 15px;
    font-family: inherit;
    color: #000000 !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    border: 1px solid #D1D1D1 !important;
    border-radius: 15px !important;
    box-sizing: border-box;
    -webkit-appearance: none;
    appearance: none;
}

body.cbp-contact-page .cbp-contact-form-col input::placeholder,
body.cbp-contact-page .cbp-contact-form-col textarea::placeholder,
body.cbp-contact-page .cbp-contact-input::placeholder,
body.cbp-contact-page .cbp-contact-textarea::placeholder {
    color: #333333 !important;
    opacity: 1;
}

body.cbp-contact-page .cbp-contact-form-col input::-webkit-input-placeholder,
body.cbp-contact-page .cbp-contact-form-col textarea::-webkit-input-placeholder {
    color: #333333 !important;
    opacity: 1;
}

body.cbp-contact-page .cbp-contact-form-col input::-moz-placeholder,
body.cbp-contact-page .cbp-contact-form-col textarea::-moz-placeholder {
    color: #333333 !important;
    opacity: 1;
}

body.cbp-contact-page .cbp-contact-form-col input:-ms-input-placeholder,
body.cbp-contact-page .cbp-contact-form-col textarea:-ms-input-placeholder {
    color: #333333 !important;
}

body.cbp-contact-page .cbp-contact-textarea {
    height: auto !important;
    min-height: 120px;
    padding: 12px 14px !important;
    resize: vertical;
}

body.cbp-contact-page .cbp-contact-error {
    margin-bottom: 12px;
    font-size: 14px;
    color: #c00;
}

/* Bouton Envoyer : pleine largeur, bleu #00A6EA, gras, même hauteur que les champs (maquette) */
body.cbp-contact-page .cbp-contact-submit-wrap {
    margin-top: 18px;
}

body.cbp-contact-page .cbp-contact-submit {
    display: block;
    width: 100%;
    height: 43px;
    padding: 0 24px;
    font-size: 16px;
    font-weight: 700;
    text-align: center;
    color: #ffffff;
    background: #00A6EA;
    border: none;
    border-radius: 15px !important;
    cursor: pointer;
    transition: background 0.2s ease;
}

body.cbp-contact-page .cbp-contact-submit:hover {
    background: #0095d6;
}

/* Blocs contact : BOUTIQUE CBP / IMPRIMERIE CBP-RICOH */
body.cbp-contact-page .cbp-contact-block {
    margin-bottom: 32px;
}

body.cbp-contact-page .cbp-contact-block-title {
    margin: 0 0 16px;
    font-size: 16px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: #000000;
}

body.cbp-contact-page .cbp-contact-line {
    margin: 0 0 10px;
    padding-left: 24px;
    font-size: 15px;
    line-height: 1.5;
    color: #000000;
    position: relative;
}

body.cbp-contact-page .cbp-contact-line .cbp-contact-icon {
    position: absolute;
    left: 0;
    top: 2px;
    width: 16px;
    height: 16px;
    background-color: #000000;
}

body.cbp-contact-page .cbp-contact-icon-pin {
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpath d='M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E") center/contain no-repeat;
}

body.cbp-contact-page .cbp-contact-icon-phone {
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M6.62 10.79c1.44 2.83 3.76 5.14 6.59 6.59l2.2-2.2c.27-.27.67-.36 1.02-.24 1.12.37 2.33.57 3.57.57.55 0 1 .45 1 1V20c0 .55-.45 1-1 1-9.39 0-17-7.61-17-17 0-.55.45-1 1-1h3.5c.55 0 1 .45 1 1 0 1.25.2 2.45.57 3.57z'/%3E%3C/svg%3E") center/contain no-repeat;
}

body.cbp-contact-page .cbp-contact-icon-envelope {
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M20 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E") center/contain no-repeat;
}

body.cbp-contact-page .cbp-contact-email {
    text-decoration: underline;
}

/* Bouton Voir la localisation : bleu, icône blanche */
body.cbp-contact-page .cbp-contact-btn-map {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    padding: 10px 18px;
    font-size: 15px;
    font-weight: 500;
    color: #ffffff !important;
    background: #00A2E8;
    border-radius: 4px;
    text-decoration: none;
    transition: background 0.2s ease;
}

body.cbp-contact-page .cbp-contact-btn-map:hover {
    background: #0090d0;
    color: #ffffff !important;
}

body.cbp-contact-page .cbp-contact-icon-map-btn {
    width: 18px;
    height: 18px;
    background-color: #fff;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zm0 9.5c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Horaires en bas de la colonne droite */
body.cbp-contact-page .cbp-contact-hours {
    margin: 24px 0 0;
    padding-left: 24px;
    font-size: 15px;
    line-height: 1.5;
    color: #555;
    position: relative;
}

body.cbp-contact-page .cbp-contact-icon-clock {
    position: absolute;
    left: 0;
    top: 2px;
    width: 16px;
    height: 16px;
    background-color: #555;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='currentColor'%3E%3Cpath d='M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z'/%3E%3C/svg%3E") center/contain no-repeat;
}

/* Surcharge finale : bordures, radius 15px et placeholders identiques à la maquette */
body.cbp-contact-page .cbp-contact-form-col input[type="text"],
body.cbp-contact-page .cbp-contact-form-col input[type="email"],
body.cbp-contact-page .cbp-contact-form-col input[type="tel"],
body.cbp-contact-page .cbp-contact-form-col textarea {
    color: #5a5a5a !important;
    background: #ffffff !important;
    background-color: #ffffff !important;
    border: 1px solid #D1D1D1 !important;
    border-radius: 15px !important;
    box-shadow: none !important;
    outline: none !important;
}

body.cbp-contact-page .cbp-contact-form-col input::placeholder,
body.cbp-contact-page .cbp-contact-form-col textarea::placeholder {
    color: #757575 !important;
    opacity: 1 !important;
}

body.cbp-contact-page .cbp-contact-form-col input::-webkit-input-placeholder,
body.cbp-contact-page .cbp-contact-form-col textarea::-webkit-input-placeholder {
    color: #757575 !important;
    opacity: 1 !important;
}

body.cbp-contact-page .cbp-contact-form-col input::-moz-placeholder,
body.cbp-contact-page .cbp-contact-form-col textarea::-moz-placeholder {
    color: #757575 !important;
    opacity: 1 !important;
}

body.cbp-contact-page .cbp-contact-radio-label {
    color: #2c2c2c !important;
}

@media (max-width: 768px) {
    body.cbp-contact-page .cbp-contact-inner {
        flex-direction: column;
    }

    body.cbp-contact-page .cbp-contact-form-col,
    body.cbp-contact-page .cbp-contact-info-col {
        flex: 1 1 100%;
    }
}

/* Formulaire contact : responsive mobile – champs plus grands, bouton visible, centré */
@media (max-width: 991px) {
    body.cbp-contact-page .container.cbp-contact-layout {
        width: 100%;
        max-width: 100%;
        margin-left: auto;
        margin-right: auto;
        padding-left: 16px;
        padding-right: 16px;
        box-sizing: border-box;
    }

    body.cbp-contact-page .cbp-contact-layout {
        padding: 24px 16px 100px;
    }

    body.cbp-contact-page .cbp-contact-inner {
        width: 100%;
        max-width: 100%;
    }

    body.cbp-contact-page .cbp-contact-form-col,
    body.cbp-contact-page .cbp-contact-info-col {
        width: 100%;
        max-width: 100%;
    }

    body.cbp-contact-page .cbp-contact-form-col .cbp-contact-input,
    body.cbp-contact-page .cbp-contact-input {
        min-height: 48px;
        height: 48px;
        padding: 14px 16px;
        font-size: 16px;
    }

    body.cbp-contact-page .cbp-contact-form-col .cbp-contact-textarea,
    body.cbp-contact-page .cbp-contact-textarea {
        min-height: 160px;
        height: auto !important;
        padding: 14px 16px !important;
        font-size: 16px;
    }

    body.cbp-contact-page .cbp-contact-field {
        margin-bottom: 22px;
    }

    body.cbp-contact-page .cbp-contact-submit-wrap {
        margin-top: 24px;
        margin-bottom: 20px;
    }

    body.cbp-contact-page .cbp-contact-submit {
        min-height: 52px;
        height: 52px;
        padding: 14px 24px;
        font-size: 17px;
    }

    body.cbp-contact-page .cbp-contact-radios {
        margin-bottom: 22px;
    }

    body.cbp-contact-page .cbp-contact-radio {
        font-size: 15px;
    }

    body.cbp-contact-page .cbp-contact-radio input {
        width: 22px;
        height: 22px;
    }
}

/* ==========================================================================
   Page fiche produit : charte graphique CBP (bleu, bouton Ajouter au panier)
   ========================================================================== */

/* Fiche produit avec header CBP : couleurs bleues, pas de noir */
body.cbp-shop-page.single-product .product_title,
body.cbp-shop-page.single-product .woocommerce-product-rating .woocommerce-review-link,
body.cbp-shop-page.single-product .availability,
body.cbp-shop-page.single-product .availability span,
body.cbp-shop-page.single-product .action-buttons a,
body.cbp-shop-page.single-product .action-buttons .feedback,
body.cbp-shop-page.single-product .entry-summary > div[itemprop="description"],
body.cbp-shop-page.single-product .woocommerce-product-details__short-description,
body.cbp-shop-page.single-product .price,
body.cbp-shop-page.single-product .price .amount,
body.cbp-shop-page.single-product .price ins,
body.cbp-shop-page.single-product .price del,
body.cbp-shop-page.single-product .price del .amount,
body.cbp-shop-page.single-product table.shop_attributes th,
body.cbp-shop-page.single-product table.shop_attributes td,
body.cbp-shop-page.single-product table.variations td.label,
body.cbp-shop-page.single-product table.variations td.label label,
body.cbp-shop-page.single-product .wc-tabs .wc-tab,
body.cbp-shop-page.single-product .loop-product-categories,
body.cbp-shop-page.single-product .loop-product-categories a,
body.cbp-shop-page.single-product .woocommerce-breadcrumb,
body.cbp-shop-page.single-product .woocommerce-breadcrumb a {
    color: var(--cbp-shop-primary, #1976d2) !important;
}

body.cbp-shop-page.single-product .product_title {
    color: var(--cbp-header-blue, #1a237e) !important;
    font-weight: 700;
}

/* Liens fiche produit : bleu, hover plus foncé */
body.cbp-shop-page.single-product a:hover,
body.cbp-shop-page.single-product .woocommerce-breadcrumb a:hover {
    color: var(--cbp-header-blue, #1a237e) !important;
}

/* Bouton "Ajouter au panier" : style CBP (bleu plein, blanc au hover si besoin) */
body.cbp-shop-page.single-product .single_add_to_cart_button,
body.cbp-shop-page.single-product .cart .button,
body.cbp-shop-page.single-product button[name="add-to-cart"],
body.cbp-shop-page.single-product .summary .single_add_to_cart_button {
    background-color: var(--cbp-shop-primary, #1976d2) !important;
    background: var(--cbp-shop-primary, #1976d2) !important;
    border-color: var(--cbp-shop-primary, #1976d2) !important;
    color: #fff !important;
    font-weight: 600;
    border-radius: 8px;
    padding: 0.65rem 1.25rem;
    transition: background 0.2s, border-color 0.2s, opacity 0.2s;
}

body.cbp-shop-page.single-product .single_add_to_cart_button:hover,
body.cbp-shop-page.single-product .cart .button:hover,
body.cbp-shop-page.single-product button[name="add-to-cart"]:hover {
    background-color: var(--cbp-header-blue, #1a237e) !important;
    background: var(--cbp-header-blue, #1a237e) !important;
    border-color: var(--cbp-header-blue, #1a237e) !important;
    color: #fff !important;
}

/* Quantité et sélecteur de variation */
body.cbp-shop-page.single-product .quantity input.qty,
body.cbp-shop-page.single-product .single_variation_wrap .quantity input,
body.cbp-shop-page.single-product table.variations select,
body.cbp-shop-page.single-product .variations select {
    border-color: var(--cbp-shop-toolbar-border, #90caf9);
    color: var(--cbp-shop-primary, #1976d2);
    border-radius: 6px;
}

body.cbp-shop-page.single-product .quantity input.qty:focus,
body.cbp-shop-page.single-product table.variations select:focus {
    border-color: var(--cbp-shop-primary, #1976d2);
    outline: none;
    box-shadow: 0 0 0 2px rgba(25, 118, 210, 0.2);
}

/* Onglets (Description, Avis, etc.) : actif en bleu */
body.cbp-shop-page.single-product .wc-tabs .wc-tab.active,
body.cbp-shop-page.single-product .wc-tabs .wc-tab:hover,
body.cbp-shop-page.single-product .electro-tabs .electro-tab.active a,
body.cbp-shop-page.single-product .electro-tabs .electro-tab a:hover {
    color: var(--cbp-shop-primary, #1976d2) !important;
    border-color: var(--cbp-shop-primary, #1976d2);
}

body.cbp-shop-page.single-product .wc-tabs .wc-tab a,
body.cbp-shop-page.single-product .electro-tabs .electro-tab a {
    color: var(--cbp-shop-primary-light, #42a5f5) !important;
}

/* Contenu des onglets */
body.cbp-shop-page.single-product #tab-description,
body.cbp-shop-page.single-product #tab-additional_information,
body.cbp-shop-page.single-product #tab-reviews,
body.cbp-shop-page.single-product .woocommerce-Tabs-panel {
    color: #333 !important;
}

body.cbp-shop-page.single-product .woocommerce-Tabs-panel a {
    color: var(--cbp-shop-primary, #1976d2) !important;
}

/* Fallback : fiche produit sans body cbp-shop-page (au cas où) : textes lisibles */
.single-product .product_title,
.single-product .woocommerce-product-rating .woocommerce-review-link,
.single-product .availability,
.single-product .availability span,
.single-product .action-buttons a,
.single-product .action-buttons .feedback,
.single-product .entry-summary > div[itemprop="description"],
.single-product .woocommerce-product-details__short-description,
.single-product .price,
.single-product .price del,
.single-product .price del .amount,
.single-product table.shop_attributes th,
.single-product table.shop_attributes td,
.single-product table.variations td.label,
.single-product table.variations td.label label,
.single-product .wc-tabs .wc-tab,
.single-product .loop-product-categories,
.single-product .loop-product-categories a {
    color: #000 !important;
}

/* ==========================================================================
   Mini-cart (dropdown "Your Cart") et page panier : textes en noir
   ========================================================================== */

.dropdown-menu-mini-cart,
.dropdown-menu-mini-cart .widget_shopping_cart,
.dropdown-menu-mini-cart .widget_shopping_cart_content,
.dropdown-menu-mini-cart .woocommerce-mini-cart,
.dropdown-menu-mini-cart .widget-title,
.dropdown-menu-mini-cart .product_list_widget li,
.dropdown-menu-mini-cart .product_list_widget a,
.dropdown-menu-mini-cart .product_list_widget .product-title,
.dropdown-menu-mini-cart .mini_cart_item,
.dropdown-menu-mini-cart .mini_cart_item a,
.dropdown-menu-mini-cart .quantity,
.dropdown-menu-mini-cart .quantity .amount,
.dropdown-menu-mini-cart dl.variation,
.dropdown-menu-mini-cart dl.variation dt,
.dropdown-menu-mini-cart dl.variation dd,
.dropdown-menu-mini-cart .woocommerce-mini-cart__empty-message,
.dropdown-menu-mini-cart p.buttons .wc-forward,
.dropdown-menu-mini-cart p.total,
.off-canvas-cart .dropdown-menu-mini-cart .widget-title,
.off-canvas-cart .dropdown-menu-mini-cart .product_list_widget,
.off-canvas-cart .dropdown-menu-mini-cart .mini_cart_item,
.off-canvas-cart .dropdown-menu-mini-cart .quantity .amount {
    color: #000 !important;
}

/* Panier latéral "Your Cart" (off-canvas) : tout le texte en noir, priorité max */
#off-canvas-cart-summary,
#off-canvas-cart-summary .off-canvas-cart__header .section-title,
#off-canvas-cart-summary .widget_shopping_cart,
#off-canvas-cart-summary .widget_shopping_cart_content,
#off-canvas-cart-summary .woocommerce-mini-cart,
#off-canvas-cart-summary .cart-product-list,
#off-canvas-cart-summary .product_list_widget li,
#off-canvas-cart-summary .product_list_widget a,
#off-canvas-cart-summary .product_list_widget .product-title,
#off-canvas-cart-summary .mini_cart_item,
#off-canvas-cart-summary .mini_cart_item a,
#off-canvas-cart-summary .quantity,
#off-canvas-cart-summary .quantity .amount,
#off-canvas-cart-summary dl.variation,
#off-canvas-cart-summary .woocommerce-mini-cart__total,
#off-canvas-cart-summary .woocommerce-mini-cart__buttons a,
#off-canvas-cart-summary .woocommerce-mini-cart__buttons .button,
#off-canvas-cart-summary .woocommerce-mini-cart__buttons .wc-forward,
#off-canvas-cart-summary .woocommerce-mini-cart__buttons .checkout-button,
#off-canvas-cart-summary p.buttons a,
#off-canvas-cart-summary p.buttons .button {
    color: #000 !important;
}

/* Icône supprimer (poubelle) dans le panier : noir */
#off-canvas-cart-summary .mini_cart_item .remove {
    color: #000 !important;
}

/* Fallback : tout le texte du panier latéral en noir */
#off-canvas-cart-summary,
#off-canvas-cart-summary * {
    color: #000 !important;
}

/* View cart, Continue shopping, Checkout (mini-cart / dropdown) */
.dropdown-menu-mini-cart p.buttons a.wc-forward,
.dropdown-menu-mini-cart p.buttons .wc-forward,
.dropdown-menu-mini-cart .woocommerce-mini-cart__buttons a,
.dropdown-menu-mini-cart .woocommerce-mini-cart__buttons .wc-forward,
.dropdown-menu-mini-cart .woocommerce-mini-cart__buttons .checkout-button,
.off-canvas-cart .dropdown-menu-mini-cart p.buttons a,
.off-canvas-cart .dropdown-menu-mini-cart p.buttons .wc-forward {
    color: #000 !important;
}

/* ==========================================================================
   Page panier : on utilise le tableau et le total panier d'Electro (pas de surcharge CBP)
   ========================================================================== */

/* ==========================================================================
   Checkout et Commande reçue : marges pour ne pas coller le texte aux bords
   ========================================================================== */

body.cbp-shop-page.woocommerce-checkout .site-content .col-full,
body.cbp-shop-page.woocommerce-order-received .site-content .col-full {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    box-sizing: border-box;
}

@media (min-width: 768px) {
    body.cbp-shop-page.woocommerce-checkout .site-content .col-full,
    body.cbp-shop-page.woocommerce-order-received .site-content .col-full {
        padding-left: 2rem;
        padding-right: 2rem;
    }
}

/* Contenu checkout : un peu d’espace en haut */
body.cbp-shop-page.woocommerce-checkout .woocommerce {
    padding-top: 0.5rem;
}

/* Page Commande reçue : contenu centré */
body.cbp-shop-page.woocommerce-order-received .woocommerce {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
    padding-top: 1.5rem;
    padding-bottom: 2rem;
}

/* Fond discret pour que la carte ressort */
body.cbp-shop-page.woocommerce-order-received .site-content {
    background: #f5f5f5;
}

/* Carte blanche : toutes les infos Commande reçue dedans */
body.cbp-shop-page.woocommerce-order-received .woocommerce-order {
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(0, 0, 0, 0.06);
    padding: 2rem;
}

body.cbp-shop-page.woocommerce-order-received .woocommerce-order h1 {
    color: var(--cbp-header-blue, #1a237e);
    font-size: 1.75rem;
    margin-bottom: 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 2px solid var(--cbp-shop-primary, #1976d2);
}

body.cbp-shop-page.woocommerce-order-received .woocommerce-thankyou-order-received {
    margin-bottom: 1.25rem;
    color: #37474f;
}

body.cbp-shop-page.woocommerce-order-received .woocommerce-order-overview {
    padding: 1rem 0;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08);
}

body.cbp-shop-page.woocommerce-order-received .woocommerce-order-details {
    margin-top: 1rem;
}

body.cbp-shop-page.woocommerce-order-received .woocommerce-order-details h2 {
    color: var(--cbp-header-blue, #1a237e);
    font-size: 1.125rem;
    margin-top: 1.25rem;
    margin-bottom: 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--cbp-shop-primary, #1976d2);
}

body.cbp-shop-page.woocommerce-order-received .woocommerce-table--order-details {
    margin-top: 0.5rem;
}

body.cbp-shop-page.woocommerce-order-received .woocommerce-order .button {
    background: var(--cbp-shop-primary, #1976d2) !important;
    color: #fff !important;
    border: none;
    border-radius: 8px;
    padding: 0.6rem 1.25rem;
}

body.cbp-shop-page.woocommerce-order-received .woocommerce-order .button:hover {
    background: var(--cbp-header-blue, #1a237e) !important;
    color: #fff !important;
}

@media (max-width: 767px) {
    body.cbp-shop-page.woocommerce-order-received .woocommerce-order {
        padding: 1.25rem;
    }
}

/* ============================================================================
   STYLE DU BADGE reCAPTCHA v3 - MODE COMPACT
   ============================================================================ */

.grecaptcha-badge {
    width: 70px !important;
    height: 60px !important;
    overflow: hidden !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    transition: all 0.3s ease !important;
    opacity: 0.8 !important;
    position: fixed !important;
    bottom: 20px !important;
    right: 20px !important;
    left: auto !important;
    top: auto !important;
    z-index: 9999 !important;
    pointer-events: auto !important;
}

.grecaptcha-badge:hover {
    width: 256px !important;
    opacity: 1 !important;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.2) !important;
}

.grecaptcha-badge iframe,
.grecaptcha-badge > div {
    width: 70px !important;
    overflow: hidden !important;
    transition: width 0.3s ease !important;
}

.grecaptcha-badge:hover iframe,
.grecaptcha-badge:hover > div {
    width: 256px !important;
}

/* Responsive reCAPTCHA badge */
@media (max-width: 1024px) {
    .grecaptcha-badge {
        width: 60px !important;
        height: 50px !important;
        bottom: 15px !important;
        right: 15px !important;
    }

    .grecaptcha-badge:hover {
        width: 200px !important;
    }
}

@media (max-width: 768px) {
    .grecaptcha-badge {
        width: 50px !important;
        height: 40px !important;
        bottom: 10px !important;
        right: 10px !important;
    }

    .grecaptcha-badge:hover {
        width: 180px !important;
    }
}

@media (max-width: 480px) {
    .grecaptcha-badge {
        width: 40px !important;
        height: 35px !important;
        bottom: 5px !important;
        right: 5px !important;
    }
}

@media print {
    .grecaptcha-badge {
        display: none !important;
    }
}

/* Section Mentions légales (footer) */
.mentions-legales-section {
    background: #37393f;
    color: #fff;
    padding: 16px 0;
    font-size: 14px;
}

.mentions-legales-section .mention-legal {
    margin: 0;
    color: #fff;
}

.mentions-legales-section .legal-links {
    text-align: right;
}

@media (max-width: 767px) {
    .mentions-legales-section .legal-links {
        text-align: left;
        margin-top: 8px;
    }
}

.mentions-legales-section .legalLink {
    color: #fff !important;
    text-decoration: none;
    margin: 0 6px;
}

.mentions-legales-section .legalLink:hover {
    text-decoration: underline;
    color: #fff !important;
}

.mentions-legales-section .legalLink.separator {
    margin: 0 4px;
    pointer-events: none;
}

/* Modales Mentions / Politique */
.bl-carde .ment-leg {
    font-weight: 700;
    font-size: 1.5rem;
}

.bl-carde .ment1 { color: #333; }
.bl-carde .ment2 { color: #00a6ea; }

.bl-carde .bl-card-text01 {
    color: #333;
    line-height: 1.6;
}

.modal-fullscreen .bl-retour {
    cursor: pointer;
}

/* Affichage des modales Politique / Mentions (Bootstrap ou fallback JS) */
#polileg.modal.show,
#mentleg.modal.show {
    display: block !important;
    opacity: 1;
}

#polileg .modal-dialog,
#mentleg .modal-dialog {
    margin: 0;
    max-width: 100%;
}

#polileg .modal-content,
#mentleg .modal-content {
    min-height: 100vh;
    border: none;
    border-radius: 0;
}

#polileg .modal-body,
#mentleg .modal-body {
    background: #f5f5f5;
}

.modal-backdrop.fade.show {
    position: fixed;
    inset: 0;
    z-index: 1040;
    background-color: #000;
    opacity: 0.5;
}

#polileg,
#mentleg {
    z-index: 1050;
}