/* ==========================================================================
   KM Product Main — Section 1 fiche produit
   ========================================================================== */

:root {
  --pm-gold: #BE9D68;
  --pm-gold-light: #f9f7f4;
  --pm-gold-border: #e5ddd3;
  --pm-dark: #262626;
  --pm-grey: #4d4d4d;
  --pm-grey-light: #999;
  --pm-white: #fff;
  --pm-radius: 8px;
  --pm-radius-sm: 4px;
  --pm-gap: 40px;
  --pm-font: 'Lato', sans-serif;
  --pm-font-title: 'arca majora 3', sans-serif;
}

/* Layout principal
   ========================================================================== */

.km-pm {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: var(--pm-gap) !important;
  align-items: start !important;
  margin: 0 auto !important;
  font-family: var(--pm-font) !important;
  color: var(--pm-dark) !important;
  padding: 0 !important;
}

/* ==========================================================================
   Galerie
   ========================================================================== */

.km-pm__gallery {
  position: sticky !important;
  top: 20px !important;
}

.km-pm__gallery-main {
  position: relative !important;
  border-radius: var(--pm-radius) !important;
  overflow: hidden !important;
  background: #f5f5f5 !important;
  cursor: pointer !important;
}

.km-pm__gallery-main-img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  transition: opacity 0.25s ease !important;
}

.km-pm__gallery-main-img.is-switching {
  opacity: 0.5 !important;
}

.km-pm__gallery-zoom {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  width: 52px !important;
  height: 52px !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.9) !important;
  border: none !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--pm-grey) !important;
  transition: background 0.2s, color 0.2s !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1) !important;
}

.km-pm__gallery-zoom:hover {
  background: var(--pm-white) !important;
  color: var(--pm-dark) !important;
}

/* Thumbnails */

.km-pm__gallery-thumbs {
  display: flex !important;
  gap: 8px !important;
  margin-top: 12px !important;
  overflow-x: auto !important;
  scrollbar-width: thin !important;
  padding-bottom: 4px !important;
}

.km-pm__gallery-thumb {
  flex: 0 0 auto !important;
  width: 72px !important;
  height: 72px !important;
  border-radius: var(--pm-radius-sm) !important;
  overflow: hidden !important;
  border: 2px solid transparent !important;
  cursor: pointer !important;
  background: #f5f5f5 !important;
  padding: 0 !important;
  transition: border-color 0.2s !important;
}

.km-pm__gallery-thumb.is-active {
  border-color: var(--pm-gold) !important;
}

.km-pm__gallery-thumb:hover {
  border-color: var(--pm-gold) !important;
}

.km-pm__gallery-thumb img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

.km-pm__gallery-placeholder img {
  width: 100% !important;
  border-radius: var(--pm-radius) !important;
}

/* ==========================================================================
   Lightbox
   ========================================================================== */

