:root {
  --main: #8e4e2a !important;
  --main-dark: #6f3c21 !important;
  --main-light: #b06a40 !important;

  --bs-primary: var(--main) !important;
  --bs-link-color: var(--main) !important;
  --bs-link-hover-color: var(--main-dark) !important;
  --main-brown: var(--main);
}

/* ===== Boutons principaux ===== */
.btn-primary,
button.btn-primary,
input.btn-primary,
a.btn-primary {
  background: var(--main) !important;
  border: none !important;
  color: #fff !important;
  box-shadow: none !important;
  background-image: none !important;
  --bs-gradient: none !important;
  transition: background 0.3s ease;
}

.btn-primary:hover,
button.btn-primary:hover,
input.btn-primary:hover,
a.btn-primary:hover {
  background: var(--main-dark) !important;
  color: #fff !important;
}

/* Boutons outline-primary */
.btn-outline-primary,
button.btn-outline-primary,
input.btn-outline-primary,
a.btn-outline-primary,
a.btn.btn-outline-primary.btn-with-icon {
  color: var(--main) !important;
  border: 2px solid var(--main) !important;
  background-color: transparent !important;
  box-shadow: none !important;
  background-image: none !important;
  --bs-gradient: none !important;
  transition: all 0.3s ease;
}

.btn-outline-primary:hover,
button.btn-outline-primary:hover,
input.btn-outline-primary:hover,
a.btn-outline-primary:hover,
a.btn.btn-outline-primary.btn-with-icon:hover {
  color: #fff !important;
  background-color: var(--main) !important;
  border-color: var(--main) !important;
}

/* ===== Liens globaux ===== */
a {
  color: var(--main) !important;
}

a:hover {
  color: var(--main-dark) !important;
}

/* ===== Titres & catégories ===== */
h1.page-title-section,
.page-title-section,
.category-name,
.category-title,
.product-title a,
#category-description,
#category-description * {
  color: var(--main) !important;
}

/* ===== Cart / badges / pourcentages ===== */
.cart-products-count,
.discount-percentage,
.product-flag,
.custom-radio input[type="radio"]:checked + span,
.custom-checkbox input[type="checkbox"]:checked + span,
.page-item.active .page-link {
  background: var(--main) !important;
  border-color: var(--main) !important;
  color: #fff !important;
  box-shadow: none !important;
}

/* ===== Cart summary remove icon ===== */
.cart-summary .remove-from-cart::before,
.cart-summary .js-remove-from-cart::before {
  color: var(--main) !important;
  transition: color 0.2s ease, transform 0.2s ease;
}

.cart-summary .remove-from-cart:hover::before,
.cart-summary .js-remove-from-cart:hover::before {
  color: var(--main-dark) !important;
}

/* ===== Images / hover ===== */
.home-categories-block img {
  border-radius: 10px;
  transition: 0.3s;
}

.home-categories-block img:hover {
  transform: scale(1.05);
}

/* ===== Navigation ===== */
.main-nav a,
.header-menu a,
.mobile-menu a {
  color: var(--main) !important;
}

.main-nav a:hover,
.header-menu a:hover,
.mobile-menu a:hover {
  color: var(--main-dark) !important;
}

/* ===== Footer ===== */
footer,
footer * {
  color: #8c663d !important;
}

footer a {
  color: #8c663d !important;
}

footer a:hover,
footer a:focus,
footer a:active {
  color: var(--main) !important;
}

/* ===== Boutons et cartes spécifiques ===== */
.address.card.selected,
.address.card:hover,
button.btn.btn-outline-primary.btn-with-icon.js-back {
  border-color: var(--main) !important;
  background-color: transparent !important;
  box-shadow: none !important;
}


/* Assurer que l'image mobile occupe toute la largeur du mobile */
@media (max-width: 768px) {
    a.banner picture img,
    a.banner picture source {
        width: 100% !important;
        height: auto !important;
        display: block;
    }
}

/* Masquer le compteur “Affichage X de Y” */
.pagination-container .pagination-number {
    display: none;
}

/* Faire occuper toute la largeur restante à la liste de pagination */
.pagination-container .pagination-list-container {
    flex: 1 1 100%;
    justify-content: center; /* ou start / end selon ton design */
}

/* ===== Bloc texte personnalisé - vintage et responsive ===== */

/* Styles généraux (desktop) */
#custom-text,
#custom-text * {
    font-family: "Palatino Linotype", Palatino, Times, serif !important; /* Police vintage */
    font-size: 40px !important;       /* Taille desktop - à modifier si besoin */
    line-height: 1.6 !important;      /* Interligne desktop */
    letter-spacing: 0.5px !important; /* Espacement lettres classique */
    text-align: center;               /* Centre le texte horizontalement */
}

/* Styles pour petits écrans (mobile) */
@media (max-width: 767px) {
    #custom-text,
    #custom-text * {
        font-size: 24px !important;   /* Taille mobile plus petite */
        line-height: 1.3 !important;  /* Interligne plus compact */
        letter-spacing: 0.4px !important; /* Ajustement léger des lettres */
    }
}

.info-image-container {
  display: inline-block;
  margin-left: 8px;
  cursor: pointer;
  vertical-align: middle;
}

.dynamic-popup {
  position: fixed;
  display: none;
  z-index: 99999;
  background: #fff;
  border: 1px solid #ccc;
  padding: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,.25);
  max-width: 350px;
}

.dynamic-popup img {
  width: 100%;
  height: auto;
  display: block;
}

