/* ==========================================================================
   NOVAPARADIS — FICHE PRODUIT
   Emplacement : wp-content/themes/novaparadis/assets/css/product.css
   ========================================================================== */

.single-product{
  --np-warm:      #ff8a3d;
  --np-warm-soft: #ffb36b;
  --np-warm-glow: rgba(255,138,61,.24);
  --np-gold:      #e8c95c;
}


/* --------------------------------------------------------------------------
   1. MISE EN PAGE
-------------------------------------------------------------------------- */
.single-product div.product{
  display:grid;
  grid-template-columns:1.05fr 1fr;
  gap:44px;
  padding:44px 0 0;
  align-items:start;
}

@media (max-width:960px){
  .single-product div.product{
    grid-template-columns:1fr;
    gap:24px;
  }
  .single-product div.product .summary{
    margin-top:0 !important;
    padding-top:0 !important;
  }
}

@media (max-width:600px){
  .single-product div.product{
    gap:18px;
    padding-top:30px;
  }
}


/* --------------------------------------------------------------------------
   2. GALERIE
-------------------------------------------------------------------------- */
.woocommerce-product-gallery{
  position:static;
  margin:0 !important;
  width:100% !important;
  float:none !important;
}

.woocommerce-product-gallery__wrapper{
  margin:0;
  border-radius:var(--np-radius);
  overflow:hidden;
  border:1px solid var(--np-border);
  background:var(--np-bg-panel);
}

.woocommerce-product-gallery__wrapper img{
  width:100%;
  max-height:560px;
  object-fit:cover;
  border-radius:0;
  border:none;
}

@media (max-width:960px){
  .woocommerce-product-gallery__wrapper img{ max-height:440px; }
}
@media (max-width:600px){
  .woocommerce-product-gallery__wrapper img{ max-height:380px; }
}

/* Miniatures */
.woocommerce-product-gallery .flex-control-thumbs{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin:12px 0 0;
  padding:0;
  list-style:none;
}
.woocommerce-product-gallery .flex-control-thumbs li{
  width:100% !important;
  margin:0 !important;
  float:none !important;
}
.woocommerce-product-gallery .flex-control-thumbs img{
  width:100%;
  aspect-ratio:1/1;
  object-fit:cover;
  max-height:none;
  border-radius:var(--np-radius-sm);
  opacity:.45;
  border:1px solid transparent;
  cursor:pointer;
  transition:opacity .35s var(--np-ease),
             border-color .35s var(--np-ease),
             transform .35s var(--np-ease);
}
.woocommerce-product-gallery .flex-control-thumbs img:hover{
  opacity:.85;
  transform:translateY(-2px);
}
.woocommerce-product-gallery .flex-control-thumbs img.flex-active{
  opacity:1;
  border-color:var(--np-warm);
}

/* Bouton zoom */
.woocommerce-product-gallery__trigger{
  position:absolute;
  top:14px; right:14px;
  z-index:5;
  width:40px; height:40px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(8,8,14,.75) !important;
  backdrop-filter:blur(8px);
  border:1px solid var(--np-border) !important;
  border-radius:50%;
  color:var(--np-text);
  font-size:1.05rem;
  transition:border-color .35s var(--np-ease), color .35s var(--np-ease);
}
.woocommerce-product-gallery__trigger:hover{
  border-color:var(--np-warm) !important;
  color:var(--np-warm) !important;
}


/* --------------------------------------------------------------------------
   3. BADGE DE CATÉGORIE
-------------------------------------------------------------------------- */
.np-pbadge{
  display:inline-flex;
  align-items:center;
  gap:9px;
  padding:6px 16px;
  margin-bottom:16px;
  border:1px solid rgba(255,138,61,.3);
  border-radius:40px;
  background:rgba(255,138,61,.06);
  color:var(--np-warm-soft);
  font-size:.7rem;
  letter-spacing:2.6px;
  text-transform:uppercase;
  font-weight:600;
  transition:border-color .35s var(--np-ease), color .35s var(--np-ease);
}
.np-pbadge:hover{
  border-color:var(--np-warm);
  color:var(--np-warm);
}
.np-pbadge__dot{
  width:5px; height:5px;
  border-radius:50%;
  background:var(--np-warm);
  box-shadow:0 0 8px var(--np-warm);
  animation:npDotPulse 2.4s ease-in-out infinite;
}
@keyframes npDotPulse{
  0%,100%{ opacity:1;   transform:scale(1); }
  50%    { opacity:.45; transform:scale(1.5); }
}