.km-pm__lightbox {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 99999 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.km-pm__lightbox[hidden] {
  display: none !important;
}

.km-pm__lightbox-overlay {
  position: absolute !important;
  inset: 0 !important;
  background: rgba(0, 0, 0, 0.92) !important;
  cursor: pointer !important;
}

.km-pm__lightbox-content {
  position: relative !important;
  width: min(90vw, 1200px) !important;
  height: 85vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  pointer-events: none !important;
}

.km-pm__lightbox-img {
  max-width: 100% !important;
  max-height: 100% !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  user-select: none !important;
  pointer-events: auto !important;
  border-radius: 4px !important;
}

.km-pm__lightbox-close {
  position: fixed !important;
  top: 20px !important;
  right: 20px !important;
  background: rgba(255, 255, 255, 0.1) !important;
  border: none !important;
  color: var(--pm-white) !important;
  cursor: pointer !important;
  padding: 8px !important;
  width: 44px !important;
  height: 44px !important;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  opacity: 0.7 !important;
  transition: opacity 0.2s, background 0.2s !important;
  z-index: 1 !important;
  pointer-events: auto !important;
}

.km-pm__lightbox-close:hover {
  opacity: 1 !important;
  background: rgba(255, 255, 255, 0.2) !important;
}

.km-pm__lightbox-prev,
.km-pm__lightbox-next {
  position: fixed !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  background: rgba(255, 255, 255, 0.1) !important;
  border: none !important;
  color: var(--pm-white) !important;
  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background 0.2s, opacity 0.2s !important;
  opacity: 0.6 !important;
  z-index: 1 !important;
  pointer-events: auto !important;
}

.km-pm__lightbox-prev:hover,
.km-pm__lightbox-next:hover {
  background: rgba(255, 255, 255, 0.2) !important;
  opacity: 1 !important;
}

.km-pm__lightbox-prev {
  left: 20px !important;
}

.km-pm__lightbox-next {
  right: 20px !important;
}

.km-pm__lightbox-counter {
  position: fixed !important;
  bottom: 24px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  color: rgba(255, 255, 255, 0.5) !important;
  font-size: 13px !important;
  font-family: var(--pm-font) !important;
  letter-spacing: 2px !important;
  pointer-events: none !important;
}

/* ==========================================================================
   Info (colonne droite)
   ========================================================================== */

.km-pm__info {
  display: flex !important;
  flex-direction: column !important;
  gap: 20px !important;
}

/* Titre */

.km-pm__title {
  font-family: var(--pm-font) !important;
  font-size: 32px !important;
  font-weight: 700 !important;
  color: var(--pm-dark) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.5px !important;
  line-height: 1.2 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Avis */

.km-pm__reviews {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  flex-wrap: wrap !important;
}

.km-pm__reviews-logo {
  width: 32px !important;
  height: auto !important;
}

.km-pm__reviews-stars {
  display: flex !important;
  align-items: center !important;
}

.km-pm__reviews-stars>div {
  display: flex !important;
  align-items: center !important;
}

.km-pm__reviews-note {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--pm-grey) !important;
}

.km-pm__reviews-count {
  font-size: 13px !important;
  color: var(--pm-grey-light) !important;
}

/* Lien tonnage */

.km-pm__tonnage-link {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin-top: 4px;
  color: var(--pm-gold) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  text-decoration: underline !important;
  transition: color 0.2s !important;
  font-family: 'Inter';
  width: auto !important;
  margin-left: auto !important;
}

/* Le tonnage prend 100% en flex-wrap, on le pousse à droite */
.km-pm__cart-form .woocommerce-variation-add-to-cart .km-pm__tonnage-link {
  flex: 0 0 100% !important;
  justify-content: flex-end !important;
}

.km-pm__tonnage-link:hover {
  color: #a68650 !important;
  text-decoration: underline !important;
}

.km-pm__tonnage-link svg {
  flex-shrink: 0 !important;
}

.select2-container--default .select2-results>.select2-results__options {
  max-height: 300px !important;
}

/* ==========================================================================
   Géotextile — Radio cards
   ========================================================================== */

.km-pm__geotextile {
  background: var(--pm-gold-light) !important;
  border: 1px solid var(--pm-gold-border) !important;
  border-radius: var(--pm-radius) !important;
  padding: 14px !important;
  margin: 16px 0px !important;
}

.km-pm__geotextile-header {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  margin-bottom: 10px !important;
  flex-wrap: wrap !important;
}

.km-pm__geotextile-icon {
  display: flex !important;
  color: var(--pm-gold) !important;
  flex-shrink: 0 !important;
}

.km-pm__geotextile-icon svg {
  width: 28px !important;
  height: auto !important;
}

.km-pm__geotextile-header strong {
  font-size: 13px !important;
  color: var(--pm-dark) !important;
}

.km-pm__geotextile-help {
  margin-left: auto !important;
  font-size: 11px !important;
  color: #BE9E66 !important;
  background: #F2EBE0 !important;
  border: 1px solid var(--pm-gold-border) !important;
  border-radius: 20px !important;
  padding: 3px 10px !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  font-family: var(--pm-font) !important;
  transition: border-color 0.2s, color 0.2s !important;
}

.km-pm__geotextile-help:hover {
  border-color: var(--pm-gold) !important;
  color: var(--pm-gold) !important;
}

/* Accordéon info géotextile */

.km-pm__geotextile-info {
  font-size: 12px !important;
  color: var(--pm-grey) !important;
  line-height: 1.5 !important;
  border-bottom: 1px solid var(--pm-gold-border) !important;
  margin-bottom: 10px !important;
  max-height: 500px !important;
  overflow: hidden !important;
  padding: 12px 0 !important;
  padding-top: 0 !important;
  opacity: 1 !important;
  transition: max-height 0.35s ease, padding 0.35s ease, opacity 0.25s ease, margin 0.35s ease !important;
}

.km-pm__geotextile-info.is-collapsed {
  max-height: 0 !important;
  padding: 0 !important;
  margin-bottom: 0 !important;
  opacity: 0 !important;
  border-bottom: none !important;
}

.km-pm__geotextile-info[hidden] {
  display: none !important;
}

.km-pm__geotextile-info p {
  margin: 0 0 10px !important;
}

.km-pm__geotextile-info ul {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 10px !important;
}

.km-pm__geotextile-info ul li {
  padding: 4px 0 4px 28px !important;
  position: relative !important;
}

.km-pm__geotextile-info ul li::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 7px !important;
  width: 18px !important;
  height: 18px !important;
  border-radius: 50% !important;
  background: var(--pm-gold) !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") !important;
  background-size: 10px !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
}

