/**
 * RACBYSHOP - Product Page CSS (CLEAN + STICKY FIX)
 * ================================================
 * Fichier UNIQUE - remplace TOUT le contenu de product-page.css
 * Inclut : base, galerie sticky Nike, responsive, fixes Kadence
 * 
 * PLUS BESOIN des V6, V7, V17, V18, V19, V20 séparés !
 */

/* ==========================================
   VARIABLES
   ========================================== */
:root {
  --racby-gold: #D4AF37;
  --racby-gold-light: #E8D48A;
  --racby-gold-dark: #B8960F;

  --racby-violet: #6B46C1;
  --racby-violet-light: #9F7AEA;
  --racby-violet-dark: #553C9A;

  --racby-black: #1a1a1a;
  --racby-white: #ffffff;

  --racby-gray-50: #fafafa;
  --racby-gray-100: #f5f5f5;
  --racby-gray-200: #e5e5e5;
  --racby-gray-300: #d4d4d4;
  --racby-gray-400: #a3a3a3;
  --racby-gray-500: #737373;
  --racby-gray-600: #525252;
  --racby-gray-700: #404040;
  --racby-gray-800: #262626;

  --racby-success: #22c55e;
  --racby-error: #ef4444;

  --racby-shadow-sm: 0 2px 4px rgba(0,0,0,0.05);
  --racby-shadow-md: 0 4px 12px rgba(0,0,0,0.08);
  --racby-shadow-lg: 0 10px 40px rgba(0,0,0,0.12);
  --racby-shadow-gold: 0 4px 20px rgba(212, 175, 55, 0.25);
  --racby-shadow-violet: 0 4px 20px rgba(107, 70, 193, 0.25);

  --racby-radius-sm: 8px;
  --racby-radius-md: 12px;
  --racby-radius-lg: 16px;
  --racby-radius-full: 9999px;

  --racby-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  --racby-transition-slow: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==========================================
   FIX KADENCE STICKY : OVERFLOW VISIBLE
   ==========================================
   position: sticky échoue si N'IMPORTE QUEL
   ancêtre a overflow: hidden/auto/scroll.
   On force overflow: visible sur TOUT.
   ========================================== */

html {
  overflow: visible !important;
  overflow-x: hidden !important;
  overflow-y: scroll !important;
}

body {
  overflow: visible !important;
  overflow-x: hidden !important;
  overflow-y: visible !important;
}

/* Tous les wrappers Kadence + WordPress + WooCommerce */
#page,
#content,
#primary,
#main,
.site,
.wp-site-blocks,
.site-content,
.site-container,
.site-inner,
.content-wrap,
.content-area,
.content-container,
.site-main,
.entry-content,
.entry-content-wrap,
.post,
.product,
.type-product,
.single-product,
article,
main,
section,
.woocommerce,
.woocommerce-page,
.kb-row-layout-wrap,
.wp-block-kadence-rowlayout,
.kt-row-column-wrap,
.wp-block-group,
.page-content,
.entry,
.hentry,
.racby-product-page,
.racby-product-page.layout-a {
  overflow: visible !important;
}

/* ==========================================
   SCOPE SAFE
   ========================================== */
body.single-product #racby-product,
body.single-product #racby-product * {
  box-sizing: border-box;
}

body.single-product #racby-product {
  max-width: 100%;
}

body.single-product #racby-product img {
  max-width: 100%;
  height: auto;
  display: block;
}

/* ==========================================
   BASE
   ========================================== */
.racby-product-page {
  background: var(--racby-white);
  padding: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;
}

.racby-product-container {
  max-width: 1440px;
  margin: 0 auto;
  padding: 30px 40px 60px;
  overflow: visible !important;
  position: relative;
}

/* ==========================================
   LAYOUT PRINCIPAL - GRID 2 COLONNES
   ========================================== */
.racby-product-main {
  display: grid !important;
  grid-template-columns: 1.1fr 0.9fr !important;
  gap: 60px !important;
  margin-bottom: 80px;
  align-items: start !important; /* CRUCIAL pour le sticky */
  position: relative;
  overflow: visible !important;
}

/* ==========================================
   GALERIE STICKY - STYLE NIKE
   ==========================================
   Conditions pour que sticky fonctionne :
   1. align-items: start sur le parent grid ✅
   2. overflow: visible sur tous les ancêtres ✅
   3. La colonne droite doit être plus haute ✅
   4. height: auto (pas fit-content) ✅
   ========================================== */
.racby-product-gallery {
  position: -webkit-sticky !important;
  position: sticky !important;
  top: 100px !important;
  align-self: flex-start !important;
  height: auto !important;
  max-height: none !important;
  z-index: 10 !important;
  overflow: visible !important;
  animation: fadeInUp 0.6s ease forwards;
}

/* ==========================================
   GALERIE - WRAPPER + THUMBS + IMAGE
   ========================================== */
.racby-gallery-wrapper {
  display: flex;
  gap: 12px;
  max-width: 100%;
  overflow: visible !important;
}

/* Thumbs desktop (vertical) */
.racby-gallery-thumbs {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 80px;
  flex-shrink: 0;
  max-height: calc(100vh - 180px);
  overflow-y: auto;
  overflow-x: hidden;
}

/* Cacher scrollbar thumbs */
.racby-gallery-thumbs::-webkit-scrollbar { width: 0; display: none; }
.racby-gallery-thumbs { -ms-overflow-style: none; scrollbar-width: none; }

.racby-thumb {
  width: 80px;
  height: 80px;
  border-radius: var(--racby-radius-sm);
  overflow: hidden;
  cursor: pointer;
  border: 2px solid transparent;
  transition: var(--racby-transition);
  background: var(--racby-gray-100);
  opacity: 0.6;
  flex-shrink: 0;
}

.racby-thumb:hover {
  opacity: 1;
  border-color: var(--racby-gray-300);
}

.racby-thumb.active {
  opacity: 1;
  border-color: var(--racby-gold);
  box-shadow: var(--racby-shadow-gold);
}

.racby-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: var(--racby-transition);
}

.racby-thumb:hover img { transform: scale(1.05); }

/* Main image */
.racby-gallery-main {
  flex: 1;
  position: relative;
  border-radius: var(--racby-radius-lg);
  overflow: hidden;
  background: var(--racby-gray-50);
  aspect-ratio: 1 / 1;
  max-width: 100%;
}

.racby-main-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: var(--racby-transition-slow);
}

/* Zoom hover (desktop) */
.racby-gallery-main.zoom-active .racby-main-image { transform: scale(2); cursor: zoom-out; }
.racby-gallery-main:not(.zoom-active) .racby-main-image { cursor: zoom-in; }

/* Zoom button */
.racby-zoom-btn {
  position: absolute;
  bottom: 16px;
  right: 16px;
  width: 44px;
  height: 44px;
  background: var(--racby-white);
  border: none;
  border-radius: var(--racby-radius-full);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--racby-shadow-md);
  transition: var(--racby-transition);
  opacity: 0;
  transform: translateY(10px);
  z-index: 10;
}

.racby-gallery-main:hover .racby-zoom-btn {
  opacity: 1;
  transform: translateY(0);
}

.racby-zoom-btn:hover {
  background: var(--racby-gold);
  color: var(--racby-white);
  transform: scale(1.1);
}

/* Cache galerie WooCommerce native */
.woocommerce-product-gallery:not(.racby-gallery-wrapper) { display: none !important; }

/* ==========================================
   BADGES
   ========================================== */
.racby-badges {
  position: absolute;
  top: 16px;
  left: 16px;
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.racby-badge {
  padding: 8px 16px;
  border-radius: var(--racby-radius-full);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  color: var(--racby-white);
  backdrop-filter: blur(10px);
  animation: badgeIn 0.5s ease forwards;
}

@keyframes badgeIn {
  from { opacity: 0; transform: translateX(-20px); }
  to { opacity: 1; transform: translateX(0); }
}

.racby-badge--new {
  background: linear-gradient(135deg, var(--racby-violet) 0%, var(--racby-violet-light) 100%);
}

.racby-badge--bestseller {
  background: linear-gradient(135deg, var(--racby-gold-dark) 0%, var(--racby-gold) 100%);
  color: var(--racby-black);
}

/* ==========================================
   INFOS PRODUIT
   ========================================== */
.racby-product-info {
  padding: 10px 0;
  opacity: 0;
  animation: fadeInUp 0.6s ease 0.2s forwards;
  /* La colonne info DOIT être plus haute que la galerie pour que sticky marche */
}

.racby-product-category a {
  color: var(--racby-gold);
  text-decoration: none;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  transition: var(--racby-transition);
}

.racby-product-category a:hover { color: var(--racby-violet); }

.racby-product-title {
  font-size: 32px;
  font-weight: 700;
  color: var(--racby-black);
  margin: 0 0 20px 0;
  line-height: 1.25;
  letter-spacing: -0.5px;
}

.racby-product-price { margin-bottom: 24px; }
.racby-product-price .price {
  font-size: 32px;
  font-weight: 800;
  color: var(--racby-black);
  display: flex;
  align-items: baseline;
  gap: 12px;
}

/* ==========================================
   ÉTOILES SVG - FIX TAILLE
   ========================================== */
.racby-stars,
.racby-product-rating .racby-stars,
div.racby-stars {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 2px !important;
  width: auto !important;
  max-width: 120px !important;
  height: 20px !important;
  max-height: 20px !important;
  overflow: hidden !important;
}

.racby-stars svg,
.racby-product-rating svg,
.racby-stars > svg,
div.racby-stars svg {
  width: 16px !important;
  height: 16px !important;
  min-width: 16px !important;
  min-height: 16px !important;
  max-width: 16px !important;
  max-height: 16px !important;
  flex-shrink: 0 !important;
  display: block !important;
}

.racby-product-rating,
.woocommerce-product-rating {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  height: auto !important;
  max-height: 40px !important;
  overflow: visible !important;
}

/* ==========================================
   ADD TO CART + VARIATIONS
   ========================================== */
.racby-add-to-cart { width: 100%; margin-bottom: 24px; }
.racby-add-to-cart form.cart {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
  max-width: 100%;
}

.racby-add-to-cart table.variations {
  width: 100%;
  border-collapse: collapse;
  margin: 0;
}

.racby-add-to-cart table.variations tr { display: block; margin-bottom: 16px; }

.racby-add-to-cart table.variations th,
.racby-add-to-cart table.variations td {
  display: block;
  padding: 0;
  width: 100%;
}

.racby-add-to-cart table.variations th label,
.racby-add-to-cart table.variations .label label {
  font-weight: 600;
  font-size: 14px;
  color: var(--racby-black);
  margin-bottom: 8px;
  display: block;
}

.racby-add-to-cart table.variations select {
  width: 100%;
  height: 52px;
  padding: 0 40px 0 16px;
  border: 2px solid var(--racby-gray-200);
  border-radius: var(--racby-radius-md);
  font-size: 15px;
  font-weight: 500;
  background-color: var(--racby-white);
  cursor: pointer;
  transition: var(--racby-transition);
  appearance: none;
  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='%23737373' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
}

.racby-add-to-cart table.variations select:focus {
  border-color: var(--racby-gold);
  outline: none;
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15);
}