/* --------------------------------------------------------------------------
   4. RÉSUMÉ — TITRE & PRIX
-------------------------------------------------------------------------- */
.single-product div.product .summary{
  width:100% !important;
  float:none !important;
  margin:0 !important;
}

.single-product .product_title{
  font-size:clamp(1.6rem, 3.4vw, 2.4rem);
  line-height:1.2;
  margin-bottom:16px;
}

.single-product div.product p.price,
.single-product div.product span.price{
  display:flex;
  align-items:baseline;
  gap:12px;
  font-size:1.9rem !important;
  font-weight:700;
  margin-bottom:22px;
  background:linear-gradient(100deg, var(--np-warm), var(--np-gold));
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent !important;
}
.single-product div.product p.price del{
  color:var(--np-text-dim) !important;
  -webkit-text-fill-color:var(--np-text-dim);
  font-size:.55em;
  font-weight:400;
  opacity:.75;
}
.single-product div.product p.price ins{
  text-decoration:none;
  background:transparent;
}


/* --------------------------------------------------------------------------
   5. DESCRIPTION COURTE
-------------------------------------------------------------------------- */
.woocommerce-product-details__short-description{
  color:var(--np-text-muted);
  line-height:1.85;
  font-size:.98rem;
  padding-bottom:24px;
  margin-bottom:24px;
  border-bottom:1px solid var(--np-border);
}
.woocommerce-product-details__short-description ul{
  margin:0;
  padding-left:18px;
}
.woocommerce-product-details__short-description li{
  margin-bottom:6px;
}
.woocommerce-product-details__short-description li::marker{
  color:var(--np-warm);
}


/* --------------------------------------------------------------------------
   6. STOCK
-------------------------------------------------------------------------- */
.single-product .stock{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-size:.84rem;
  padding:6px 16px;
  border-radius:30px;
  margin-bottom:18px;
}
.single-product .stock.in-stock{
  background:rgba(52,199,89,.1);
  color:#4ade80;
  border:1px solid rgba(52,199,89,.25);
}
.single-product .stock.out-of-stock{
  background:rgba(255,69,58,.1);
  color:#ff6b6b;
  border:1px solid rgba(255,69,58,.25);
}


/* --------------------------------------------------------------------------
   7. VARIATIONS
-------------------------------------------------------------------------- */
.variations{
  width:100%;
  margin-bottom:22px;
  border-collapse:separate;
  border-spacing:0 12px;
}
.variations th,
.variations td{
  padding:0;
  border:none;
  display:block;
  width:100%;
  text-align:left;
}
.variations th.label label{
  color:var(--np-text-muted);
  font-size:.72rem;
  letter-spacing:2px;
  text-transform:uppercase;
  font-weight:600;
  margin-bottom:8px;
}
.variations select{
  appearance:none;
  -webkit-appearance:none;
  background:var(--np-bg-panel)
    url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239494ab' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E")
    no-repeat right 16px center;
  padding-right:44px;
}
.variations select:focus{
  border-color:var(--np-warm) !important;
  box-shadow:0 0 0 3px var(--np-warm-glow) !important;
}
.reset_variations{
  display:inline-block;
  margin-top:6px;
  font-size:.82rem;
  color:var(--np-text-dim);
}
.woocommerce-variation-price{ margin-bottom:16px; }


/* --------------------------------------------------------------------------
   8. QUANTITÉ & BOUTON D'ACHAT
-------------------------------------------------------------------------- */
.single-product form.cart{
  display:flex;
  gap:12px;
  align-items:stretch;
  flex-wrap:wrap;
  margin-bottom:0 !important;
}
.single-product form.variations_form.cart{ display:block; }
.single-product .woocommerce-variation-add-to-cart{
  display:flex;
  gap:12px;
  align-items:stretch;
  flex-wrap:wrap;
}