.km-pm__geotextile-tip {
  color: var(--pm-gold) !important;
  margin-bottom: 0 !important;
}

.km-pm__geotextile-options {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
}

.km-pm__geotextile-card {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 12px !important;
  background: var(--pm-white) !important;
  border: 1px solid var(--pm-gold-border) !important;
  border-radius: var(--pm-radius) !important;
  cursor: pointer !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
}

.km-pm__geotextile-card:hover {
  border-color: var(--pm-gold) !important;
}

.km-pm__geotextile-card:has(.km-pm__geotextile-radio:checked) {
  border-color: var(--pm-gold) !important;
  box-shadow: 0 0 0 1px var(--pm-gold) !important;
}

/* Cacher le radio natif, garder l'accessibilité */
.km-pm__geotextile-radio {
  position: absolute !important;
  opacity: 0 !important;
  width: 0 !important;
  height: 0 !important;
  pointer-events: none !important;
}

/* Custom check circle */
.km-pm__geotextile-check {
  flex-shrink: 0 !important;
  width: 20px !important;
  height: 20px !important;
  border-radius: 50% !important;
  border: 2px solid var(--pm-gold-border) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.2s ease !important;
  background: var(--pm-white) !important;
  color: transparent !important;
}

.km-pm__geotextile-card:has(.km-pm__geotextile-radio:checked) .km-pm__geotextile-check {
  background: var(--pm-gold) !important;
  border-color: var(--pm-gold) !important;
  color: var(--pm-white) !important;
}

.km-pm__geotextile-img {
  width: 44px !important;
  height: 44px !important;
  object-fit: cover !important;
  border-radius: var(--pm-radius-sm) !important;
  flex-shrink: 0 !important;
}

.km-pm__geotextile-details {
  flex: 1 !important;
  min-width: 0 !important;
}

.km-pm__geotextile-name {
  display: block !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: var(--pm-dark) !important;
}

.km-pm__geotextile-desc {
  display: none !important;
  font-size: 11px !important;
  color: var(--pm-grey-light) !important;
  margin-top: 1px !important;
  line-height: 1.3 !important;
}

.km-pm__geotextile-price {
  flex-shrink: 0 !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--pm-gold) !important;
  white-space: nowrap !important;
}

.km-pm__geotextile-price .woocommerce-Price-amount,
.km-pm__geotextile-price .woocommerce-Price-amount.amount,
.single-product .km-pm__geotextile-price .woocommerce-Price-amount.amount,
.single-product .single_variation_wrap .km-pm__geotextile-price .woocommerce-Price-amount.amount {
  font-size: 13px !important;
  font-weight: 700 !important;
  color: var(--pm-gold) !important;
}

/* Cartes cachées (voir plus) */
.km-pm__geotextile-card--hidden {
  display: none !important;
}

.km-pm__geotextile-options.is-expanded .km-pm__geotextile-card--hidden {
  display: flex !important;
}

/* Bouton voir plus/moins */
.km-pm__geotextile-toggle {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  margin-top: 6px !important;
  font-size: 12px !important;
  color: var(--pm-gold) !important;
  background: none !important;
  border: none !important;
  cursor: pointer !important;
  padding: 0 !important;
  font-family: var(--pm-font) !important;
  transition: color 0.2s !important;
}

.km-pm__geotextile-toggle:hover {
  color: #a68650 !important;
}

.km-pm__geotextile-toggle svg {
  transition: transform 0.2s !important;
}

.km-pm__geotextile-toggle.is-expanded svg {
  transform: rotate(180deg) !important;
}

/* Footer géotextile inline (dans chaque carte) */