.racby-add-to-cart .reset_variations {
  display: inline-block;
  margin-top: 10px;
  font-size: 13px;
  color: var(--racby-violet);
  text-decoration: underline;
}

.racby-add-to-cart .woocommerce-variation-price { font-size: 24px; font-weight: 700; margin-bottom: 8px; }
.racby-add-to-cart .stock { font-size: 14px; font-weight: 500; margin-bottom: 12px; }
.racby-add-to-cart .in-stock { color: var(--racby-success); }
.racby-add-to-cart .out-of-stock { color: var(--racby-error); }

/* Qty + button = row */
.racby-add-to-cart .woocommerce-variation-add-to-cart,
.racby-add-to-cart .single_variation_wrap .woocommerce-variation-add-to-cart {
  display: flex;
  flex-direction: row;
  gap: 12px;
  align-items: stretch;
  width: 100%;
  max-width: 100%;
}

.racby-add-to-cart .quantity {
  width: 90px;
  min-width: 90px;
  flex-shrink: 0;
}

.racby-add-to-cart .quantity .qty {
  width: 100%;
  height: 56px;
  text-align: center;
  font-size: 16px;
  font-weight: 600;
  border: 2px solid var(--racby-gray-200);
  border-radius: var(--racby-radius-md);
  background: var(--racby-white);
  appearance: textfield;
}

.racby-add-to-cart .quantity .qty:focus {
  border-color: var(--racby-gold);
  outline: none;
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15);
}

/* CTA Button */
.racby-add-to-cart .single_add_to_cart_button,
.racby-add-to-cart button[type="submit"],
.racby-add-to-cart .button.alt {
  flex: 1;
  min-width: 0;
  height: 56px;
  background: linear-gradient(135deg, var(--racby-black) 0%, var(--racby-violet) 100%);
  color: var(--racby-white);
  border: none;
  border-radius: var(--racby-radius-md);
  font-size: 15px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  cursor: pointer;
  transition: var(--racby-transition);
  margin: 0;
  padding: 0 24px;
}

.racby-add-to-cart .single_add_to_cart_button:hover,
.racby-add-to-cart button[type="submit"]:hover,
.racby-add-to-cart .button.alt:hover {
  background: linear-gradient(135deg, var(--racby-violet) 0%, var(--racby-black) 100%);
  color: var(--racby-gold);
  transform: translateY(-2px);
  box-shadow: var(--racby-shadow-violet);
}

.racby-add-to-cart .single_add_to_cart_button:disabled {
  background: var(--racby-gray-300);
  color: var(--racby-gray-500);
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

/* ==========================================
   PAYMENT METHODS
   ========================================== */
.racby-payment-methods {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 12px;
  padding: 20px 24px;
  background: var(--racby-gray-50);
  border-radius: var(--racby-radius-md);
  margin-top: 24px;
  border: 1px solid var(--racby-gray-200);
}

.racby-payment-label {
  width: 100%;
  text-align: center;
  font-size: 11px;
  color: var(--racby-gray-500);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  font-weight: 600;
  margin-bottom: 12px;
}

.racby-payment-methods svg.racby-payment-icon {
  height: 32px;
  width: auto;
  max-width: 55px;
  transition: var(--racby-transition);
}

.racby-payment-methods svg.racby-payment-icon:hover {
  transform: scale(1.12) translateY(-1px);
}

/* ==========================================
   TRUST BADGES
   ========================================== */
.racby-trust-badges {
  display: flex;
  flex-direction: column;
  border: 1px solid var(--racby-gray-200);
  border-radius: var(--racby-radius-md);
  overflow: hidden;
  margin: 24px 0;
}

.racby-trust-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px 20px;
  font-size: 14px;
  font-weight: 500;
  color: var(--racby-gray-700);
  border-bottom: 1px solid var(--racby-gray-100);
  transition: var(--racby-transition);
}

.racby-trust-item:last-child { border-bottom: none; }
.racby-trust-item:hover { background: var(--racby-gray-50); }
.racby-trust-item svg { width: 22px; height: 22px; color: var(--racby-gold); flex-shrink: 0; }

/* ==========================================
   ACCORDEONS
   ========================================== */
.racby-accordions {
  border-top: 1px solid var(--racby-gray-200);
  margin-top: 24px;
}

.racby-accordion { border-bottom: 1px solid var(--racby-gray-200); }

#racby-product .racby-accordion-header {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px 0;
  background: none;
  border: none;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: var(--racby-transition);
  color: var(--racby-gold);
}

#racby-product .racby-accordion-icon {
  width: 24px;
  height: 24px;
  transition: var(--racby-transition);
  color: var(--racby-gold);
}

#racby-product .racby-accordion-header:hover,
#racby-product .racby-accordion-header:focus,
#racby-product .racby-accordion-header:focus-visible {
  color: var(--racby-gold) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(212,175,55,.35) !important;
}

#racby-product .racby-accordion-header[aria-expanded="true"] .racby-accordion-icon {
  transform: rotate(180deg);
}

#racby-product .racby-accordion-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height .4s ease;
}

#racby-product .racby-accordion-content.active {
  max-height: none !important;
  overflow: visible !important;
  padding-bottom: 24px;
}

/* ==========================================
   SECTIONS + UPSELLS
   ========================================== */
.racby-section {
  padding: 80px 0;
  border-top: 1px solid var(--racby-gray-200);
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.racby-section.visible { opacity: 1; transform: translateY(0); }

.racby-upsells-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 20px !important;
  width: 100% !important;
  max-width: 100% !important;
}

.racby-upsell-item {
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}

/* ==========================================
   MODALS
   ========================================== */
.racby-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: var(--racby-transition);
}

.racby-modal.active { opacity: 1; visibility: visible; }

.racby-modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.85);
  backdrop-filter: blur(8px);
}

.racby-modal-content {
  position: relative;
  background: var(--racby-white);
  border-radius: var(--racby-radius-lg);
  padding: 40px;
  max-width: 90%;
  max-height: 90vh;
  overflow-y: auto;
  transform: scale(0.9) translateY(20px);
  transition: var(--racby-transition);
}

.racby-modal.active .racby-modal-content { transform: scale(1) translateY(0); }

.racby-modal-close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 40px;
  height: 40px;
  background: var(--racby-gray-100);
  border: none;
  border-radius: var(--racby-radius-full);
  font-size: 20px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: var(--racby-transition);
  color: var(--racby-gray-600);
}

.racby-modal-close:hover { background: var(--racby-black); color: var(--racby-white); }

/* ==========================================
   STRIPE / WOOCOMMERCE VIDE - CACHER
   ========================================== */
#wc-stripe-payment-request-wrapper:empty,
.wc-stripe-payment-request-wrapper:empty,
.wcpay-express-checkout-wrapper:empty,
#wc-stripe-payment-request-wrapper > *:empty,
.wc-stripe-payment-request-wrapper > *:empty,
.wcpay-express-checkout-wrapper > *:empty,
.PrivateStripeElement:empty,
[class*="StripeElement"]:empty {
  display: none !important;
}

/* ==========================================
   FIXES KADENCE
   ========================================== */

/* Désactiver la sticky bar Kadence */
.kadence-sticky-add-to-cart,
.woocommerce-sticky-add-to-cart,
.sticky-add-to-cart,
[class*="sticky-add-to-cart"],
[class*="sticky-cart"] {
  display: none !important;
}

/* Fix logo */
.site-header img.custom-logo,
.site-header .site-branding img,
.site-header .site-logo img,
.kadence-header-row img.custom-logo,
.kadence-header-row .site-branding img {
  width: auto !important;
  max-width: 140px !important;
  max-height: 44px !important;
  height: auto !important;
  object-fit: contain !important;
}

/* ==========================================
   ANIMATIONS
   ========================================== */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ==========================================
   RESPONSIVE - TABLETTE (1024px)
   ========================================== */
@media (max-width: 1024px) {
  .racby-product-main {
    grid-template-columns: 1fr !important;
    gap: 30px !important;
  }

  /* Désactiver sticky sur tablette/mobile */
  .racby-product-gallery {
    position: relative !important;
    top: 0 !important;
    max-height: none !important;
  }

  .racby-gallery-main {
    max-height: 500px !important;
  }

  .racby-gallery-thumbs {
    max-height: none !important;
  }

  .racby-upsells-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }
}

/* ==========================================
   RESPONSIVE - MOBILE (768px)
   ========================================== */
