/* ==========================================================
   JM24 — CSS fiche produit ultra-compatible VirtueMart
   Version: 2026-05-11 compat
   Objectif: fiche produit premium sans dépendre d'un seul template.
   ========================================================== */

:root {
  --jm24-primary: #1b1b1b;
  --jm24-accent: #d4a017;
  --jm24-accent-dark: #a8790d;
  --jm24-bg: #f5f5f5;
  --jm24-card: #ffffff;
  --jm24-text: #2f2f2f;
  --jm24-muted: #777777;
  --jm24-border: #e3e3e3;
  --jm24-radius: 10px;
  --jm24-radius-sm: 6px;
  --jm24-shadow: 0 8px 24px rgba(0,0,0,.08);
  --jm24-speed: .28s;
}

/* Conteneur fiche produit — VM2/VM3/templates */
.productdetails-view,
.productdetails,
.vm-productdetails-view,
.product-detail,
.product-details,
.product-page,
.item-page.product,
.com_virtuemart.view-productdetails #content,
.com_virtuemart.view-productdetails #component,
body.view-productdetails #content,
body.view-productdetails #component {
  background: var(--jm24-card) !important;
  border: 1px solid var(--jm24-border) !important;
  border-radius: var(--jm24-radius) !important;
  box-shadow: var(--jm24-shadow) !important;
  box-sizing: border-box !important;
  color: var(--jm24-text) !important;
}

.productdetails-view,
.productdetails,
.vm-productdetails-view,
.product-detail,
.product-details,
.product-page {
  padding: 24px !important;
}

/* Titres */
.productdetails-view h1,
.productdetails-view h2,
.productdetails-view .product-title,
.productdetails-view .product-name,
.productdetails h1,
.productdetails h2,
.product-detail h1,
.product-details h1,
.product-page h1,
.vm-product-container h1,
.vm-product-container h2,
.product-neighbours + h1 {
  color: var(--jm24-primary) !important;
  font-weight: 800 !important;
  line-height: 1.15 !important;
  letter-spacing: -.025em !important;
  margin-bottom: 14px !important;
}

/* Layout média + infos: compatible float/flex */
.productdetails-view .vm-product-container,
.productdetails-view .product-container,
.productdetails-view .main-image,
.productdetails-view .additional-images,
.vm-product-container,
.vm-product-media-container,
.vm-product-details-container,
.productdetails .floatleft,
.productdetails .floatright {
  box-sizing: border-box !important;
}

.vm-product-media-container,
.productdetails-view .main-image,
.productdetails-view .product-image,
.product-image-container,
.product-media,
.product-images,
.main-image,
.additional-images {
  background: #fafafa !important;
  border: 1px solid var(--jm24-border) !important;
  border-radius: var(--jm24-radius) !important;
  padding: 12px !important;
  text-align: center !important;
  overflow: hidden !important;
}

/* Images produit */
.productdetails-view .main-image img,
.productdetails-view .additional-images img,
.productdetails-view img.product-image,
.productdetails-view img.vm-product-media-img,
.productdetails-view .vm-product-media-container img,
.productdetails img,
.vm-product-media-container img,
.main-image img,
.additional-images img,
img.medium-image,
img.product-image,
img.vm-product-media-img {
  max-width: 100% !important;
  height: auto !important;
  border-radius: var(--jm24-radius-sm) !important;
  filter: grayscale(100%) contrast(1.04) !important;
  transition: filter var(--jm24-speed) ease, transform var(--jm24-speed) ease !important;
}

.productdetails-view .main-image:hover img,
.productdetails-view .additional-images img:hover,
.productdetails-view .vm-product-media-container:hover img,
.productdetails img:hover,
.vm-product-media-container:hover img,
.main-image:hover img,
.additional-images img:hover {
  filter: grayscale(0%) contrast(1) !important;
  transform: scale(1.012) !important;
}