.km-pm__geotextile-card-footer {
  flex: 0 0 100% !important;
  margin-top: 8px !important;
  padding-top: 8px !important;
  border-top: 1px solid var(--pm-gold-border) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  font-size: 13px !important;
  color: var(--pm-grey) !important;
}

.km-pm__geotextile-card-footer[hidden] {
  display: none !important;
}

.km-pm__geotextile-card:has(.km-pm__geotextile-radio:checked) {
  flex-wrap: wrap !important;
}

.km-pm__geotextile-footer-left {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  font-weight: 600 !important;
}

.km-pm__geotextile-footer-right {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
}

.km-pm__geotextile-subtotal {
  font-size: 16px !important;
  font-weight: 700 !important;
  color: var(--pm-gold) !important;
  white-space: nowrap !important;
}

.km-pm__geotextile-remove {
  background: none !important;
  border: none !important;
  font-size: 13px !important;
  color: var(--pm-grey-light) !important;
  cursor: pointer !important;
  padding: 0 !important;
  font-family: var(--pm-font) !important;
  text-decoration: underline !important;
  transition: color 0.2s !important;
}

.km-pm__geotextile-remove:hover {
  color: var(--pm-dark) !important;
}

.km-pm__geotextile-qty-wrap {
  display: flex !important;
  align-items: center !important;
  border: 1px solid var(--pm-gold-border) !important;
  border-radius: var(--pm-radius) !important;
  overflow: hidden !important;
  background: var(--pm-white) !important;
}

.km-pm__geotextile-qty-wrap .km-qty-btn {
  background: none !important;
  border: none !important;
  padding: 0 10px !important;
  cursor: pointer !important;
  font-size: 18px !important;
  color: var(--pm-grey) !important;
  display: flex !important;
  align-items: center !important;
  height: 36px !important;
}

.km-pm__geotextile-qty-wrap .km-qty-btn:hover {
  color: var(--pm-dark) !important;
}

.km-pm__geotextile-qty-input {
  width: 40px !important;
  text-align: center !important;
  border: none !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  font-family: var(--pm-font) !important;
  color: var(--pm-dark) !important;
  padding: 6px 0 !important;
  -moz-appearance: textfield !important;
  background: transparent !important;
}

.km-pm__geotextile-qty-input::-webkit-inner-spin-button,
.km-pm__geotextile-qty-input::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}

/* ==========================================================================
   Formulaire ajout au panier (WooCommerce natif overrides)
   ========================================================================== */

.km-pm__cart-form {
  padding: 0 !important;
}

/* Masquer le prix tranche variable (ex: 54,00€ – 410,00€) — seul le prix
   de la variation sélectionnée s'affiche via .woocommerce-variation-price */
.km-pm__cart-form .variations_form>.price,
.km-pm__cart-form form.cart>.price {
  display: none !important;
}

/* Afficher le label Conditionnement */
.km-pm__cart-form .variations th.label,
.km-pm__cart-form .variations td.label {
  display: block !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  margin-bottom: 8px;
  color: var(--pm-grey) !important;
  padding: 0 0 6px !important;
  font-family: var(--pm-font) !important;
  text-align: left !important;
}

.km-pm__cart-form .variations th.label label,
.km-pm__cart-form .variations td.label label {
  font-weight: 600 !important;
  font-size: 14px !important;
  display: flex !important;
  align-items: center !important;
}

.km-pm__cart-form table.variations {
  margin-bottom: 8px !important;
  width: 100% !important;
  border: none !important;
  border-collapse: collapse !important;
}

.km-pm__cart-form table.variations td {
  display: block !important;
  padding: 0 !important;
  border: none !important;
}

.km-pm__cart-form table.variations tr {
  display: block !important;
}

.km-pm__cart-form table tbody>tr:nth-child(odd)>td,
.km-pm__cart-form table tbody>tr:nth-child(odd)>th {
  background-color: #fff !important;
}

.km-pm table tbody>tr:nth-child(odd)>td,
.km-pm table tbody>tr:nth-child(odd)>th {
  background-color: #fff !important;
}

.km-pm__cart-form table.variations select {
  width: 100% !important;
  padding: 14px 40px 14px 16px !important;
  font-size: 15px !important;
  font-family: var(--pm-font) !important;
  font-weight: 600 !important;
  border: 1px solid var(--pm-gold-border) !important;
  border-radius: var(--pm-radius) !important;
  background-color: var(--pm-gold-light) !important;
  color: var(--pm-dark) !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23BE9D68' stroke-width='2.5'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 14px center !important;
  cursor: pointer !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
}