@media (max-width: 768px) {

  .racby-product-container {
    padding: 20px 16px 40px !important;
    overflow-x: hidden !important;
  }

  .racby-product-main {
    gap: 20px !important;
  }

  .racby-product-title { font-size: 24px; }
  .racby-product-price .price { font-size: 26px; }
  .racby-section { padding: 50px 0; }

  /* Galerie -> thumbs horizontaux */
  .racby-gallery-wrapper {
    flex-direction: column-reverse !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  .racby-gallery-thumbs {
    flex-direction: row !important;
    width: 100% !important;
    max-width: calc(100vw - 32px) !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 12px 0 !important;
    gap: 8px !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .racby-gallery-thumbs::-webkit-scrollbar { display: none !important; }

  .racby-thumb {
    width: 60px !important;
    height: 60px !important;
    flex: 0 0 60px !important;
  }

  .racby-gallery-main {
    width: 100% !important;
    max-width: calc(100vw - 32px) !important;
    max-height: 400px !important;
    aspect-ratio: 1 / 1 !important;
  }

  /* Galerie container mobile */
  body.single-product .racby-product-gallery {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  /* Qty + bouton -> colonne */
  .racby-add-to-cart .woocommerce-variation-add-to-cart,
  .racby-add-to-cart .single_variation_wrap .woocommerce-variation-add-to-cart {
    flex-direction: column;
    gap: 12px;
  }

  .racby-add-to-cart .quantity {
    width: 100px !important;
    margin: 0 auto !important;
  }

  .racby-add-to-cart .single_add_to_cart_button {
    width: 100% !important;
    height: 54px !important;
  }

  /* Paiements + trust compacts */
  .racby-payment-methods { padding: 16px; gap: 10px; }
  .racby-payment-methods svg.racby-payment-icon { height: 26px; max-width: 45px; }
  .racby-trust-item { padding: 12px 14px; font-size: 12px; gap: 10px; }
  .racby-trust-item svg { width: 18px; height: 18px; }

  /* Logo mobile */
  .site-header img.custom-logo,
  .site-header .site-branding img,
  .site-header .site-logo img,
  .kadence-header-row img.custom-logo,
  .kadence-header-row .site-branding img {
    max-width: 120px !important;
    max-height: 40px !important;
  }

  /* WooPayments Express */
  body.single-product .wcpay-express-checkout-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    gap: 12px !important;
    flex-wrap: nowrap !important;
    margin-top: 12px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  body.single-product .wcpay-express-checkout-wrapper > * {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  body.single-product .wcpay-express-checkout-wrapper .PrivateStripeElement,
  body.single-product .wcpay-express-checkout-wrapper iframe {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    display: block !important;
  }

  /* Containers mobile - pas de débordement */
  body.single-product .site,
  body.single-product #page,
  body.single-product .site-content,
  body.single-product .content-area,
  body.single-product #primary,
  body.single-product #main,
  body.single-product .entry-content,
  body.single-product .woocommerce,
  body.single-product div.product,
  body.single-product .product,
  body.single-product .summary,
  body.single-product .racby-product-page,
  body.single-product .racby-product-container,
  body.single-product #racby-product {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  /* Formulaire panier mobile */
  body.single-product form.cart,
  body.single-product form.variations_form {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  body.single-product table.variations {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
  }

  body.single-product table.variations tbody,
  body.single-product table.variations tr {
    display: block !important;
    width: 100% !important;
    margin-bottom: 16px !important;
  }

  body.single-product table.variations th,
  body.single-product table.variations td {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  body.single-product table.variations select {
    width: 100% !important;
    max-width: 100% !important;
    height: 52px !important;
    box-sizing: border-box !important;
  }

  /* Upsells mobile */
  .racby-upsells-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    overflow: hidden !important;
  }

  .racby-upsell-item img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
  }

  .racby-upsell-title,
  .racby-upsell-item h3 {
    font-size: 12px !important;
    line-height: 1.3 !important;
    max-height: 2.6em !important;
    overflow: hidden !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    word-wrap: break-word !important;
  }

  .racby-upsell-price { font-size: 13px !important; }

  .racby-upsell-item .button {
    width: 100% !important;
    font-size: 11px !important;
    padding: 8px 10px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  /* Titre produit - anti-débordement */
  body.single-product .racby-product-title {
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
  }

  /* Images mobile */
  body.single-product img {
    max-width: 100% !important;
    height: auto !important;
  }

  /* Modal mobile */
  .racby-modal-content {
    padding: 24px;
    margin: 16px;
    max-width: calc(100% - 32px);
  }

  /* Box-sizing global mobile */
  body.single-product *,
  body.single-product *::before,
  body.single-product *::after {
    box-sizing: border-box !important;
  }

  body.single-product *:not(svg):not(.racby-stars):not(.racby-stars *) {
    max-width: 100vw !important;
  }

  /* Admin bar mobile */
  #wpadminbar {
    position: fixed !important;
    width: 100% !important;
    max-width: 100vw !important;
    overflow: hidden !important;
  }
}

/* ==========================================
   RESPONSIVE - TRÈS PETIT MOBILE (480px)
   ========================================== */
@media (max-width: 480px) {
  .racby-add-to-cart table.variations select { height: 48px !important; font-size: 14px !important; }
  .racby-add-to-cart .single_add_to_cart_button { height: 50px !important; font-size: 13px !important; letter-spacing: 0.5px; }
}

@media (max-width: 400px) {
  .racby-upsells-grid { gap: 8px !important; }
  .racby-upsell-title, .racby-upsell-item h3 { font-size: 11px !important; }
  .racby-upsell-price { font-size: 12px !important; }
  .racby-upsell-item .button { font-size: 10px !important; padding: 6px 8px !important; }
}
/**
 * RACBYSHOP - UPSELLS PREMIUM STYLE
 * ===================================
 * À AJOUTER À LA FIN de product-page.css
 * Donne aux produits "Complétez votre commande"
 * le même style premium que le reste de la page
 */

/* ==========================================
   SECTION TITRE
   ========================================== */
.racby-upsells .racby-section-title,
.racby-section.racby-upsells h2 {
  font-size: 28px;
  font-weight: 700;
  color: var(--racby-black);
  letter-spacing: -0.5px;
  margin-bottom: 40px;
}

/* ==========================================
   CARTE UPSELL - STYLE PREMIUM
   ========================================== */
.racby-upsell-item {
  background: var(--racby-white);
  border-radius: var(--racby-radius-lg);
  overflow: hidden;
  border: 1px solid var(--racby-gray-200);
  transition: var(--racby-transition);
  display: flex;
  flex-direction: column;
}

.racby-upsell-item:hover {
  border-color: var(--racby-gold);
  box-shadow: var(--racby-shadow-gold);
  transform: translateY(-4px);
}

/* ==========================================
   LIEN WRAPPER
   ========================================== */
.racby-upsell-link,
.racby-upsell-item > a {
  text-decoration: none !important;
  color: inherit !important;
  display: flex;
  flex-direction: column;
  flex: 1;
}

/* ==========================================
   IMAGE PRODUIT - STYLE GALERIE
   ========================================== */
.racby-upsell-image,
.racby-upsell-item .racby-upsell-image {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--racby-gray-50);
  border-bottom: 1px solid var(--racby-gray-100);
}

.racby-upsell-item img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.racby-upsell-item:hover img {
  transform: scale(1.08) !important;
}

/* ==========================================
   CONTENU TEXTE
   ========================================== */
.racby-upsell-content,
.racby-upsell-item > a > *:not(.racby-upsell-image):not(img) {
  padding: 16px;
}

/* Titre produit */
.racby-upsell-title,
.racby-upsell-item h3,
.racby-upsell-item .woocommerce-loop-product__title {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--racby-black) !important;
  line-height: 1.4 !important;
  margin: 0 0 8px 0 !important;
  padding: 16px 16px 0 16px !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  text-decoration: none !important;
  transition: color 0.3s ease !important;
}

.racby-upsell-item:hover h3,
.racby-upsell-item:hover .racby-upsell-title,
.racby-upsell-item:hover .woocommerce-loop-product__title {
  color: var(--racby-gold) !important;
}

/* Prix */
.racby-upsell-price,
.racby-upsell-item .price,
.racby-upsell-item span.price {
  font-size: 16px !important;
  font-weight: 800 !important;
  color: var(--racby-black) !important;
  padding: 0 16px 12px 16px !important;
  margin: 0 !important;
  display: flex !important;
  align-items: baseline !important;
  gap: 6px !important;
}

/* Prix barré (ancien prix) */
.racby-upsell-item .price del,
.racby-upsell-item .price .woocommerce-Price-amount del {
  font-size: 13px !important;
  font-weight: 500 !important;
  color: var(--racby-gray-400) !important;
  text-decoration: line-through !important;
}

/* Prix en promo */
.racby-upsell-item .price ins,
.racby-upsell-item .price .woocommerce-Price-amount ins {
  text-decoration: none !important;
  color: var(--racby-gold-dark) !important;
  font-weight: 800 !important;
}

/* Devise € */
.racby-upsell-item .woocommerce-Price-currencySymbol {
  font-size: 0.85em !important;
}

/* ==========================================
   BOUTON "CHOIX DES OPTIONS" - STYLE PREMIUM
   ========================================== */
.racby-upsell-item .button,
.racby-upsell-item a.button,
.racby-upsell-item a.add_to_cart_button,
.racby-upsell-item .add_to_cart_button,
.racby-upsell-item a.product_type_variable,
.racby-upsell-item a[href*="add-to-cart"],
.racby-upsell-item > a.button {
  display: block !important;
  width: calc(100% - 32px) !important;
  margin: auto 16px 16px 16px !important;
  padding: 12px 20px !important;
  background: linear-gradient(135deg, var(--racby-black) 0%, var(--racby-violet) 100%) !important;
  color: var(--racby-white) !important;
  border: none !important;
  border-radius: var(--racby-radius-md) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  line-height: 1.4 !important;
}

.racby-upsell-item .button:hover,
.racby-upsell-item a.button:hover,
.racby-upsell-item a.add_to_cart_button:hover,
.racby-upsell-item .add_to_cart_button:hover,
.racby-upsell-item a.product_type_variable:hover,
.racby-upsell-item a[href*="add-to-cart"]:hover,
.racby-upsell-item > a.button:hover {
  background: linear-gradient(135deg, var(--racby-violet) 0%, var(--racby-black) 100%) !important;
  color: var(--racby-gold) !important;
  transform: translateY(-2px) !important;
  box-shadow: var(--racby-shadow-violet) !important;
}

/* ==========================================
   ANIMATION ENTRÉE DES CARTES
   ========================================== */
.racby-upsell-item {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.5s ease, transform 0.5s ease, border-color 0.3s ease, box-shadow 0.3s ease;
}

.racby-upsell-item.animate-in {
  opacity: 1;
  transform: translateY(0);
}

/* ==========================================
   RESPONSIVE TABLETTE
   ========================================== */
@media (max-width: 1024px) {
  .racby-upsell-title,
  .racby-upsell-item h3,
  .racby-upsell-item .woocommerce-loop-product__title {
    font-size: 13px !important;
  }

  .racby-upsell-price,
  .racby-upsell-item .price {
    font-size: 15px !important;
  }
}

/* ==========================================
   RESPONSIVE MOBILE
   ========================================== */
@media (max-width: 768px) {

  .racby-upsells .racby-section-title,
  .racby-section.racby-upsells h2 {
    font-size: 22px;
    margin-bottom: 24px;
  }

  .racby-upsell-item:hover {
    transform: none; /* Pas de translateY sur mobile (touch) */
  }

  .racby-upsell-title,
  .racby-upsell-item h3,
  .racby-upsell-item .woocommerce-loop-product__title {
    font-size: 12px !important;
    padding: 12px 12px 0 12px !important;
    -webkit-line-clamp: 2 !important;
  }

  .racby-upsell-price,
  .racby-upsell-item .price {
    font-size: 14px !important;
    padding: 4px 12px 8px 12px !important;
  }

  .racby-upsell-item .price del {
    font-size: 11px !important;
  }

  .racby-upsell-item .button,
  .racby-upsell-item a.button,
  .racby-upsell-item a.add_to_cart_button,
  .racby-upsell-item .add_to_cart_button,
  .racby-upsell-item a.product_type_variable {
    width: calc(100% - 24px) !important;
    margin: auto 12px 12px 12px !important;
    padding: 10px 12px !important;
    font-size: 11px !important;
    letter-spacing: 0.5px !important;
  }

  .racby-upsell-item .button:hover,
  .racby-upsell-item a.button:hover,
  .racby-upsell-item a.add_to_cart_button:hover,
  .racby-upsell-item a.product_type_variable:hover {
    transform: none !important;
  }
}

/* ==========================================
   TRÈS PETIT MOBILE
   ========================================== */
@media (max-width: 400px) {
  .racby-upsell-title,
  .racby-upsell-item h3 {
    font-size: 11px !important;
  }

  .racby-upsell-price,
  .racby-upsell-item .price {
    font-size: 13px !important;
  }

  .racby-upsell-item .button,
  .racby-upsell-item a.button,
  .racby-upsell-item a.add_to_cart_button,
  .racby-upsell-item a.product_type_variable {
    font-size: 10px !important;
    padding: 8px 10px !important;
  }
}
/**
 * RACBYSHOP - AVIS CLIENTS + ACCORDÉONS PREMIUM
 * ================================================
 * À AJOUTER À LA FIN de product-page.css
 */

/* ==========================================
   SECTION AVIS CLIENTS - PREMIUM
   ========================================== */

/* Container principal */
.racby-section.racby-reviews,
#reviews,
.woocommerce-Reviews {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;
}

/* Titre "Avis clients" */
.racby-section.racby-reviews .racby-section-title,
#reviews h2,
.woocommerce-Reviews-title {
  font-size: 28px !important;
  font-weight: 700 !important;
  color: var(--racby-black) !important;
  letter-spacing: -0.5px !important;
  margin-bottom: 32px !important;
}

/* Sous-titre "Avis" */
#reviews #comments h2,
#reviews .woocommerce-Reviews-title {
  font-size: 20px !important;
  font-weight: 600 !important;
  color: var(--racby-black) !important;
  margin-bottom: 16px !important;
}

/* Message "Il n'y a pas encore d'avis" */
#reviews .woocommerce-noreviews,
#reviews #comments p {
  font-size: 15px !important;
  color: var(--racby-gray-500) !important;
  font-style: italic !important;
}