.quantity{
  display:flex;
  align-items:center;
  background:var(--np-bg-panel);
  border:1px solid var(--np-border);
  border-radius:40px;
  overflow:hidden;
  flex-shrink:0;
  transition:border-color .3s var(--np-ease), box-shadow .3s var(--np-ease);
}
.quantity:focus-within{
  border-color:var(--np-warm);
  box-shadow:0 0 0 3px var(--np-warm-glow);
}
.quantity input.qty{
  width:74px;
  padding:16px 8px;
  background:transparent;
  border:none;
  text-align:center;
  color:var(--np-text);
  font-weight:600;
  font-size:.95rem;
  -moz-appearance:textfield;
}
.quantity input.qty::-webkit-outer-spin-button,
.quantity input.qty::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}
.quantity input.qty:focus{ box-shadow:none; }

.single-product button.single_add_to_cart_button,
.single_add_to_cart_button{
  position:relative;
  flex:1;
  min-width:210px;
  overflow:hidden;
  background:linear-gradient(100deg, var(--np-warm), var(--np-gold)) !important;
  color:#14100c !important;
  border:none !important;
  border-radius:40px !important;
  padding:17px 36px !important;
  font-family:var(--np-font-body);
  font-weight:700 !important;
  font-size:1rem !important;
  letter-spacing:.5px;
  cursor:pointer;
  transition:transform var(--np-speed) var(--np-ease),
             box-shadow var(--np-speed) var(--np-ease);
  animation:npBtnPulse 3.6s ease-in-out infinite;
}
@keyframes npBtnPulse{
  0%,100%{ box-shadow:0 0 0 0 rgba(255,138,61,.26); }
  50%    { box-shadow:0 0 26px 3px rgba(255,138,61,.26); }
}
.single-product button.single_add_to_cart_button::before{
  content:'';
  position:absolute;
  top:0; left:-120%;
  width:55%; height:100%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.35) 50%, transparent);
  transform:skewX(-18deg);
  transition:left .8s var(--np-ease);
  pointer-events:none;
}
.single-product button.single_add_to_cart_button:hover::before{ left:130%; }
.single-product button.single_add_to_cart_button:hover{
  transform:translateY(-2px);
  box-shadow:0 14px 36px var(--np-warm-glow) !important;
}
.single_add_to_cart_button.disabled{
  opacity:.4;
  cursor:not-allowed;
  transform:none !important;
  animation:none;
}


/* --------------------------------------------------------------------------
   9. RÉASSURANCE
-------------------------------------------------------------------------- */
.np-trust{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:12px;
  margin:24px 0 20px;
  padding:20px;
  border:1px solid var(--np-border);
  border-radius:var(--np-radius);
  background:rgba(255,255,255,.014);
}
@media (max-width:420px){
  .np-trust{ grid-template-columns:1fr; }
}
.np-trust__item{
  display:flex;
  align-items:center;
  gap:10px;
  font-size:.84rem;
  color:var(--np-text-muted);
}
.np-trust__item svg{
  flex-shrink:0;
  color:var(--np-warm-soft);
}


/* --------------------------------------------------------------------------
   10. FABRIQUÉ À LA DEMANDE
-------------------------------------------------------------------------- */
.np-madeto{
  display:flex;
  gap:15px;
  align-items:flex-start;
  padding:18px 22px;
  margin-bottom:24px;
  border-left:2px solid var(--np-warm);
  border-radius:0 var(--np-radius-sm) var(--np-radius-sm) 0;
  background:rgba(255,138,61,.055);
}
.np-madeto__pulse{
  flex-shrink:0;
  width:8px; height:8px;
  margin-top:7px;
  border-radius:50%;
  background:var(--np-warm);
  box-shadow:0 0 10px var(--np-warm);
  animation:npDotPulse 2.4s ease-in-out infinite;
}
.np-madeto strong{
  display:block;
  color:var(--np-text);
  font-size:.92rem;
  margin-bottom:4px;
}
.np-madeto p{
  margin:0;
  color:var(--np-text-muted);
  font-size:.86rem;
  line-height:1.7;
}


/* --------------------------------------------------------------------------
   11. MÉTA PRODUIT
-------------------------------------------------------------------------- */
.product_meta{
  padding-top:22px;
  border-top:1px solid var(--np-border);
  font-size:.82rem;
  color:var(--np-text-dim);
}
.product_meta > span{
  display:block;
  margin-bottom:7px;
}
.product_meta a{ color:var(--np-text-muted); }
.product_meta a:hover{ color:var(--np-warm); }