.km-pm__cart-form table.variations select:hover {
  border-color: var(--pm-gold) !important;
}

.km-pm__cart-form table.variations select:focus {
  outline: none !important;
  border-color: var(--pm-gold) !important;
  box-shadow: 0 0 0 3px rgba(190, 157, 104, 0.15) !important;
}

.km-pm__cart-form table.variations select option {
  padding: 10px 12px !important;
  font-size: 14px !important;
  background: var(--pm-white) !important;
  color: var(--pm-dark) !important;
}

.km-pm__cart-form table.variations select option:checked {
  background: var(--pm-gold-light) !important;
  color: var(--pm-dark) !important;
}

/* Icône SVG avant le label de variation Conditionnement */
.km-pm__variation-label-icon {
  display: inline-flex !important;
  color: var(--pm-gold) !important;
  vertical-align: middle !important;
  margin-right: 6px !important;
  flex-shrink: 0 !important;
}

.km-pm__variation-label-icon svg {
  width: 24px !important;
  height: auto !important;
}

/* Select2 — Variation select override */

.km-pm__cart-form .select2-container--default .select2-selection--single {
  height: auto !important;
  padding: 14px 40px 14px 16px !important;
  border: 1px solid var(--pm-gold-border) !important;
  border-radius: var(--pm-radius) !important;
  background-color: var(--pm-gold-light) !important;
  transition: border-color 0.2s, box-shadow 0.2s !important;
}

.km-pm__cart-form .select2-container--default .select2-selection--single:hover {
  border-color: var(--pm-gold) !important;
}

.km-pm__cart-form .select2-container--default.select2-container--open .select2-selection--single,
.km-pm__cart-form .select2-container--default.select2-container--focus .select2-selection--single {
  border-color: var(--pm-gold) !important;
  box-shadow: 0 0 0 3px rgba(190, 157, 104, 0.15) !important;
  outline: none !important;
}

.km-pm__cart-form .select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--pm-dark) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  font-family: var(--pm-font) !important;
  line-height: 1.3 !important;
  padding: 0 !important;
}

.km-pm__cart-form .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 100% !important;
  right: 14px !important;
}

.km-pm__cart-form .select2-container--default .select2-selection--single .select2-selection__arrow b {
  border: none !important;
  width: 22px !important;
  height: 22px !important;
  margin: 0 !important;
  position: absolute !important;
  top: 50% !important;
  left: 50% !important;
  transform: translate(-50%, -50%) !important;
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M16 10L12 14L8 10' stroke='%23be9e66' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center / contain !important;
  transition: transform 0.2s ease !important;
}

.km-pm__cart-form .select2-container--default.select2-container--open .select2-selection--single .select2-selection__arrow b {
  border: none !important;
  transform: translate(-50%, -50%) rotate(180deg) !important;
}

/* Dropdown (appendé au body, pas dans .km-pm__cart-form) */
.select2-container--default .select2-dropdown {
  border: 1px solid #e5ddd3 !important;
  border-radius: 8px !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08) !important;
  margin-top: 4px !important;
  z-index: 999999 !important;
}

/* Empêcher le scroll horizontal causé par le dropdown Select2 appendé au body */
html,
body {
  overflow-x: clip !important;
}

.select2-container--default .select2-results__option {
  padding: 12px 16px !important;
  font-size: 14px !important;
  font-family: 'Lato', sans-serif !important;
  color: #262626 !important;
  transition: background 0.15s !important;
}

.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: #f9f7f4 !important;
  color: #262626 !important;
}

.select2-container--default .select2-results__option[aria-selected="true"] {
  background: #BE9D68 !important;
  color: #fff !important;
}

/* Masquer le select natif quand Select2 est actif */
.km-pm__cart-form table.variations select.select2-hidden-accessible {
  position: absolute !important;
  clip: rect(0, 0, 0, 0) !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  padding: 0 !important;
  border: 0 !important;
}

.km-pm__cart-form .reset_variations {
  display: none !important;
}

/* Bouton ajout panier + quantité */

.km-pm__cart-form .woocommerce-variation-add-to-cart,
.km-pm__cart-form form.cart:not(.variations_form) {
  display: flex !important;
  align-items: stretch !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
}

/* Le géotextile prend toute la largeur */
.km-pm__cart-form .woocommerce-variation-add-to-cart .km-pm__geotextile {
  flex: 0 0 100% !important;
}