/* ==========================================
   FORMULAIRE D'AVIS
   ========================================== */

/* Titre du formulaire "Soyez le premier..." */
#review_form_wrapper .comment-reply-title,
#reply-title {
  font-size: 22px !important;
  font-weight: 700 !important;
  color: var(--racby-black) !important;
  line-height: 1.35 !important;
  margin-bottom: 24px !important;
}

/* Labels "Votre note", "Votre avis" */
#review_form label,
#commentform label {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: var(--racby-black) !important;
  margin-bottom: 8px !important;
  display: block !important;
}

/* Étoiles de notation */
#review_form .stars,
#commentform .stars {
  display: flex !important;
  gap: 4px !important;
  margin-bottom: 16px !important;
}

#review_form .stars a,
#commentform .stars a {
  color: var(--racby-gray-300) !important;
  font-size: 24px !important;
  text-decoration: none !important;
  transition: color 0.2s ease !important;
}

#review_form .stars a:hover,
#review_form .stars a.active,
#commentform .stars a:hover,
#commentform .stars a.active {
  color: var(--racby-gold) !important;
}

/* Étoiles sélectionnées */
#review_form .stars.selected a.active ~ a,
#commentform .stars.selected a.active ~ a {
  color: var(--racby-gray-300) !important;
}

#review_form .stars.selected a,
#commentform .stars.selected a {
  color: var(--racby-gold) !important;
}

/* Textarea "Votre avis" */
#review_form textarea,
#commentform textarea,
#comment {
  width: 100% !important;
  min-height: 120px !important;
  padding: 16px !important;
  border: 2px solid var(--racby-gray-200) !important;
  border-radius: var(--racby-radius-md) !important;
  font-size: 15px !important;
  font-family: inherit !important;
  color: var(--racby-black) !important;
  background: var(--racby-white) !important;
  transition: border-color 0.3s ease, box-shadow 0.3s ease !important;
  resize: vertical !important;
}

#review_form textarea:focus,
#commentform textarea:focus,
#comment:focus {
  border-color: var(--racby-gold) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15) !important;
}

/* Champs nom / email (si affichés) */
#review_form input[type="text"],
#review_form input[type="email"],
#commentform input[type="text"],
#commentform input[type="email"] {
  width: 100% !important;
  height: 52px !important;
  padding: 0 16px !important;
  border: 2px solid var(--racby-gray-200) !important;
  border-radius: var(--racby-radius-md) !important;
  font-size: 15px !important;
  font-family: inherit !important;
  color: var(--racby-black) !important;
  background: var(--racby-white) !important;
  transition: border-color 0.3s ease, box-shadow 0.3s ease !important;
}

#review_form input[type="text"]:focus,
#review_form input[type="email"]:focus,
#commentform input[type="text"]:focus,
#commentform input[type="email"]:focus {
  border-color: var(--racby-gold) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15) !important;
}

/* ==========================================
   BOUTON "SOUMETTRE" - GRADIENT PREMIUM
   ========================================== */
#review_form input[type="submit"],
#review_form .submit,
#commentform input[type="submit"],
#commentform .submit,
#reviews .form-submit input[type="submit"] {
  display: inline-block !important;
  padding: 14px 40px !important;
  background: linear-gradient(135deg, var(--racby-black) 0%, var(--racby-violet) 100%) !important;
  color: var(--racby-white) !important;
  border: none !important;
  border-radius: var(--racby-radius-md) !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  cursor: pointer !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  margin-top: 8px !important;
}

#review_form input[type="submit"]:hover,
#commentform input[type="submit"]:hover,
#reviews .form-submit input[type="submit"]:hover {
  background: linear-gradient(135deg, var(--racby-violet) 0%, var(--racby-black) 100%) !important;
  color: var(--racby-gold) !important;
  transform: translateY(-2px) !important;
  box-shadow: var(--racby-shadow-violet) !important;
}

/* ==========================================
   AVIS EXISTANTS (quand il y en aura)
   ========================================== */

/* Liste d'avis */
#reviews .commentlist,
#reviews ol.commentlist {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 !important;
}

#reviews .commentlist li,
#reviews .commentlist .review {
  padding: 24px 0 !important;
  border-bottom: 1px solid var(--racby-gray-200) !important;
}

#reviews .commentlist li:last-child {
  border-bottom: none !important;
}

/* Avatar */
#reviews .commentlist .avatar {
  width: 48px !important;
  height: 48px !important;
  border-radius: var(--racby-radius-full) !important;
  border: 2px solid var(--racby-gray-200) !important;
}

/* Nom de l'auteur */
#reviews .commentlist .woocommerce-review__author,
#reviews .commentlist .comment-author {
  font-weight: 700 !important;
  color: var(--racby-black) !important;
  font-size: 15px !important;
}

/* Date */
#reviews .commentlist .woocommerce-review__published-date,
#reviews .commentlist time {
  font-size: 13px !important;
  color: var(--racby-gray-400) !important;
}

/* Étoiles dans les avis */
#reviews .commentlist .star-rating {
  color: var(--racby-gold) !important;
  font-size: 14px !important;
}

/* Texte de l'avis */
#reviews .commentlist .description p,
#reviews .commentlist .comment-text p {
  font-size: 15px !important;
  color: var(--racby-gray-700) !important;
  line-height: 1.6 !important;
}

/* ==========================================
   ACCORDÉONS - STYLE BOUTON GRADIENT
   ==========================================
   Remplace le style outline jaune par le
   même gradient noir/violet que les CTA
   ========================================== */

/* Header de l'accordéon */
#racby-product .racby-accordion-header {
  width: 100% !important;
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  padding: 18px 24px !important;
  background: linear-gradient(135deg, var(--racby-black) 0%, var(--racby-violet) 100%) !important;
  color: var(--racby-white) !important;
  border: none !important;
  border-radius: var(--racby-radius-md) !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.8px !important;
  cursor: pointer !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  margin-bottom: 4px !important;
}

#racby-product .racby-accordion-header:hover {
  background: linear-gradient(135deg, var(--racby-violet) 0%, var(--racby-black) 100%) !important;
  color: var(--racby-gold) !important;
  transform: translateY(-1px) !important;
  box-shadow: var(--racby-shadow-violet) !important;
  outline: none !important;
}

#racby-product .racby-accordion-header:focus,
#racby-product .racby-accordion-header:focus-visible {
  background: linear-gradient(135deg, var(--racby-violet) 0%, var(--racby-black) 100%) !important;
  color: var(--racby-gold) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(107, 70, 193, 0.4) !important;
}

/* Accordéon ouvert */
#racby-product .racby-accordion-header[aria-expanded="true"] {
  background: linear-gradient(135deg, var(--racby-violet) 0%, var(--racby-violet-dark) 100%) !important;
  color: var(--racby-gold) !important;
  border-radius: var(--racby-radius-md) var(--racby-radius-md) 0 0 !important;
  margin-bottom: 0 !important;
}

/* Icône chevron -> blanche */
#racby-product .racby-accordion-icon {
  width: 20px !important;
  height: 20px !important;
  color: currentColor !important;
  transition: transform 0.3s ease !important;
}