/* Recentrer le contenu si la colonne gauche est vide */

    /* Supprimer la colonne gauche */
    #left-column {
        display: none !important;
    }

    /* Étendre le contenu central */
    #content-wrapper,
    #center-column,
    .wrapper__content,
    .col-md-8,
    .col-lg-9 {
        width: 100% !important;
        max-width: 100% !important;
        flex: 0 0 100% !important;
    }

@media (min-width: 992px) {
  .carousel-item,
  .carousel-inner {
    height: auto !important;
  }
}

/* ===== BANDEAU PROCESSUS ===== */

.visuel {
  max-width: 1134px;
  width: 100%;
  margin: 0 auto 50px;
  background: #fff;
  border: 1px solid #ddd;
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 20px;
}

/* ---------------- ZONES ---------------- */

.visuel .zone-haut {
  text-align: center;
  font-size: 28px;
  font-weight: bold;
  color: #8e4e2a;
}

.visuel .zone-centre {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 15px;
}

.visuel .step {
  width: 210px;
  text-align: center;
}

/* ---------------- BULLE ---------------- */

.visuel .bubble {
  width: 44px;
  height: 44px;
  margin: 0 auto 10px;
  background: #8e4e2a;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  font-size: 18px;
}

/* ---------------- TEXTE ---------------- */

.visuel .step p {
  font-size: 13px;
  line-height: 1.3;
  margin: 0 0 10px;
  color: #8e4e2a;
}

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

/* ---------------- FLÈCHES ---------------- */

.visuel .arrow {
  font-size: 28px;
  color: #8e4e2a;
}

/* ---------------- BAS ---------------- */

.visuel .zone-bas {
  text-align: center;
  font-size: 16px;
  font-weight: bold;
  color: #8e4e2a;
}

/* ================= RESPONSIVE ================= */

@media (max-width: 900px) {

  .visuel .zone-centre {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 25px 20px;
  }

  .visuel .step {
    width: 100%;
  }

  .visuel .arrow {
    display: none;
  }
}

/* Desktop uniquement : éviter le recouvrement du carrousel */
@media (min-width: 992px) {
  .page-home .visuel {
    margin-top: 50px;
  }
}

/* ---------- TAILLES TITRE ---------- */

.visuel .zone-haut {
  font-size: 30px;
}

/* Mobile */
@media (max-width: 767px) {
  .visuel .zone-haut {
    font-size: 23px;
  }
}

/* Desktop */
@media (min-width: 992px) {
  .visuel .zone-haut {
    font-size: 38px;
  }
}

/* ---------- TAILLES TEXTE BAS ---------- */

.visuel .zone-bas {
  font-size: 17px;
}

/* Tablette */
@media (min-width: 768px) {
  .visuel .zone-bas {
    font-size: 24px;
  }
}

/* Desktop */
@media (min-width: 992px) {
  .visuel .zone-bas {
    font-size: 26px;
  }
}

/* ---------- ANIMATIONS ---------- */

.visuel .zone-haut,
.visuel .zone-bas {
  opacity: 0;
  transform: translateY(10px);
  animation: fadeUpVisuel 0.8s forwards;
}

.visuel .zone-bas {
  animation-delay: 0.3s;
}

@keyframes fadeUpVisuel {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* ---------- CADRE ---------- */

.visuel {
  border: 1px solid #8e4e2a;
  border-radius: 10px;
}

/* ---------- HOVER ---------- */

.visuel:hover .zone-haut,
.visuel:hover .zone-bas {
  transform: scale(1.03);
  transition: transform 0.3s ease;
}

/* ---------- TABLETTE ---------- */

@media (max-width: 991px) {
  .visuel {
    max-width: 720px;
    margin: 0 auto 30px;
    padding: 15px;
  }
}

/* ---------- MOBILE ---------- */

@media (max-width: 767px) {
  .visuel {
    max-width: 90%;
    margin: 0 auto 20px;
    padding: 10px;
  }
}

/* ---------- TEXTE DES ÉTAPES ---------- */

.visuel .step p {
  font-size: 21px;
  line-height: 1.4;
}

/* Mobile */
@media (max-width: 767px) {
  .visuel .step p {
    font-size: 13px;
  }
}

/* Desktop */
@media (min-width: 992px) {
  .visuel .step p {
    font-size: 16px;
  }
}

/* ---------- DÉCOR TITRE ---------- */

.visuel .zone-haut {
  position: relative;
  display: inline-block;
  padding-bottom: 10px;
}

.visuel .zone-haut::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: 0;
  transform: translateX(-50%);
  width: 160px;
  height: 1px;
  background-color: #8e4e2a;
  border-radius: 2px;
}

/* ---------- DÉCOR TEXTE BAS ---------- */

.visuel .zone-bas {
  position: relative;
  display: inline-block;
  padding-top: 12px;
}

.visuel .zone-bas::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 160px;
  height: 1px;
  background-color: #8e4e2a;
  border-radius: 2px;
}

/* ---------- MOBILE GRILLE ---------- */

@media (max-width: 767px) {

  .visuel .zone-centre {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px 20px;
  }

  .visuel .step {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    min-height: 180px;
    box-sizing: border-box;
  }

  .visuel .step img {
    max-height: 100px;
    object-fit: contain;
  }
}

/* ---------- OMBRE ---------- */

.visuel {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

/* ---------- espacement du visuel du carrousel ---------- */

@media (max-width: 991px) {
  .home-spacer {
    height: 30px; /* tablette */
  }
}

@media (max-width: 767px) {
  .home-spacer {
    height: 25px; /* mobile */
  }
}

.category-product-count,
.total-products,
#js-product-list-top .total-products {
    display: none !important;
}