/* --------------------------------------------------------------------------
   12. BLOCS DÉPLIANTS
-------------------------------------------------------------------------- */
.np-acc{
  margin-top:26px;
  border-top:1px solid var(--np-border);
}

.np-acc__item{
  border-bottom:1px solid var(--np-border);
}
.np-acc__item summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 2px;
  cursor:pointer;
  list-style:none;
  color:var(--np-text);
  transition:color .3s var(--np-ease);
}
.np-acc__item summary::-webkit-details-marker{ display:none; }
.np-acc__item summary:hover{ color:var(--np-warm); }

.np-acc__title{
  font-family:var(--np-font-title);
  font-size:.98rem;
  font-weight:700;
  letter-spacing:.4px;
}

.np-acc__chevron{
  position:relative;
  width:12px; height:12px;
  flex-shrink:0;
  transition:transform .4s var(--np-ease);
}
.np-acc__chevron::before,
.np-acc__chevron::after{
  content:'';
  position:absolute;
  background:var(--np-warm);
  border-radius:2px;
  transition:opacity .4s var(--np-ease);
}
.np-acc__chevron::before{
  top:5px; left:0;
  width:12px; height:2px;
}
.np-acc__chevron::after{
  top:0; left:5px;
  width:2px; height:12px;
}
.np-acc__item[open] .np-acc__chevron{ transform:rotate(180deg); }
.np-acc__item[open] .np-acc__chevron::after{ opacity:0; }

.np-acc__body{
  padding:2px 2px 24px;
  color:var(--np-text-muted);
  font-size:.9rem;
  line-height:1.8;
  animation:npAccIn .4s var(--np-ease);
}
@keyframes npAccIn{
  from{ opacity:0; transform:translateY(-6px); }
  to  { opacity:1; transform:translateY(0); }
}
.np-acc__body p{ margin:0 0 .9em; }
.np-acc__body p:last-child{ margin-bottom:0; }
.np-acc__body a{
  color:var(--np-warm-soft);
  border-bottom:1px solid rgba(255,138,61,.3);
}
.np-acc__body a:hover{
  color:var(--np-warm);
  border-bottom-color:var(--np-warm);
}

.np-acc__note{
  font-size:.82rem !important;
  color:var(--np-text-dim) !important;
  font-style:italic;
}

.np-acc__list{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:9px 22px;
  margin:0 0 16px;
}
.np-acc__list dt{
  font-size:.72rem;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--np-text-dim);
  font-weight:600;
  white-space:nowrap;
}
.np-acc__list dd{
  margin:0;
  color:var(--np-text);
  font-size:.9rem;
}
@media (max-width:520px){
  .np-acc__list{ grid-template-columns:1fr; gap:3px 0; }
  .np-acc__list dt{ margin-top:10px; }
  .np-acc__list dt:first-child{ margin-top:0; }
}

.np-acc__bullets{
  margin:0 0 14px;
  padding-left:18px;
}
.np-acc__bullets li{
  margin-bottom:7px;
  padding-left:4px;
}
.np-acc__bullets li::marker{ color:var(--np-warm); }


/* --------------------------------------------------------------------------
   13. TABLEAU DES TAILLES
-------------------------------------------------------------------------- */
.np-sizes{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  margin:14px 0 16px;
  border:1px solid var(--np-border);
  border-radius:var(--np-radius-sm);
  overflow:hidden;
  font-size:.88rem;
}
.np-sizes th{
  background:var(--np-bg-elevated);
  padding:11px 14px;
  text-align:left;
  font-size:.7rem;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--np-text-muted);
  font-weight:600;
  border:none;
}
.np-sizes td{
  padding:11px 14px;
  border:none;
  border-top:1px solid var(--np-border);
  color:var(--np-text-muted);
  transition:background .3s var(--np-ease), color .3s var(--np-ease);
}
.np-sizes tbody tr:hover td{
  background:rgba(255,138,61,.045);
  color:var(--np-text);
}
.np-sizes td:first-child{
  font-family:var(--np-font-title);
  font-weight:700;
  color:var(--np-warm-soft);
}