#racby-product .racby-accordion-header[aria-expanded="true"] .racby-accordion-icon {
  transform: rotate(180deg) !important;
}

/* Contenu de l'accordéon */
#racby-product .racby-accordion-content.active {
  background: var(--racby-gray-50) !important;
  border: 1px solid var(--racby-gray-200) !important;
  border-top: none !important;
  border-radius: 0 0 var(--racby-radius-md) var(--racby-radius-md) !important;
  padding: 24px !important;
  margin-bottom: 8px !important;
}

/* Texte dans les accordéons */
#racby-product .racby-accordion-content p,
#racby-product .racby-accordion-content li {
  font-size: 14px !important;
  color: var(--racby-gray-700) !important;
  line-height: 1.7 !important;
}

/* Supprimer les bordures de l'ancien style */
.racby-accordions {
  border-top: none !important;
  margin-top: 24px !important;
}

.racby-accordion {
  border-bottom: none !important;
  margin-bottom: 4px !important;
}

/* ==========================================
   RESPONSIVE MOBILE
   ========================================== */
@media (max-width: 768px) {

  /* Reviews */
  .racby-section.racby-reviews .racby-section-title,
  #reviews h2 {
    font-size: 22px !important;
  }

  #review_form_wrapper .comment-reply-title,
  #reply-title {
    font-size: 18px !important;
  }

  #review_form textarea,
  #comment {
    min-height: 100px !important;
  }

  #review_form input[type="submit"],
  #commentform input[type="submit"] {
    width: 100% !important;
    padding: 14px 24px !important;
  }

  /* Accordéons */
  #racby-product .racby-accordion-header {
    padding: 14px 18px !important;
    font-size: 13px !important;
    letter-spacing: 0.5px !important;
  }

  #racby-product .racby-accordion-content.active {
    padding: 18px !important;
  }

  #racby-product .racby-accordion-content p,
  #racby-product .racby-accordion-content li {
    font-size: 13px !important;
  }
}
/**
 * RACBYSHOP - FIX CONFLITS EXTENSIONS CSS
 * =========================================
 * À AJOUTER TOUT À LA FIN de product-page.css
 * (après le patch upsells + le patch reviews/accordéons)
 * 
 * PROBLÈME : "Style Cartes Produits Premium" applique
 * opacity:0 et translateY(10px) sur TOUS les .button
 * WooCommerce, y compris ceux des upsells et reviews.
 * 
 * Ce patch force les bons styles sur la page produit.
 */

/* ==========================================
   FIX 1 : BOUTONS UPSELLS - ANNULER opacity:0
   Le fichier "Style Cartes Produits Premium" met
   opacity:0 sur les .button dans ul.products
   Nos upsells NE SONT PAS dans ul.products mais
   le sélecteur WooCommerce global les attrape.
   ========================================== */

/* Force visibilité des boutons upsells */
body.single-product .racby-upsell-item .button,
body.single-product .racby-upsell-item a.button,
body.single-product .racby-upsell-item a.add_to_cart_button,
body.single-product .racby-upsell-item .add_to_cart_button,
body.single-product .racby-upsell-item a.product_type_variable,
body.single-product .racby-upsell-item a.product_type_simple,
body.single-product .racby-upsells-grid .button,
body.single-product .racby-upsells-grid a.button,
body.single-product .racby-upsells-grid .add_to_cart_button,
body.single-product .racby-section.racby-upsells .button,
body.single-product .racby-section.racby-upsells a.button,
body.single-product .racby-section.racby-upsells .add_to_cart_button {
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  display: block !important;
  width: calc(100% - 32px) !important;
  margin: auto 16px 16px 16px !important;
  padding: 12px 20px !important;
  background: linear-gradient(135deg, #1a1a1a 0%, #6B46C1 100%) !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 12px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  text-align: center !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  line-height: 1.4 !important;
  box-sizing: border-box !important;
  box-shadow: none !important;
  float: none !important;
  position: relative !important;
}

/* Hover des boutons upsells */
body.single-product .racby-upsell-item .button:hover,
body.single-product .racby-upsell-item a.button:hover,
body.single-product .racby-upsell-item a.add_to_cart_button:hover,
body.single-product .racby-upsell-item .add_to_cart_button:hover,
body.single-product .racby-upsell-item a.product_type_variable:hover,
body.single-product .racby-upsell-item a.product_type_simple:hover,
body.single-product .racby-upsells-grid .button:hover,
body.single-product .racby-upsells-grid a.button:hover,
body.single-product .racby-upsells-grid .add_to_cart_button:hover,
body.single-product .racby-section.racby-upsells .button:hover,
body.single-product .racby-section.racby-upsells a.button:hover {
  background: linear-gradient(135deg, #6B46C1 0%, #1a1a1a 100%) !important;
  color: #D4AF37 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(107, 70, 193, 0.4) !important;
  opacity: 1 !important;
}

/* ==========================================
   FIX 2 : CARTES UPSELLS - ANNULER STYLES BOUTIQUE
   ========================================== */

body.single-product .racby-upsell-item {
  background: #FFFFFF !important;
  border-radius: 16px !important;
  overflow: hidden !important;
  border: 1px solid #e5e5e5 !important;
  padding: 0 !important;
  padding-bottom: 0 !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
  transform: none !important;
  opacity: 1 !important;
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease !important;
}

body.single-product .racby-upsell-item:hover {
  border-color: #D4AF37 !important;
  box-shadow: 0 4px 20px rgba(212, 175, 55, 0.25) !important;
  transform: translateY(-4px) !important;
}

/* Images upsells */
body.single-product .racby-upsell-item img {
  border-radius: 0 !important;
  width: 100% !important;
  height: auto !important;
  object-fit: cover !important;
  margin: 0 !important;
  transition: transform 0.5s ease !important;
}

body.single-product .racby-upsell-item:hover img {
  transform: scale(1.08) !important;
}

/* Container image upsell */
body.single-product .racby-upsell-image {
  overflow: hidden !important;
  aspect-ratio: 1 / 1 !important;
  background: #fafafa !important;
}

/* Titre upsell */
body.single-product .racby-upsell-item h3,
body.single-product .racby-upsell-title,
body.single-product .racby-upsell-item .woocommerce-loop-product__title {
  font-size: 14px !important;
  font-weight: 600 !important;
  color: #1a1a1a !important;
  -webkit-text-fill-color: #1a1a1a !important;
  line-height: 1.4 !important;
  margin: 0 !important;
  padding: 16px 16px 0 16px !important;
  text-align: left !important;
  text-shadow: none !important;
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
  text-decoration: none !important;
}

body.single-product .racby-upsell-item:hover h3,
body.single-product .racby-upsell-item:hover .racby-upsell-title {
  color: #D4AF37 !important;
  -webkit-text-fill-color: #D4AF37 !important;
}

/* Prix upsell */
body.single-product .racby-upsell-item .price,
body.single-product .racby-upsell-price {
  font-size: 16px !important;
  font-weight: 800 !important;
  color: #1a1a1a !important;
  -webkit-text-fill-color: #1a1a1a !important;
  padding: 8px 16px 12px 16px !important;
  margin: 0 !important;
  text-align: left !important;
  background: none !important;
  -webkit-background-clip: unset !important;
  background-clip: unset !important;
  animation: none !important;
}

body.single-product .racby-upsell-item .price del {
  font-size: 13px !important;
  color: #a3a3a3 !important;
  -webkit-text-fill-color: #a3a3a3 !important;
}

body.single-product .racby-upsell-item .price ins {
  text-decoration: none !important;
  color: #B8960F !important;
  -webkit-text-fill-color: #B8960F !important;
}

/* ==========================================
   FIX 3 : ACCORDÉONS - FORCER GRADIENT
   Le fichier externe remet color: gold sur les headers
   On force le gradient par-dessus
   ========================================== */

body.single-product #racby-product .racby-accordion-header {
  padding: 18px 24px !important;
  background: linear-gradient(135deg, #1a1a1a 0%, #6B46C1 100%) !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 12px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.8px !important;
  cursor: pointer !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  margin-bottom: 4px !important;
  outline: none !important;
  box-shadow: none !important;
}

body.single-product #racby-product .racby-accordion-header *,
body.single-product #racby-product .racby-accordion-header .racby-accordion-icon {
  color: #FFFFFF !important;
}

body.single-product #racby-product .racby-accordion-header:hover,
body.single-product #racby-product .racby-accordion-header:hover * {
  background: linear-gradient(135deg, #6B46C1 0%, #1a1a1a 100%) !important;
  color: #D4AF37 !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 20px rgba(107, 70, 193, 0.25) !important;
  outline: none !important;
}

body.single-product #racby-product .racby-accordion-header:focus,
body.single-product #racby-product .racby-accordion-header:focus-visible {
  background: linear-gradient(135deg, #6B46C1 0%, #1a1a1a 100%) !important;
  color: #D4AF37 !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(107, 70, 193, 0.4) !important;
}

body.single-product #racby-product .racby-accordion-header:focus *,
body.single-product #racby-product .racby-accordion-header:focus-visible * {
  color: #D4AF37 !important;
}

body.single-product #racby-product .racby-accordion-header[aria-expanded="true"] {
  background: linear-gradient(135deg, #6B46C1 0%, #553C9A 100%) !important;
  color: #D4AF37 !important;
  border-radius: 12px 12px 0 0 !important;
  margin-bottom: 0 !important;
}

body.single-product #racby-product .racby-accordion-header[aria-expanded="true"] * {
  color: #D4AF37 !important;
}

/* Contenu accordéon ouvert */
body.single-product #racby-product .racby-accordion-content.active {
  background: #fafafa !important;
  border: 1px solid #e5e5e5 !important;
  border-top: none !important;
  border-radius: 0 0 12px 12px !important;
  padding: 24px !important;
  margin-bottom: 8px !important;
  max-height: none !important;
  overflow: visible !important;
}

/* Supprimer les anciennes bordures */
body.single-product .racby-accordions {
  border-top: none !important;
}

body.single-product .racby-accordion {
  border-bottom: none !important;
  margin-bottom: 4px !important;
}

/* ==========================================
   FIX 4 : BOUTON SOUMETTRE AVIS
   ========================================== */