/* Exclusions logos/icônes/paiement — FIX: ajout badges livraison/garantie/confiance */
.productdetails-view img[src*="logo"],
.productdetails-view img[src*="Logo"],
.productdetails-view img[src*="icon"],
.productdetails-view img[src*="payment"],
.productdetails-view img[src*="paypal"],
.productdetails-view img[src*="visa"],
.productdetails-view img[src*="mastercard"],
.productdetails-view img[src*="stripe"],
.productdetails-view img[src*="livraison"],
.productdetails-view img[src*="garantie"],
.productdetails-view img[src*="serenite"],
.productdetails-view img[src*="qualite"],
.productdetails-view img[src*="badge"],
.productdetails-view img[src*="trust"],
.productdetails-view img[src*="24-02"],
.productdetails-view img[src*="24-03"],
.productdetails img[src*="logo"],
.productdetails img[src*="icon"],
.productdetails img[src*="payment"],
.productdetails img[src*="livraison"],
.productdetails img[src*="garantie"] {
  filter: none !important;
  transform: none !important;
}

/* FIX: clearfix pour éviter les remontées de flottants sur les blocs sous image+infos */
.productdetails-view .product-fields,
.productdetails-view .product-description,
.productdetails-view .addtocart-area,
.productdetails-view .tabs,
.productdetails-view .nav-tabs,
.productdetails-view .vm-tabs,
.productdetails .product-fields,
.productdetails .product-description,
.productdetails .addtocart-area {
  clear: both !important;
}

/* Bloc prix */
.productdetails-view .product-price,
.productdetails-view .price,
.productdetails-view .PricesalesPrice,
.productdetails-view .vm-price-value,
.productdetails .product-price,
.productdetails .price,
.productdetails .PricesalesPrice,
.vm-product-details-container .product-price,
.vm-product-details-container .price,
.vm-product-details-container .PricesalesPrice,
span.PricesalesPrice,
div.PricesalesPrice {
  color: var(--jm24-accent-dark) !important;
  font-weight: 900 !important;
  font-size: 1.24em !important;
  line-height: 1.2 !important;
}

.productdetails-view .product-price,
.productdetails .product-price,
.vm-product-details-container .product-price {
  background: rgba(212,160,23,.08) !important;
  border-left: 4px solid var(--jm24-accent) !important;
  border-radius: var(--jm24-radius-sm) !important;
  padding: 10px 12px !important;
  margin: 12px 0 !important;
}

/* Infos stock, sku, manufacturer, rating */
.availability,
.stock,
.in-stock,
.out-stock,
.product-sku,
.product-fields,
.product-field,
.manufacturer,
.product-manufacturer,
.ratingbox,
.vote,
.customer-reviews,
.ask-a-question,
.product-short-description,
.product-description,
.productdesc,
.product-description-wrapper {
  color: var(--jm24-muted) !important;
}

/* Add to cart / quantité */
.addtocart-area,
.addtocart-bar,
.vm-customfields-wrap,
.product-fields,
.product-field,
.quantity-box,
.quantity-controls,
.productdetails-view form,
.productdetails form.product,
.vm-product-details-container form {
  box-sizing: border-box !important;
}

.addtocart-area,
.addtocart-bar {
  background: #fff !important;
  border: 1px solid var(--jm24-border) !important;
  border-radius: var(--jm24-radius) !important;
  padding: 14px !important;
  margin: 16px 0 !important;
}

.quantity-input,
.quantity-box input,
input.quantity-input,
input[name="quantity[]"],
input[name="quantity"],
.addtocart-area input[type="text"],
.addtocart-area input[type="number"] {
  min-height: 38px !important;
  border: 1px solid var(--jm24-border) !important;
  border-radius: var(--jm24-radius-sm) !important;
  text-align: center !important;
}

.addtocart-button,
.addtocart-button input,
span.addtocart-button input.addtocart-button,
.addtocart-area button,
.addtocart-area input[type="submit"],
.addtocart-bar .addtocart-button,
.vm-button-correct,
.vm-button-correct:link,
.vm-button-correct:visited,
.vm-button,
button[name="addtocart"],
input[name="addtocart"] {
  min-height: 42px !important;
  padding: 11px 22px !important;
  border-radius: 999px !important;
  border: 1px solid var(--jm24-accent) !important;
  background: linear-gradient(135deg, var(--jm24-accent), var(--jm24-accent-dark)) !important;
  color: #1b1b1b !important;
  font-weight: 800 !important;
  letter-spacing: .02em !important;
  text-decoration: none !important;
  box-shadow: 0 6px 16px rgba(212,160,23,.25) !important;
  transition: transform var(--jm24-speed) ease, box-shadow var(--jm24-speed) ease, filter var(--jm24-speed) ease !important;
}

