.pp-title {
  font-size: 28px;
  color: #545859;
  margin-right: 5px;
}

/* Bootstrap (bootstrap-grid.min.css) définit .d-flex avec !important, ce qui
   écrase [hidden]{display:none} (sans !important) dès qu'un élément cumule
   les deux — cas des lignes de prix masquées dynamiquement en JS
   (élément.hidden = true) qui portent aussi la classe d-flex pour leur mise
   en page. Sans cette règle, ces lignes restent visibles malgré l'attribut
   hidden posé correctement par product.js. */
#pp-marking-price-row[hidden],
#pp-product-total-row[hidden],
#pp-marking-total-row[hidden] {
  display: none !important;
}

.ref {
  text-transform: uppercase;
  font-size: 14px;
  color: #949494;
}

.pp-video {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  margin-top: var(--s-3);
}
.pp-video iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.pp-qte-hint {
  margin: 2px 0;
  font-size: 13px;
}

.pp-tiers {
  margin-bottom: 1.25rem;
}

.pp-tier-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.85rem;
}

.pp-tier-table th,
.pp-tier-table td {
  padding: 0.4rem 0.75rem;
  border-bottom: 1px solid #e5e7eb;
  text-align: left;
}

.pp-tier-table th {
  background: #f3f4f6;
  font-weight: 600;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: #6b7280;
}

.pp-tier-table tbody tr:last-child td {
  border-bottom: none;
}

.pp-tier-table tbody tr:hover td {
  background: #f9fafb;
}

.pp-block-title {
  font-size: 16px;
  width: 110px;
  flex-shrink: 0;
  margin-right: 5px;
}

/* Bloc "titre + select" (Matière/Coloris via .pp-dim, Marquage/Option de
   marquage via .pp-select-row) : le titre garde une largeur fixe
   (.pp-block-title, 110px) et le select occupe le reste de la ligne, au
   lieu de passer à la ligne suivante en pleine largeur. */
.pp-dim,
.pp-select-row:not([hidden]) {
  display: flex;
  align-items: center;
  margin: 15px 0;
}
.pp-dim-row,
.select-wrapper {
  display: flex;
  align-items: center;
  flex: 1;
  min-width: 0;
}
.pp-dim-row .select,
.select-wrapper .select {
  width: 100%;
  /* Le texte des options de marquage peut être plus long que Matière/
     Coloris : au lieu d'élargir le select (ce qui le fait passer à la
     ligne), on tronque avec des points de suspension. */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  /* Un <select> natif garde un rendu géré par le navigateur (chrome interne,
     flèche) qui ignore en partie height/padding/box-sizing selon les
     navigateurs, d'où un gabarit différent d'un select aplati
     (select--single-option) ou d'un input. On neutralise ce rendu natif
     avec appearance:none + une flèche dessinée à la main, pour que TOUS les
     select (avec ou sans options multiples) aient exactement le même
     gabarit que les champs input. */
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23545859' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 12px 8px;
  height: 35px;
  padding: 0.375rem 1.75rem 0.375rem 0.75rem;
  line-height: 1.5;
  box-sizing: border-box;
}

.select--single-option {
  background-image: none;
  pointer-events: none;
}

.label-variation {
  padding: 0.5rem 1rem 0.5rem 0rem;
  margin-bottom: 0;
  border-bottom: 1px solid #e4e4e4;
  background-color: rgba(0, 0, 0, 0);
  font-size: 17px;
  color: #99c221;
}

.reassurance-product {
  background-color: #c5c5c5;
  padding: 21px;
  border-radius: 14px;
  margin-top: 15px;
  color: #fff;
  a {
    color: #545859;
  }
}

.ico-page-product {
  width: 25px;
  margin-right: 15px;
}

.pp-tabs-wrap {
  box-shadow: 0 2px 6px 0 #d4d4d4;
  margin: 30px 0px;
}

.pp-tabs {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.25rem;
  border-bottom: 2px solid #e5e7eb;
  overflow-x: auto;
  scrollbar-width: none;
}

.pp-tabs::-webkit-scrollbar {
  display: none;
}

.pp-tab {
  background: none;
  border: none;
  padding: 0.6rem 1.1rem;
  font-size: 16px;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  white-space: nowrap;
  text-align: center;
  transition:
    color 0.15s,
    border-color 0.15s;
  width: 100%;
}

.pp-tab.is-active,
.pp-tab:hover {
  color: #1e2d5e;
  border-bottom: 4px solid #99c221;
  font-weight: bold;
}

.pp-tab-panel {
  display: none;
  padding: 40px;
  .pp-prose {
    line-height: 1.5;
  }
}

.pp-tab-panel.is-active {
  display: block;
}

.pp-prose {
  line-height: 1.75;
  color: #374151;
}

.table-responsive {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.table {
  width: 100%;
  margin-bottom: 1rem;
  color: #212529;
  vertical-align: top;
  border-color: #dee2e6;
  border-collapse: collapse;
}

.table > :not(caption) > * > * {
  padding: 0.5rem 0.5rem;
  border-bottom: 1px solid #dee2e6;
}

.table > thead {
  vertical-align: bottom;
  border-bottom: 2px solid #dee2e6;
}

.table > thead th {
  font-weight: 600;
}

.table > tbody th {
  text-align: left;
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
  background-color: rgba(0, 0, 0, 0.03);
}

.table-bordered > :not(caption) > * {
  border-width: 1px 0;
}

.table-bordered > :not(caption) > * > * {
  border-width: 0 1px;
  border-color: #dee2e6;
}

.qty__btn {
  width: 40px;
  height: 44px;
  border: none;
  background: none;
  font-size: 1.25rem;
  cursor: pointer;
  color: #374151;
}