body.single-product #review_form input[type="submit"],
body.single-product #commentform input[type="submit"],
body.single-product #reviews .form-submit input[type="submit"] {
  display: inline-block !important;
  padding: 14px 40px !important;
  background: linear-gradient(135deg, #1a1a1a 0%, #6B46C1 100%) !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 12px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  cursor: pointer !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

body.single-product #review_form input[type="submit"]:hover,
body.single-product #commentform input[type="submit"]:hover,
body.single-product #reviews .form-submit input[type="submit"]:hover {
  background: linear-gradient(135deg, #6B46C1 0%, #1a1a1a 100%) !important;
  color: #D4AF37 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(107, 70, 193, 0.4) !important;
}

/* ==========================================
   FIX 5 : RESPONSIVE MOBILE UPSELLS
   ========================================== */

@media (max-width: 768px) {

  body.single-product .racby-upsell-item:hover {
    transform: none !important;
  }

  body.single-product .racby-upsell-item h3,
  body.single-product .racby-upsell-title {
    font-size: 12px !important;
    padding: 12px 12px 0 12px !important;
  }

  body.single-product .racby-upsell-item .price,
  body.single-product .racby-upsell-price {
    font-size: 14px !important;
    padding: 4px 12px 8px 12px !important;
  }

  body.single-product .racby-upsell-item .button,
  body.single-product .racby-upsell-item a.button,
  body.single-product .racby-upsell-item a.add_to_cart_button,
  body.single-product .racby-upsell-item a.product_type_variable,
  body.single-product .racby-upsells-grid .button,
  body.single-product .racby-section.racby-upsells .button {
    width: calc(100% - 24px) !important;
    margin: auto 12px 12px 12px !important;
    padding: 10px 12px !important;
    font-size: 11px !important;
    letter-spacing: 0.5px !important;
    opacity: 1 !important;
    transform: none !important;
  }

  body.single-product .racby-upsell-item .button:hover,
  body.single-product .racby-upsell-item a.button:hover,
  body.single-product .racby-upsells-grid .button:hover {
    transform: none !important;
  }

  /* Accordéons mobile */
  body.single-product #racby-product .racby-accordion-header {
    padding: 14px 18px !important;
    font-size: 13px !important;
  }

  body.single-product #racby-product .racby-accordion-content.active {
    padding: 18px !important;
  }

  /* Bouton soumettre mobile */
  body.single-product #review_form input[type="submit"],
  body.single-product #commentform input[type="submit"] {
    width: 100% !important;
    opacity: 1 !important;
    transform: none !important;
  }
}

@media (max-width: 400px) {
  body.single-product .racby-upsell-item h3,
  body.single-product .racby-upsell-title {
    font-size: 11px !important;
  }

  body.single-product .racby-upsell-item .price {
    font-size: 13px !important;
  }

  body.single-product .racby-upsell-item .button,
  body.single-product .racby-upsells-grid .button {
    font-size: 10px !important;
    padding: 8px 10px !important;
    opacity: 1 !important;
  }
}
/**
 * RACBYSHOP - FIX MOBILE RESPONSIVE
 * ===================================
 * À AJOUTER TOUT À LA FIN de product-page.css
 * (après le fix-conflits-extensions)
 *
 * CORRIGE :
 * 1. Image principale qui déborde à droite
 * 2. Bouton "Ajouter au panier" fond jaune → gradient noir/violet
 * 3. Accordéons coupés à droite
 * 4. Galerie pas responsive entre image et description
 */

/* ==========================================
   MOBILE - FIX GLOBAL OVERFLOW
   ========================================== */