/* --------------------------------------------------------------------------
   14. ONGLETS
-------------------------------------------------------------------------- */
.woocommerce-tabs{
  grid-column:1 / -1;
  margin-top:64px;
  padding-top:40px;
  border-top:1px solid var(--np-border);
}
.woocommerce-tabs ul.tabs li.active{
  background:rgba(255,138,61,.08) !important;
  border-color:var(--np-warm) !important;
}
.woocommerce-tabs ul.tabs li.active a{ color:var(--np-warm) !important; }


/* --------------------------------------------------------------------------
   15. PRODUITS LIÉS
-------------------------------------------------------------------------- */
.related.products,
.upsells.products{
  grid-column:1 / -1;
  margin-top:64px;
  padding-top:40px;
  border-top:1px solid var(--np-border);
  text-align:center;
}
.related.products > h2,
.upsells.products > h2{
  position:relative;
  display:inline-block;
  font-size:1.5rem;
  padding-bottom:14px;
  margin-bottom:34px;
}
.related.products > h2::after,
.upsells.products > h2::after{
  content:'';
  position:absolute;
  bottom:0; left:50%;
  transform:translateX(-50%);
  width:56px; height:1px;
  background:linear-gradient(90deg, transparent, var(--np-warm), transparent);
}
.related.products ul.products,
.upsells.products ul.products{
  text-align:left;
}


/* --------------------------------------------------------------------------
   16. ACCESSIBILITÉ
-------------------------------------------------------------------------- */
@media (prefers-reduced-motion:reduce){
  .single_add_to_cart_button,
  .np-pbadge__dot,
  .np-madeto__pulse{
    animation:none !important;
  }
}
/* ==========================================================================
   17. CORRECTIFS RESPONSIVE
   ========================================================================== */

/* Empêche tout débordement horizontal */
.single-product .np-shop,
.single-product div.product,
.single-product div.product .summary{
  max-width:100%;
  overflow-x:hidden;
}

/* --- Galerie : images empilées, jamais côte à côte --- */
.woocommerce-product-gallery__wrapper{
  display:block !important;
  width:100% !important;
}
.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image{
  width:100% !important;
  float:none !important;
  margin:0 0 10px !important;
  display:block !important;
}
.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image:last-child{
  margin-bottom:0 !important;
}

/* --- Formulaire d'achat : passage à la ligne propre --- */
.single-product form.cart,
.single-product .woocommerce-variation-add-to-cart{
  width:100%;
  max-width:100%;
}

.single-product button.single_add_to_cart_button,
.single_add_to_cart_button{
  min-width:0 !important;
  flex:1 1 190px !important;
  max-width:100%;
  padding:16px 24px !important;
  font-size:.94rem !important;
}

/* --- Boutons de paiement express (Google Pay, Klarna…) --- */
.wc-stripe-product-checkout-container,
.wcpay-payment-request-wrapper,
.woocommerce-gpay-button,
.gpay-card-info-container,
#wc-stripe-payment-request-wrapper,
.klarna-placement,
klarna-placement{
  width:100% !important;
  max-width:100% !important;
  flex:1 1 100% !important;
  margin:10px 0 0 !important;
  box-sizing:border-box;
}

/* --- Mobile --- */
@media (max-width:600px){
  .single-product form.cart,
  .single-product .woocommerce-variation-add-to-cart{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  .quantity{
    width:100%;
    justify-content:center;
  }
  .quantity input.qty{ width:100%; }

  .single-product button.single_add_to_cart_button{
    width:100%;
    flex:1 1 100% !important;
  }

  .single-product .product_title{ font-size:1.35rem; }
  .single-product div.product p.price{ font-size:1.55rem !important; }
}
/* ==========================================================================
   18. CORRECTIF — scroll fluide AVEC slider fonctionnel
   ========================================================================== */

/* Le navigateur gère le scroll vertical, le slider garde l'horizontal */
.woocommerce-product-gallery,
.woocommerce-product-gallery__wrapper,
.woocommerce-product-gallery__image,
.woocommerce-product-gallery img,
.flex-viewport{
  touch-action:pan-y pinch-zoom !important;
}

/* Miniatures : swipe horizontal autorisé */
.woocommerce-product-gallery .flex-control-thumbs,
.woocommerce-product-gallery .flex-control-thumbs *{
  touch-action:manipulation !important;
}