.addtocart-button:hover,
.addtocart-button input:hover,
.addtocart-area button:hover,
.addtocart-area input[type="submit"]:hover,
.vm-button-correct:hover,
.vm-button:hover,
button[name="addtocart"]:hover,
input[name="addtocart"]:hover {
  filter: brightness(1.04) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 9px 22px rgba(212,160,23,.34) !important;
}

/* Descriptions et onglets */
.product-description,
.productdesc,
.product-description-wrapper,
.productdetails-view .description,
.productdetails .description,
#description,
#tab-description,
.tab-content,
.tabs-content,
.vm-tabs-content,
.product-fields-title-wrapper,
.product-fields {
  background: #fff !important;
  border-radius: var(--jm24-radius) !important;
  box-sizing: border-box !important;
}

.product-description,
.productdesc,
.product-description-wrapper,
.productdetails-view .description,
#description,
#tab-description {
  border-left: 4px solid var(--jm24-accent) !important;
  padding: 16px !important;
  margin-top: 18px !important;
}

ul.tabs,
.nav-tabs,
.vm-tabs,
.productdetails-view .tabs {
  border-bottom: 1px solid var(--jm24-border) !important;
}

ul.tabs li a,
.nav-tabs li a,
.vm-tabs li a,
.productdetails-view .tabs a {
  color: var(--jm24-primary) !important;
  border-radius: var(--jm24-radius-sm) var(--jm24-radius-sm) 0 0 !important;
  text-decoration: none !important;
}

ul.tabs li.active a,
.nav-tabs li.active a,
.vm-tabs li.active a,
ul.tabs li a:hover,
.nav-tabs li a:hover,
.vm-tabs li a:hover,
.productdetails-view .tabs a:hover {
  color: var(--jm24-accent-dark) !important;
  border-color: var(--jm24-accent) !important;
}

/* Produits liés / recommandations */
.product-related-products,
.product-related-categories,
.related-products,
.related-categories,
.recommend,
.vmproduct,
.vmgroup {
  margin-top: 22px !important;
}

.product-related-products .product-field,
.product-related-categories .product-field,
.related-products .product,
.vmproduct .product,
.vmgroup li {
  background: #fff !important;
  border: 1px solid var(--jm24-border) !important;
  border-radius: var(--jm24-radius) !important;
  box-shadow: 0 3px 12px rgba(0,0,0,.06) !important;
  padding: 12px !important;
}

/* Messages VM/Joomla */
#system-message,
.alert,
.vm-notice,
.vm-error,
.vm-message {
  border-radius: var(--jm24-radius-sm) !important;
}

/* Responsive produit */
@media (min-width: 769px) {
  .productdetails-view .vm-product-container,
  .productdetails .vm-product-container,
  .vm-product-container {
    display: flex !important;
    gap: 24px !important;
    align-items: flex-start !important;
  }

  .vm-product-media-container,
  .productdetails-view .main-image,
  .product-image-container,
  .product-media,
  .product-images {
    flex: 0 0 42% !important;
    max-width: 42% !important;
  }

  .vm-product-details-container,
  .productdetails-view .product-info,
  .product-info,
  .product-summary {
    flex: 1 1 auto !important;
    min-width: 0 !important;
  }
}

@media (max-width: 768px) {
  .productdetails-view,
  .productdetails,
  .vm-productdetails-view,
  .product-detail,
  .product-details,
  .product-page {
    padding: 14px !important;
  }

  .productdetails-view .vm-product-container,
  .productdetails .vm-product-container,
  .vm-product-container {
    display: block !important;
  }

  .vm-product-media-container,
  .productdetails-view .main-image,
  .product-image-container,
  .product-media,
  .product-images,
  .vm-product-details-container,
  .product-info,
  .product-summary {
    max-width: 100% !important;
    width: 100% !important;
  }

  .addtocart-button,
  .addtocart-button input,
  .addtocart-area button,
  .addtocart-area input[type="submit"],
  .vm-button-correct,
  .vm-button {
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    scroll-behavior: auto !important;
  }
}
