:root {
  --bg-container: #ffffff; /* Fond du conteneur global */
  --row-bg: #ffffff;
  --text-primary: #2d3748;
  --text-secondary: #6b7280;
  --price-color: #1e4e8c;
  --subtle: #e6ecf5;
  --radius: 8px;
  --shadow: 0 8px 20px rgba(0, 0, 0, 0.04);
  --spacing: 12px;
  --transition: 0.2s ease;
}

/* Correction pour aligner le bloc de prix avec le titre et la description */
.product_price {
  /* Supprimez les styles d'encapsulation pour que le contenu puisse s'aligner naturellement */
  background: transparent;
  padding: 0;
  border-radius: 0;
  box-shadow: none;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color: var(--text-primary);
  margin-bottom: 16px;
  box-sizing: border-box;
  width: 100%;
}

/* Table : structure de base */
.product_price table.table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 10px;
  background: transparent;
  font-size: 0.95rem;
  margin: 0;
  padding: 0;
}

/* Ligne : style "carte" légère */
.product_price table.table tr {
  display: table-row;
  background: var(--row-bg);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
  padding: 0;
  overflow: hidden;
  box-sizing: border-box;
}

/* Cellules : pas de séparation visuelle forte entre colonnes */
.product_price table.table td {
  padding: 10px 14px;
  vertical-align: middle;
  white-space: nowrap;
  font-weight: 500;
  position: relative;
  border: none;
  background: transparent;
}

/* Label */
.product_price table.table td:first-child {
  text-align: left;
  color: var(--text-secondary);
  font-size: 0.8rem;
  padding-right: 8px;
}

/* Valeur */
.o_price_align_right {
  text-align: right !important;
  font-weight: 600;
  color: var(--price-color);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Ancien prix (list_price) */
.product_price .old_price {
  text-decoration: line-through;
  color: #9ea7b8;
  font-weight: 400;
  margin-right: 4px;
}

/* Prix final mis en avant (ex : TTC) */
.product_price .final-price {
  font-size: 1.1rem;
  color: var(--price-color);
}

/* --- RESPONSIVE MOBILE : corrections spécifiques pour mobile --- */
@media (max-width: 767.98px) {
  /* Réinitialise les styles du conteneur de prix sur mobile */
  .product_price {
    padding: 0;
    margin: 0; /* Assure que le bloc de prix est collé à gauche */
  }

  /* Assure que la table utilise toute la largeur disponible */
  .product_price table.table {
    width: 100%;
    /* Utilise display: flex pour un meilleur alignement des cartes de prix */
  }

  /* Chaque ligne de prix devient une carte flexible */
  .product_price table.table tr {
    display: flex;
    flex-direction: row;
    justify-content: space-between; /* Distribue l'espace entre le label et la valeur */
    align-items: center;
    width: 100%; /* Important : assure que chaque carte s'étend sur toute la largeur */
    margin-bottom: 12px;
    padding: 12px 10px;
    border-radius: 10px;
    box-shadow: 0 6px 18px rgba(0,0,0,0.03);
    box-sizing: border-box;
  }

  /* Les cellules à l'intérieur de la carte */
  .product_price table.table td {
    display: block;
    padding: 0;
    white-space: normal;
    font-size: 0.9rem;
    flex-grow: 0;
    width: auto;
  }

  /* Le label prend tout l'espace disponible */
  .product_price table.table td:first-child {
    text-align: left;
    flex-grow: 1; 
    font-size: 0.85rem;
    margin-right: 10px;
  }

  /* La valeur de prix est alignée à droite */
  .product_price table.table td:last-child {
    text-align: right;
    font-size: 1rem;
    color: var(--price-color);
    white-space: nowrap;
  }
}

.price_muted{
  font-size: larger;
  text-decoration: line-through;
  font-weight: bold;
}

.promo_badge{
  background-color: #a10d0d;
  color: #fff;
  margin-left: 10px;
  padding: 0.5em;
}