.km-pm__cart-form .quantity {
  display: flex !important;
  align-items: center !important;
  border: 1px solid var(--pm-gold-border) !important;
  border-radius: var(--pm-radius) !important;
  overflow: hidden !important;
  background: var(--pm-white) !important;
  width: auto !important;
  flex-shrink: 0 !important;
}

.km-pm__cart-form .quantity .qty {
  width: 48px !important;
  text-align: center !important;
  border: none !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  font-family: var(--pm-font) !important;
  color: var(--pm-dark) !important;
  padding: 12px 0 !important;
  -moz-appearance: textfield !important;
  background: transparent !important;
}

.km-pm__cart-form .quantity .qty::-webkit-inner-spin-button,
.km-pm__cart-form .quantity .qty::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}

.km-pm__cart-form .km-qty-btn {
  background: none !important;
  border: none !important;
  padding: 0 12px !important;
  cursor: pointer !important;
  font-size: 20px !important;
  color: var(--pm-grey) !important;
  transition: color 0.2s !important;
  display: flex !important;
  align-items: center !important;
}

.km-pm__cart-form .km-qty-btn:hover {
  color: var(--pm-dark) !important;
}

.km-pm__cart-form .single_add_to_cart_button {
  flex: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  padding: 14px 24px !important;
  background: var(--pm-gold) !important;
  color: var(--pm-white) !important;
  border: none !important;
  border-radius: var(--pm-radius) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  font-family: var(--pm-font) !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background 0.2s !important;
  width: 100% !important;
}

.km-pm__cart-form .single_add_to_cart_button:hover {
  background: #a68650 !important;
}

.km-pm__cart-form .single_add_to_cart_button::before {
  content: '' !important;
  display: inline-block !important;
  width: 20px !important;
  height: 20px !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E") !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  flex-shrink: 0 !important;
}

/* Slot prix variation (au-dessus du sélecteur) */
.km-pm__variation-price-slot {
  background: #FAF8F5 !important;
  border-radius: var(--pm-radius) !important;
  padding: 14px 16px !important;
  margin-bottom: 12px !important;
  min-height: 0 !important;
}

.km-pm__variation-price-slot:empty {
  display: none !important;
}

.km-pm__variation-price-slot .price {
  display: block !important;
  margin: 0 !important;
}

.km-pm__variation-price-slot .woocommerce-Price-amount,
.km-pm__cart-form .woocommerce-variation-price .woocommerce-Price-amount {
  font-family: Lato, sans-serif !important;
  font-size: 28px !important;
  font-weight: 700 !important;
  color: #2a2a2a !important;
}

.km-pm__variation-price-slot .woocommerce-Price-currencySymbol,
.km-pm__cart-form .woocommerce-variation-price .woocommerce-Price-currencySymbol {
  font-family: Lato, sans-serif !important;
  font-weight: 700 !important;
}

.km-pm__variation-price-slot .km-include-shipping {
  display: block !important;
  font-size: 12px !important;
  color: var(--pm-grey-light) !important;
  margin-top: 4px !important;
  line-height: 1.4 !important;
}

.km-pm__price-note {
  display: block !important;
  font-size: 13px !important;
  color: #999 !important;
  margin-top: 6px !important;
  font-weight: 400 !important;
  letter-spacing: 0.01em !important;
}