@media (max-width: 768px) {

  /* ---- RESET OVERFLOW SUR TOUT ---- */
  html {
    overflow-x: hidden !important;
    width: 100% !important;
  }

  body,
  body.single-product {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100vw !important;
  }

  /* Tous les containers Kadence / WP */
  body.single-product .site,
  body.single-product .wp-site-blocks,
  body.single-product .site-container,
  body.single-product .site-inner,
  body.single-product .content-wrap,
  body.single-product #page,
  body.single-product #content,
  body.single-product #primary,
  body.single-product #main,
  body.single-product .site-content,
  body.single-product .content-area,
  body.single-product .site-main,
  body.single-product .entry-content,
  body.single-product .entry-content-wrap,
  body.single-product .woocommerce,
  body.single-product div.product,
  body.single-product .product,
  body.single-product .summary {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  /* ---- CONTAINER PRODUIT ---- */
  body.single-product .racby-product-page,
  body.single-product #racby-product {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  body.single-product .racby-product-container {
    width: 100% !important;
    max-width: 100% !important;
    padding: 20px 16px 40px 16px !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
  }

  /* ---- LAYOUT UNE COLONNE ---- */
  body.single-product .racby-product-main {
    display: flex !important;
    flex-direction: column !important;
    gap: 24px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  /* ==========================================
     GALERIE MOBILE - FIX IMAGE DÉBORDANTE
     ========================================== */

  body.single-product .racby-product-gallery {
    position: relative !important;
    top: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  body.single-product .racby-gallery-wrapper {
    display: flex !important;
    flex-direction: column-reverse !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 10px !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  /* IMAGE PRINCIPALE - CONTENIR DANS LE VIEWPORT */
  body.single-product .racby-gallery-main {
    width: 100% !important;
    max-width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    border-radius: 12px !important;
    overflow: hidden !important;
    background: #fafafa !important;
    box-sizing: border-box !important;
    flex: none !important;
  }

  body.single-product .racby-gallery-main img,
  body.single-product .racby-main-image,
  body.single-product .racby-gallery-main .racby-main-image {
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    display: block !important;
    border-radius: 0 !important;
  }

  /* THUMBNAILS - SCROLL HORIZONTAL */
  body.single-product .racby-gallery-thumbs {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    gap: 8px !important;
    padding: 8px 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }

  body.single-product .racby-gallery-thumbs::-webkit-scrollbar {
    display: none !important;
  }

  body.single-product .racby-thumb {
    flex: 0 0 60px !important;
    width: 60px !important;
    min-width: 60px !important;
    height: 60px !important;
    border-radius: 8px !important;
    box-sizing: border-box !important;
  }

  /* ==========================================
     INFOS PRODUIT MOBILE
     ========================================== */

  body.single-product .racby-product-info {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    padding: 0 !important;
  }

  /* Titre */
  body.single-product .racby-product-title {
    font-size: 22px !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
  }

  /* Prix */
  body.single-product .racby-product-price .price {
    font-size: 24px !important;
  }

  /* ==========================================
     VARIATIONS MOBILE
     ========================================== */

  body.single-product .racby-add-to-cart,
  body.single-product .racby-add-to-cart form.cart,
  body.single-product .racby-add-to-cart form.variations_form {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  body.single-product .racby-add-to-cart table.variations {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
  }

  body.single-product .racby-add-to-cart table.variations tbody,
  body.single-product .racby-add-to-cart table.variations tr {
    display: block !important;
    width: 100% !important;
  }

  body.single-product .racby-add-to-cart table.variations th,
  body.single-product .racby-add-to-cart table.variations td {
    display: block !important;
    width: 100% !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }

  body.single-product .racby-add-to-cart table.variations select {
    width: 100% !important;
    max-width: 100% !important;
    height: 52px !important;
    box-sizing: border-box !important;
  }

  /* ==========================================
     BOUTON "AJOUTER AU PANIER" MOBILE
     Force le gradient noir/violet
     (override le fond jaune/doré)
     ========================================== */

  body.single-product .racby-add-to-cart .single_add_to_cart_button,
  body.single-product .racby-add-to-cart button[type="submit"],
  body.single-product .racby-add-to-cart .button.alt,
  body.single-product .racby-add-to-cart button.single_add_to_cart_button,
  body.single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button,
  body.single-product .single_variation_wrap .single_add_to_cart_button,
  body.single-product form.cart .single_add_to_cart_button,
  body.single-product form.cart button[type="submit"] {
    width: 100% !important;
    max-width: 100% !important;
    height: 56px !important;
    margin: 0 !important;
    background: linear-gradient(135deg, #1a1a1a 0%, #6B46C1 100%) !important;
    color: #FFFFFF !important;
    border: none !important;
    border-radius: 12px !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    cursor: pointer !important;
    box-sizing: border-box !important;
    display: block !important;
    text-align: center !important;
    line-height: 56px !important;
    padding: 0 24px !important;
  }

  body.single-product .racby-add-to-cart .single_add_to_cart_button:hover,
  body.single-product form.cart .single_add_to_cart_button:hover,
  body.single-product form.cart button[type="submit"]:hover {
    background: linear-gradient(135deg, #6B46C1 0%, #1a1a1a 100%) !important;
    color: #D4AF37 !important;
  }

  /* Quantité + bouton en colonne */
  body.single-product .racby-add-to-cart .woocommerce-variation-add-to-cart,
  body.single-product .racby-add-to-cart .single_variation_wrap .woocommerce-variation-add-to-cart {
    display: flex !important;
    flex-direction: column !important;
    gap: 12px !important;
    width: 100% !important;
  }

  body.single-product .racby-add-to-cart .quantity {
    width: 100px !important;
    margin: 0 auto !important;
  }

  /* ==========================================
     ACCORDÉONS MOBILE - FULL WIDTH
     ========================================== */

  body.single-product #racby-product .racby-accordions {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  body.single-product #racby-product .racby-accordion {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }

  body.single-product #racby-product .racby-accordion-header {
    width: 100% !important;
    max-width: 100% !important;
    padding: 14px 18px !important;
    font-size: 13px !important;
    letter-spacing: 0.5px !important;
    border-radius: 12px !important;
    box-sizing: border-box !important;
    background: linear-gradient(135deg, #1a1a1a 0%, #6B46C1 100%) !important;
    color: #FFFFFF !important;
  }

  body.single-product #racby-product .racby-accordion-header * {
    color: #FFFFFF !important;
  }

  body.single-product #racby-product .racby-accordion-header[aria-expanded="true"] {
    border-radius: 12px 12px 0 0 !important;
  }

  body.single-product #racby-product .racby-accordion-content.active {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 18px !important;
    overflow-x: hidden !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* Contenu texte dans les accordéons */
  body.single-product #racby-product .racby-accordion-content p,
  body.single-product #racby-product .racby-accordion-content li,
  body.single-product #racby-product .racby-accordion-content table,
  body.single-product #racby-product .racby-accordion-content div {
    max-width: 100% !important;
    overflow-x: hidden !important;
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
  }

  /* ==========================================
     PAIEMENT + TRUST BADGES MOBILE
     ========================================== */

  body.single-product .racby-payment-methods {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 16px !important;
  }

  body.single-product .racby-trust-badges {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  /* ==========================================
     IMAGES GLOBALES MOBILE
     ========================================== */

  body.single-product img {
    max-width: 100% !important;
    height: auto !important;
  }

  /* ==========================================
     HACK ULTIME - RIEN NE DÉBORDE
     ========================================== */

  body.single-product *:not(svg):not(.racby-stars):not(.racby-stars *) {
    max-width: 100vw !important;
  }

  body.single-product *,
  body.single-product *::before,
  body.single-product *::after {
    box-sizing: border-box !important;
  }
}

/* ==========================================
   TRÈS PETIT MOBILE (480px)
   ========================================== */

@media (max-width: 480px) {

  body.single-product .racby-product-container {
    padding: 16px 12px 32px 12px !important;
  }

  body.single-product .racby-product-title {
    font-size: 20px !important;
  }

  body.single-product .racby-add-to-cart .single_add_to_cart_button,
  body.single-product form.cart .single_add_to_cart_button {
    height: 50px !important;
    font-size: 13px !important;
    line-height: 50px !important;
  }

  body.single-product .racby-add-to-cart table.variations select {
    height: 48px !important;
    font-size: 14px !important;
  }

  body.single-product #racby-product .racby-accordion-header {
    padding: 12px 14px !important;
    font-size: 12px !important;
  }

  body.single-product .racby-thumb {
    flex: 0 0 52px !important;
    width: 52px !important;
    min-width: 52px !important;
    height: 52px !important;
  }
}
/**
 * RACBYSHOP - FIX TITRE + VARIATIONS PREMIUM
 * ============================================
 * À AJOUTER TOUT À LA FIN de product-page.css
 *
 * CORRIGE :
 * 1. Titre produit manquant/invisible
 * 2. Selects de variation style premium noir/violet/or
 * 3. Bouton "Ajouter au panier" gradient correct
 * 4. Labels de variation stylés
 */

/* ==========================================
   1. TITRE PRODUIT - FORCER AFFICHAGE
   ========================================== */

body.single-product .racby-product-title,
body.single-product #racby-product .racby-product-title,
body.single-product .racby-product-info .racby-product-title,
body.single-product .racby-product-info h1 {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  font-size: 32px !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  -webkit-text-fill-color: #1a1a1a !important;
  margin: 8px 0 20px 0 !important;
  padding: 0 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.5px !important;
  text-transform: none !important;
  background: none !important;
  text-shadow: none !important;
  max-width: 100% !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
}

@media (max-width: 768px) {
  body.single-product .racby-product-title,
  body.single-product #racby-product .racby-product-title,
  body.single-product .racby-product-info .racby-product-title,
  body.single-product .racby-product-info h1 {
    font-size: 22px !important;
  }
}

/* ==========================================
   2. LABELS DE VARIATION
   ========================================== */

body.single-product .racby-add-to-cart table.variations th label,
body.single-product .racby-add-to-cart table.variations .label label,
body.single-product .racby-add-to-cart table.variations td.label label,
body.single-product #racby-product table.variations th label,
body.single-product #racby-product table.variations .label label,
body.single-product form.variations_form table.variations th label,
body.single-product form.variations_form table.variations .label label {
  font-weight: 700 !important;
  font-size: 14px !important;
  color: #1a1a1a !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  margin-bottom: 10px !important;
  display: block !important;
  position: relative !important;
  padding-left: 0 !important;
}

/* Petit trait doré sous le label */
body.single-product .racby-add-to-cart table.variations th label::after,
body.single-product .racby-add-to-cart table.variations .label label::after,
body.single-product form.variations_form table.variations th label::after,
body.single-product form.variations_form table.variations .label label::after {
  content: '' !important;
  display: block !important;
  width: 30px !important;
  height: 2px !important;
  background: #D4AF37 !important;
  margin-top: 6px !important;
  border-radius: 1px !important;
}

/* ==========================================
   3. SELECTS DE VARIATION - STYLE PREMIUM
   ========================================== */

body.single-product .racby-add-to-cart table.variations select,
body.single-product #racby-product table.variations select,
body.single-product form.variations_form table.variations select,
body.single-product form.cart table.variations select {
  width: 100% !important;
  height: 56px !important;
  padding: 0 44px 0 20px !important;
  border: 2px solid #e5e5e5 !important;
  border-radius: 12px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #1a1a1a !important;
  background-color: #FFFFFF !important;
  cursor: pointer !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  appearance: none !important;
  -webkit-appearance: none !important;
  -moz-appearance: none !important;
  /* Chevron custom violet */
  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='%236B46C1' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  background-size: 20px !important;
  box-sizing: border-box !important;
}

/* Hover */
body.single-product .racby-add-to-cart table.variations select:hover,
body.single-product #racby-product table.variations select:hover,
body.single-product form.variations_form table.variations select:hover,
body.single-product form.cart table.variations select:hover {
  border-color: #6B46C1 !important;
  box-shadow: 0 0 0 3px rgba(107, 70, 193, 0.1) !important;
}

/* Focus */
body.single-product .racby-add-to-cart table.variations select:focus,
body.single-product #racby-product table.variations select:focus,
body.single-product form.variations_form table.variations select:focus,
body.single-product form.cart table.variations select:focus {
  border-color: #6B46C1 !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(107, 70, 193, 0.2),
              0 4px 12px rgba(107, 70, 193, 0.1) !important;
}

/* Option sélectionnée (quand une valeur est choisie) */
body.single-product .racby-add-to-cart table.variations select:not([data-attribute_name=""]):valid,
body.single-product form.cart table.variations select:valid {
  border-color: #D4AF37 !important;
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.15) !important;
}

/* ==========================================
   4. DROPDOWN OPTIONS - STYLE SOMBRE
   (Fonctionne sur Chrome/Edge, limité sur Safari/Firefox)
   ========================================== */

body.single-product .racby-add-to-cart table.variations select option,
body.single-product form.cart table.variations select option,
body.single-product form.variations_form select option {
  padding: 12px 16px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #1a1a1a !important;
  background: #FFFFFF !important;
}

/* Option au hover (Chrome) */
body.single-product .racby-add-to-cart table.variations select option:hover,
body.single-product form.cart table.variations select option:hover {
  background: linear-gradient(135deg, #6B46C1, #553C9A) !important;
  color: #FFFFFF !important;
}

/* Option sélectionnée */
body.single-product .racby-add-to-cart table.variations select option:checked,
body.single-product form.cart table.variations select option:checked {
  background: linear-gradient(135deg, #1a1a1a, #6B46C1) !important;
  color: #D4AF37 !important;
  font-weight: 700 !important;
}

/* Lien "Effacer" / Reset variations */
body.single-product .racby-add-to-cart .reset_variations,
body.single-product form.cart .reset_variations,
body.single-product .reset_variations a {
  display: inline-block !important;
  margin-top: 12px !important;
  font-size: 13px !important;
  color: #6B46C1 !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  transition: color 0.3s ease !important;
  letter-spacing: 0.3px !important;
}

body.single-product .racby-add-to-cart .reset_variations:hover,
body.single-product .reset_variations a:hover {
  color: #D4AF37 !important;
  text-decoration: underline !important;
}

/* ==========================================
   5. PRIX DE VARIATION
   ========================================== */

body.single-product .racby-add-to-cart .woocommerce-variation-price,
body.single-product .racby-add-to-cart .woocommerce-variation-price .price,
body.single-product .single_variation_wrap .woocommerce-variation-price .price {
  font-size: 28px !important;
  font-weight: 800 !important;
  color: #1a1a1a !important;
  margin-bottom: 12px !important;
}

body.single-product .racby-add-to-cart .woocommerce-variation-price .price del {
  font-size: 18px !important;
  color: #a3a3a3 !important;
  font-weight: 500 !important;
}

body.single-product .racby-add-to-cart .woocommerce-variation-price .price ins {
  text-decoration: none !important;
  color: #1a1a1a !important;
}

/* Stock */
body.single-product .racby-add-to-cart .stock.in-stock {
  color: #22c55e !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}

body.single-product .racby-add-to-cart .stock.in-stock::before {
  content: '●' !important;
  font-size: 8px !important;
  color: #22c55e !important;
}

body.single-product .racby-add-to-cart .stock.out-of-stock {
  color: #ef4444 !important;
  font-weight: 600 !important;
}

/* ==========================================
   6. BOUTON "AJOUTER AU PANIER" - GRADIENT FORCÉ
   (Desktop + Mobile)
   ========================================== */

body.single-product .racby-add-to-cart .single_add_to_cart_button,
body.single-product .racby-add-to-cart button[type="submit"],
body.single-product .racby-add-to-cart .button.alt,
body.single-product .woocommerce-variation-add-to-cart .single_add_to_cart_button,
body.single-product .single_variation_wrap .single_add_to_cart_button,
body.single-product form.cart .single_add_to_cart_button,
body.single-product form.cart button[type="submit"],
body.single-product form.cart .button.alt {
  background: linear-gradient(135deg, #1a1a1a 0%, #6B46C1 100%) !important;
  color: #FFFFFF !important;
  border: none !important;
  border-radius: 12px !important;
  font-size: 15px !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 1px !important;
  cursor: pointer !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  height: 56px !important;
  padding: 0 24px !important;
  opacity: 1 !important;
  visibility: visible !important;
}

body.single-product .racby-add-to-cart .single_add_to_cart_button:hover,
body.single-product form.cart .single_add_to_cart_button:hover,
body.single-product form.cart button[type="submit"]:hover,
body.single-product form.cart .button.alt:hover {
  background: linear-gradient(135deg, #6B46C1 0%, #1a1a1a 100%) !important;
  color: #D4AF37 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 24px rgba(107, 70, 193, 0.35) !important;
}

body.single-product .racby-add-to-cart .single_add_to_cart_button:disabled {
  background: #d4d4d4 !important;
  color: #737373 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

/* ==========================================
   7. QUANTITÉ - STYLE PREMIUM
   ========================================== */

body.single-product .racby-add-to-cart .quantity .qty,
body.single-product form.cart .quantity .qty {
  width: 100% !important;
  height: 56px !important;
  text-align: center !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  border: 2px solid #e5e5e5 !important;
  border-radius: 12px !important;
  background: #FFFFFF !important;
  appearance: textfield !important;
  -moz-appearance: textfield !important;
  transition: border-color 0.3s ease, box-shadow 0.3s ease !important;
}

body.single-product .racby-add-to-cart .quantity .qty:focus,
body.single-product form.cart .quantity .qty:focus {
  border-color: #6B46C1 !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(107, 70, 193, 0.2) !important;
}

/* Cacher les spinners du qty */
body.single-product .racby-add-to-cart .quantity .qty::-webkit-inner-spin-button,
body.single-product .racby-add-to-cart .quantity .qty::-webkit-outer-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}

/* ==========================================
   8. RESPONSIVE MOBILE
   ========================================== */

@media (max-width: 768px) {

  body.single-product .racby-product-title,
  body.single-product .racby-product-info h1 {
    font-size: 22px !important;
    margin: 8px 0 16px 0 !important;
  }

  body.single-product .racby-add-to-cart table.variations select,
  body.single-product form.cart table.variations select {
    height: 52px !important;
    font-size: 14px !important;
    padding: 0 40px 0 16px !important;
  }

  body.single-product .racby-add-to-cart table.variations th label,
  body.single-product form.variations_form table.variations th label,
  body.single-product form.variations_form table.variations .label label {
    font-size: 13px !important;
  }

  body.single-product .racby-add-to-cart .single_add_to_cart_button,
  body.single-product form.cart .single_add_to_cart_button,
  body.single-product form.cart button[type="submit"] {
    height: 54px !important;
    font-size: 14px !important;
    width: 100% !important;
  }

  body.single-product .racby-add-to-cart .quantity .qty,
  body.single-product form.cart .quantity .qty {
    height: 52px !important;
  }

  body.single-product .racby-add-to-cart .woocommerce-variation-price .price {
    font-size: 24px !important;
  }
}

@media (max-width: 480px) {

  body.single-product .racby-product-title,
  body.single-product .racby-product-info h1 {
    font-size: 20px !important;
  }

  body.single-product .racby-add-to-cart table.variations select,
  body.single-product form.cart table.variations select {
    height: 48px !important;
    font-size: 13px !important;
  }

  body.single-product .racby-add-to-cart .single_add_to_cart_button,
  body.single-product form.cart .single_add_to_cart_button {
    height: 50px !important;
    font-size: 13px !important;
  }
}
/**
 * RACBYSHOP - CUSTOM SELECTS + QUANTITY PREMIUM
 * ==============================================
 * CSS pour les dropdowns custom et boutons +/-
 * À AJOUTER À LA FIN de product-page.css
 */

/* ==========================================
   CUSTOM SELECT DROPDOWN
   ========================================== */

/* Wrapper */
.racby-select-wrapper {
  position: relative !important;
  width: 100% !important;
  user-select: none !important;
  z-index: 20 !important;
}

.racby-select-wrapper.open {
  z-index: 100 !important;
}

/* Trigger (le "bouton" qui remplace le select) */
.racby-select-trigger {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  height: 56px !important;
  padding: 0 20px !important;
  background: #FFFFFF !important;
  border: 2px solid #e5e5e5 !important;
  border-radius: 12px !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #737373 !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  box-sizing: border-box !important;
  text-align: left !important;
  outline: none !important;
  font-family: inherit !important;
}

/* Quand une valeur est sélectionnée */
.racby-select-wrapper.has-value .racby-select-trigger {
  color: #1a1a1a !important;
  border-color: #D4AF37 !important;
  box-shadow: 0 0 0 3px rgba(212, 175, 55, 0.12) !important;
}

/* Hover */
.racby-select-trigger:hover {
  border-color: #6B46C1 !important;
  box-shadow: 0 0 0 3px rgba(107, 70, 193, 0.1) !important;
}

/* Open */
.racby-select-wrapper.open .racby-select-trigger {
  border-color: #6B46C1 !important;
  box-shadow: 0 0 0 3px rgba(107, 70, 193, 0.2),
              0 4px 12px rgba(0, 0, 0, 0.08) !important;
  border-radius: 12px 12px 0 0 !important;
}

/* Texte */
.racby-select-text {
  flex: 1 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
}

/* Chevron */
.racby-select-chevron {
  display: flex !important;
  align-items: center !important;
  color: #6B46C1 !important;
  transition: transform 0.3s ease !important;
  flex-shrink: 0 !important;
  margin-left: 12px !important;
}

.racby-select-wrapper.open .racby-select-chevron {
  transform: rotate(180deg) !important;
}

/* ==========================================
   DROPDOWN (liste d'options)
   ========================================== */

.racby-select-dropdown {
  position: absolute !important;
  top: 100% !important;
  left: 0 !important;
  right: 0 !important;
  background: #1a1a1a !important;
  border: 2px solid #6B46C1 !important;
  border-top: none !important;
  border-radius: 0 0 12px 12px !important;
  max-height: 0 !important;
  overflow: hidden !important;
  opacity: 0 !important;
  transition: max-height 0.3s ease, opacity 0.2s ease !important;
  z-index: 999 !important;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2) !important;
}

.racby-select-wrapper.open .racby-select-dropdown {
  max-height: 280px !important;
  overflow-y: auto !important;
  opacity: 1 !important;
}

/* Scrollbar custom */
.racby-select-dropdown::-webkit-scrollbar {
  width: 6px !important;
}

.racby-select-dropdown::-webkit-scrollbar-track {
  background: #262626 !important;
  border-radius: 0 0 12px 0 !important;
}

.racby-select-dropdown::-webkit-scrollbar-thumb {
  background: #6B46C1 !important;
  border-radius: 3px !important;
}

/* ==========================================
   OPTIONS
   ========================================== */

.racby-select-option {
  padding: 14px 20px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: #e5e5e5 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
}

.racby-select-option:last-child {
  border-bottom: none !important;
}

/* Hover */
.racby-select-option:hover {
  background: linear-gradient(135deg, #6B46C1 0%, #553C9A 100%) !important;
  color: #FFFFFF !important;
  padding-left: 24px !important;
}

/* Sélectionnée */
.racby-select-option.selected {
  background: linear-gradient(135deg, #6B46C1 0%, #9F7AEA 100%) !important;
  color: #D4AF37 !important;
  font-weight: 700 !important;
}

.racby-select-option.selected::before {
  content: '✓ ' !important;
  font-weight: 700 !important;
  color: #D4AF37 !important;
}

/* Placeholder */
.racby-select-option.racby-select-placeholder {
  color: #737373 !important;
  font-style: italic !important;
  font-weight: 400 !important;
}

.racby-select-option.racby-select-placeholder:hover {
  background: rgba(255, 255, 255, 0.05) !important;
  color: #a3a3a3 !important;
}

/* ==========================================
   QUANTITY +/- BUTTONS
   ========================================== */

/* Wrapper quantité */
.racby-qty-wrapper,
body.single-product .racby-add-to-cart .quantity.racby-qty-wrapper,
body.single-product form.cart .quantity.racby-qty-wrapper {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
  border: 2px solid #e5e5e5 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  background: #FFFFFF !important;
  height: 56px !important;
  width: auto !important;
  min-width: 140px !important;
  transition: border-color 0.3s ease !important;
}

.racby-qty-wrapper:hover {
  border-color: #6B46C1 !important;
}

.racby-qty-wrapper:focus-within {
  border-color: #6B46C1 !important;
  box-shadow: 0 0 0 3px rgba(107, 70, 193, 0.2) !important;
}

/* Boutons +/- */
.racby-qty-btn {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 100% !important;
  background: transparent !important;
  border: none !important;
  cursor: pointer !important;
  color: #1a1a1a !important;
  transition: all 0.2s ease !important;
  padding: 0 !important;
  outline: none !important;
}

.racby-qty-btn:hover {
  background: #6B46C1 !important;
  color: #FFFFFF !important;
}

.racby-qty-btn:active {
  background: #553C9A !important;
  color: #D4AF37 !important;
}

.racby-qty-btn svg {
  width: 16px !important;
  height: 16px !important;
}

/* Input quantité (entre les boutons) */
.racby-qty-wrapper input.qty,
body.single-product .racby-qty-wrapper input.qty,
body.single-product .racby-add-to-cart .racby-qty-wrapper input.qty {
  width: 52px !important;
  min-width: 40px !important;
  height: 100% !important;
  text-align: center !important;
  font-size: 16px !important;
  font-weight: 700 !important;
  color: #1a1a1a !important;
  border: none !important;
  border-left: 1px solid #e5e5e5 !important;
  border-right: 1px solid #e5e5e5 !important;
  border-radius: 0 !important;
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
  appearance: textfield !important;
  -moz-appearance: textfield !important;
  padding: 0 !important;
  margin: 0 !important;
}

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

/* ==========================================
   LAYOUT QTY + BOUTON - DESKTOP
   ========================================== */

body.single-product .racby-add-to-cart .woocommerce-variation-add-to-cart,
body.single-product .racby-add-to-cart .single_variation_wrap .woocommerce-variation-add-to-cart {
  display: flex !important;
  flex-direction: row !important;
  gap: 12px !important;
  align-items: stretch !important;
  width: 100% !important;
}

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

@media (max-width: 768px) {

  .racby-select-trigger {
    height: 52px !important;
    font-size: 14px !important;
    padding: 0 16px !important;
  }

  .racby-select-option {
    padding: 12px 16px !important;
    font-size: 13px !important;
  }

  .racby-qty-wrapper,
  body.single-product .racby-add-to-cart .quantity.racby-qty-wrapper {
    height: 52px !important;
    min-width: 130px !important;
    width: fit-content !important;
    margin: 0 auto !important;
  }

  .racby-qty-btn {
    width: 40px !important;
    min-width: 40px !important;
  }

  /* Qty + bouton en colonne sur mobile */
  body.single-product .racby-add-to-cart .woocommerce-variation-add-to-cart,
  body.single-product .racby-add-to-cart .single_variation_wrap .woocommerce-variation-add-to-cart {
    flex-direction: column !important;
    gap: 12px !important;
    align-items: center !important;
  }
}

@media (max-width: 480px) {
  .racby-select-trigger {
    height: 48px !important;
    font-size: 13px !important;
  }

  .racby-qty-wrapper {
    height: 48px !important;
  }
}