/* Sous-total dans le bouton */
.km-pm__cart-form .single_add_to_cart_button {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* Produit non disponible */

.km-pm__unavailable {
  padding: 16px !important;
  background: #fef2f2 !important;
  border: 1px solid #fecaca !important;
  border-radius: var(--pm-radius) !important;
  color: #991b1b !important;
  font-size: 14px !important;
}

/* ==========================================================================
   Informations de livraison (accordéon)
   ========================================================================== */

.km-pm__delivery {
  margin-top: -32px !important;
  border: 1px solid #e5e5e5 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
}

.km-pm__delivery-summary {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 14px 16px !important;
  cursor: pointer !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #3D3D3D !important;
  list-style: none !important;
  user-select: none !important;
  transition: background 0.2s !important;
}

.km-pm__delivery-summary:hover {
  background: #f9f9f9 !important;
}

.km-pm__delivery-summary::-webkit-details-marker {
  display: none !important;
}

.km-pm__delivery-summary::marker {
  display: none !important;
  content: "" !important;
}

.km-pm__delivery-chevron {
  margin-left: auto !important;
  transition: transform 0.2s !important;
  flex-shrink: 0 !important;
}

.km-pm__delivery[open] .km-pm__delivery-chevron {
  transform: rotate(180deg) !important;
}

.km-pm__delivery-content {
  padding: 0 16px 16px !important;
  font-size: 13px !important;
  color: var(--pm-grey, #6a7282) !important;
  line-height: 1.6 !important;
}

.km-pm__delivery-content p {
  margin: 0 0 10px !important;
}

.km-pm__delivery-content ul {
  margin: 0 0 10px !important;
  padding-left: 20px !important;
}

.km-pm__delivery-content li {
  margin-bottom: 6px !important;
}

.km-pm__delivery-content small {
  color: #9ca3af !important;
  font-style: italic !important;
}

.km-pm__delivery-content a {
  color: var(--pm-gold, #BE9D68) !important;
  text-decoration: none !important;
  font-weight: 600 !important;
}

.km-pm__delivery-content a:hover {
  text-decoration: underline !important;
}

/* ==========================================================================
   Réassurance (description courte)
   ========================================================================== */

.km-pm__reassurance {
  padding-top: 16px !important;
  border-top: 1px solid var(--pm-gold-border) !important;
}

.km-pm__reassurance p {
  font-size: 14px !important;
  color: var(--pm-grey) !important;
  line-height: 1.6 !important;
  margin: 0 0 8px !important;
}

.km-pm__reassurance p:last-child {
  margin-bottom: 0 !important;
}

/* Icônes de réassurance */

.km-pm__info .km-reassurance-icons {
  padding-top: 16px !important;
  border-top: 1px solid var(--pm-gold-border) !important;
  margin-top: 8px !important;
}

/* ==========================================================================
   Responsive
   ========================================================================== */

@media (max-width: 1024px) {
  .km-pm {
    gap: 24px !important;
  }

  .km-pm__title {
    font-size: 22px !important;
  }

  .km-pm__gallery-thumb {
    width: 60px !important;
    height: 60px !important;
  }
}

@media (max-width: 767px) {
  .km-pm {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }

  .km-pm__gallery {
    position: static !important;
  }

  .km-pm__gallery-thumbs {
    gap: 6px !important;
  }

  .km-pm__gallery-thumb {
    width: 56px !important;
    height: 56px !important;
  }

  .km-pm__title {
    font-size: 20px !important;
  }

  .km-pm__price .woocommerce-Price-amount {
    font-size: 26px !important;
  }

  .km-pm__geotextile {
    padding: 14px !important;
  }

  .km-pm__geotextile-help {
    margin-left: 0 !important;
    margin-top: 4px !important;
    width: fit-content !important;
  }

  .km-pm__geotextile-card {
    flex-wrap: wrap !important;
    padding: 12px !important;
  }

  .km-pm__geotextile-price {
    margin-left: auto !important;
  }

  /* Lightbox mobile */
  .km-pm__lightbox-prev {
    left: 10px !important;
  }

  .km-pm__lightbox-next {
    right: 10px !important;
  }

  .km-pm__lightbox-prev,
  .km-pm__lightbox-next {
    width: 40px !important;
    height: 40px !important;
    background: rgba(255, 255, 255, 0.15) !important;
    opacity: 0.8 !important;
  }

  .km-pm__lightbox-close {
    top: 12px !important;
    right: 12px !important;
  }

  /* Cart form mobile — qty + ATC on same line, no cart icon */
  .km-pm__cart-form .woocommerce-variation-add-to-cart,
  .km-pm__cart-form form.cart:not(.variations_form) {
    flex-wrap: wrap !important;
  }

  .km-pm__cart-form .quantity {
    flex: 0 0 auto !important;
  }

  .km-pm__cart-form .single_add_to_cart_button {
    flex: 1 1 0% !important;
    font-size: 13px !important;
    padding: 12px 14px !important;
    min-width: 0 !important;
  }

  .km-pm__cart-form .single_add_to_cart_button::before {
    display: none !important;
  }
}

@media (max-width: 425px) {
  .km-pm__gallery-thumb {
    width: 48px !important;
    height: 48px !important;
  }

  .km-pm__geotextile-img {
    width: 44px !important;
    height: 44px !important;
  }

  .km-pm__reviews {
    gap: 4px !important;
  }

  .km-pm__reviews-logo {
    width: 24px !important;
  }
}