@charset "utf-8";

/* ============================================================
   VARIABLES
============================================================ */
:root {
  --thumb-size: 72px;
  --thumb-gap: 0;
  --border-active: 2px solid var(--main-color);
  --border-radius: 15px;
}

/* ============================================================
   STRUCTURE GÉNÉRALE
============================================================ */
#main_grbx {
  text-align: left;
  max-width: 1280px;
  margin: 200px auto 0 auto;
  overflow: hidden;
  clear: both;
}

.entete_itm {
  margin: 10px auto 30px auto;
  padding-top :20px;
  max-width: 1250px;
  position: relative;
}

.h1_item {
  font-family: 'josefin', Verdana, Geneva, Tahoma, sans-serif;
  font-size: 2.0rem;
  text-align: left;
  width: 100%;
  line-height: 1.2;
  margin-top:20px;
}
.h1_item span {
  font-size: 0.87em;
  color: #777;
  line-height: 1.2;
  font-weight: 400;
}

#no_pdt p {
  margin: 200px auto 0 auto;
  width: 500px;
  font-size: 16px;
  text-align: center;
  font-weight: bold;
}

/* ============================================================
   BOUTON FAVORI (CŒUR)
============================================================ */
.fav-btn {
  position: absolute;
  top: -5px;
  left: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 5px;
  color: #ccc;
  transition: all 0.2s ease;
  z-index: 1;
}

@media (max-width:976px){
  .fav-btn {top:2px;left:4px}
}
.fav-btn svg {
  width: 36px;
  height: 36px;
  display: block;
  fill: #fff;
  transition:
    fill 0.2s ease,
    stroke 0.2s ease;
}
.fav-btn:hover {
  color: var(--main-color);
  transform: scale(1.1);
}
.fav-btn.active {
  color: var(--main-color);
}
.fav-btn.active svg {
  fill: var(--main-color);
}
.fav-btn.animating {
  animation: heartPop 0.3s ease-out;
}
.fav-tooltip {
  visibility: hidden;
  opacity: 0;
  position: absolute;
  bottom: 110%;
  left: 50%;
  transform: translateX(-50%);
  background-color: #333;
  color: #fff;
  font-size: 11px;
  white-space: nowrap;
  padding: 5px 8px;
  border-radius: 4px;
  z-index: 10;
  transition: opacity 0.2s;
  pointer-events: none;
}
.fav-tooltip::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #333 transparent transparent transparent;
}
.fav-btn:hover .fav-tooltip {
  visibility: visible;
  opacity: 1;
}

@keyframes heartPop {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.3);
  }
  100% {
    transform: scale(1);
  }
}

/* ============================================================
   LAYOUT PRINCIPAL — DEUX COLONNES
============================================================ */
.product-page-container {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  width: 98%;
  max-width: 1300px;
  margin: 0 auto;
  border-top: 10px solid #f9f9f9;
  border-radius: 50px;
  border-bottom: 10px solid #f9f9f9;
}

/* Colonne gauche (galerie) */
.product-gallery-wrapper {
  flex: 0 1 710px;
  max-width: 100%;
}

/* Colonne droite (infos) */
.product-info-wrapper {
  position: relative;
  flex: 1 1 400px;
  min-width: 0;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: 20px 50px 10px 50px;
  background-color: #f9f9f9;
  border-top-right-radius: 40px;
  border-bottom-right-radius: 40px;
}
/* Réserve le même espace en haut que lorsqu'un badge .price-label est affiché (top:-43px) */
.product-info-wrapper.no-price-label {
  padding-top: 40px;
}


/* ============================================================
   GALERIE — MOBILE (base)
============================================================ */
.product-gallery {
  display: flex;
  flex-direction: column;
  width: 100%;
  max-width: 550px;
}

.gallery-main-column {
  width: 100%;
}

.gallery-main-wrapper {
  width: 100%;
  overflow: hidden;
  position: relative;
  aspect-ratio: 1 / 1;
}

.gallery-main-slider {
  display: flex;
  width: 100%;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
.gallery-main-slider::-webkit-scrollbar {
  display: none;
}

.main-image {
  flex: 0 0 100%;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  object-position: center;
  scroll-snap-align: center;
  background-color: #fff;
  color: transparent;
}
.main-image[data-src] {
  opacity: 0.6;
}
.main-image.is-loading {
  opacity: 0.8;
  transition: opacity 0.3s ease;
}

/* Wrapper miniatures */
.thumbnails-wrapper {
  display: flex;
  align-items: center;
  gap: 5px;
  width: 100%;
  max-width: 550px;
  position: relative;
}

/* Boutons nav miniatures (flèches haut/bas) */
.thumb-nav-btn {
  display: none;
  width: 50px;
  height: 50px;
  color: #aaa;
  border: none;
  background: transparent;
  border-radius: 50%;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  z-index: 2;
  transition:
    opacity 0.2s,
    visibility 0.2s;
  opacity: 1;
  visibility: visible;
}
.thumb-nav-btn.disabled {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.thumb-nav-btn:hover {
  color: #f60;
}
.thumb-nav-btn svg {
  width: 30px;
  height: 30px;
  stroke: var(--main-color);
}

/* Liste des miniatures */
.gallery-thumbnails {
  flex: 1;
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  overflow: auto;
  scroll-behavior: smooth;
  gap: var(--thumb-gap);
  scrollbar-width: none;
  border: 1px solid #eee;
  border-radius: var(--border-radius);
  background: white;
}
.gallery-thumbnails::-webkit-scrollbar {
  display: none;
}

/* Bouton miniature individuel */
.thumb-btn {
  padding: 2px 10px;
  border: 2px solid transparent;
  border-radius: var(--border-radius);
  background: none;
  cursor: pointer;
  flex-shrink: 0;
}
.thumb-btn.active {
  border: var(--border-active);
}
.thumb-btn img {
  width: var(--thumb-size);
  height: auto;
  aspect-ratio: 1 / 1;
  display: block;
  object-fit: contain;
  object-position: center;
  background-color: #fff;
  color: transparent;
  border-radius: calc(var(--border-radius) - 2px);
}

/* ============================================================
   GALERIE — DESKTOP (≥ 976px)
============================================================ */
@media (min-width: 976px) 
{

  .product-gallery {
    max-width: 690px;
  }
  .gallery-main-column {
    display: grid;
    grid-template-columns: auto 550px;
    grid-template-rows: 550px auto auto;
    gap: 0 40px;
    align-items: start;
  }
  .thumbnails-wrapper {
    grid-column: 1;
    grid-row: 1 / 4;
  }
  .gallery-main-wrapper {
    grid-column: 2;
    grid-row: 1;
    width: 550px;
    height: 550px;
  }
  .product-badges-row {
    grid-column: 2;
    grid-row: 2;
  }
  .atouts-cnt {
    grid-column: 2;
    grid-row: 3;
  }
  .main-image {
    width: 550px;
    height: 550px;
    padding: 0;
    box-sizing: border-box;
    scroll-snap-align: none;
  }

  /* Miniatures verticales */
  .thumbnails-wrapper {
    flex-direction: column;
    height: 678px;
    width: auto;
    position: relative;
    gap: 0;
    margin: 30px 0;
    overflow: visible;
  }
  .thumb-nav-btn {
    display: flex;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
  }
  .prev-thumb {
    top: -35px;
  }
  .prev-thumb svg {
    transform: rotate(90deg);
  }
  .next-thumb {
    bottom: -35px;
  }
  .next-thumb svg {
    transform: rotate(90deg);
  }

  .gallery-thumbnails {
    flex-direction: column;
    overflow-y: auto;
    overflow-x: hidden;
    width: 100%;
    height: 100%;
    padding-top: 0;
    scrollbar-width: none;
  }
  .thumb-btn {
    margin: 0 auto 10px auto;
  }
  .thumb-btn:first-child {
    margin-top: 0;
  }
  .thumb-btn img {
    width: 80px;
  }
}

 

/* ============================================================
   BADGES MATIÈRES / CARACTÉRISTIQUES (sous image principale)
   Max 4 symboles — images webp dans themes/img/
   Symboles disponibles : en_cuir, vegan, leger, amovible, ergonomique
============================================================ */
.product-badges {
  display: flex;
  justify-content:center;
  align-items: center;
  gap: 8px;
  /*padding: 8px 6px 6px 6px;*/
  flex: 1;
  flex-wrap: wrap;
}

.product-badge {
  display: flex;
  flex-direction: column;
  align-items:center;
  gap: 3px;
  text-align: center;
  flex: 1 1 0;
  min-width: 0;
}

.product-badge img {
  width: 100%;
  height: auto;
  max-width: 130px;
  object-fit: contain;
  opacity: 0.6;
  transition: opacity 0.2s ease, filter 0.2s ease;
  filter: grayscale(10%);
}

.product-badge:hover img {
  opacity: 0.9;
  filter: none;
}

/* ============================================================
   GALERIE — BOUTON ZOOM
============================================================ */
.product-badges-row {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 550px;
  border-top: 1px solid #f0f0f0;
  /*border-bottom: 1px solid #f0f0f0;*/
  margin-top: 0;
  padding: 16px 4px 20px 0;
  box-sizing: border-box;
}

.zoom-btn {
  position: absolute;
  bottom: 10px;
  left:5px;
  z-index: 10;
  background-color: rgba(255,255,255,0.55);
  border: none;
  border-radius: 50%;
  width: 44px;
  height: 44px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  color: #555;
}

.zoom-btn:hover {
  background-color: #ffffff;
  transform: scale(1.1);
}
.zoom-btn:focus {
  outline: none;
}
.zoom-btn svg {
  width: 24px;
  height: 24px;
  stroke: #555;
}

/* ============================================================
   ATOUTS PRODUIT — POINTS FORTS (sous les badges, galerie gauche)
============================================================ */
.atouts-cnt {
  width: 100%;
  max-width: 550px;
  /*padding-top: 15px;*/
 /* padding: 10px 14px 12px;*/
  box-sizing: border-box;
  background: #fff;
 /* border: 1px solid #f0f0f0;*/
  border-radius: 14px;
}

.atout-header {
  font-family: 'josefin', 'Gill Sans', 'Gill Sans MT', 'Century Gothic', sans-serif;
  font-size: 1.2rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #bbb;
  margin: 0 0 8px -10px;
  text-align: left;
  background-color: #f9f9f9;
  padding: 13px 20px;
  border-radius: 15px;
  width: 120%;

}

.atout-list {
  list-style: none;
  padding: 0;
  margin: 0 0 5px 0;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}

.second-atout-header {
  font-family: 'josefin', 'Gill Sans', 'Gill Sans MT', 'Century Gothic', sans-serif;
  font-size: 0.9rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #bbb;
  background-color: #f9f9f9;
  padding: 7px 15px;
  border-radius: 12px;
  display: inline-block;
  float: left;
  clear: left;
  margin: 5px 0 5px -10px;
}

.second-atout-list {
  clear: left;
}

.atout-list li {
  font-family: 'josefin', 'Gill Sans', 'Gill Sans MT', 'Century Gothic', sans-serif;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 1.2rem;
  color: #777;
  /*background: #fdf5ef;*/
  /*border: 1px solid #fde0ca;
  border-radius: 20px;*/
  padding: 4px 17px 0px 4px;
  line-height: 1.4;
}

.atout-list li::before {
   font-family: Verdana, Geneva, Tahoma, sans-serif;
  content: "+";
  color: #ddd;
  font-weight: 700;
  font-size: 1.2rem;
  flex-shrink: 0;
  padding-bottom: 2px;
}

/* Flèche accordéon — pilotée par la classe JS .atout-toggle (hors media query) */
.atout-header.atout-toggle,
.second-atout-header.has-more {
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  box-sizing: border-box;
}
.atout-header.atout-toggle::after,
.second-atout-header.has-more::after {
  content: '';
  display: inline-block;
  width: 7px;
  height: 7px;
  border-right: 2px solid #bbb;
  border-bottom: 2px solid #bbb;
  transform: rotate(45deg);
  transition: transform 0.25s;
  flex-shrink: 0;
  margin-left: 8px;
}
.atout-header.atout-toggle.expanded::after,
.second-atout-header.has-more.expanded::after {
  transform: rotate(-135deg);
}

/* ============================================================
   INFOS PRODUIT — PRIX
============================================================ */
.product-price {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}
.price-label {
  position: absolute;
  top: -43px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 7px 40px 5px 40px;
  border: 2px solid #eee;
  border-bottom: none;
  border-top-left-radius: 20px;
  border-top-right-radius: 20px;
  width: auto;
  white-space: nowrap;
  font-family: 'josefin', Verdana, Geneva, Tahoma, sans-serif;
  background: #fff;
  /*box-shadow: 0 5px 8px rgba(0, 0, 0, 0.02);*/
  z-index: 1;
  box-sizing: border-box;
}
.price-label--soldes,    
.price-label--promo     {  color: var(--main-color); }
.price-label--outlet    {  color: #6c6c6c; }
.price-label--precommande {  color: #8ac162; }
.price-label--new        {  color: #6c6c6c; }
.price-sale {
  font-size: 2rem;
  font-weight: 700;
  color: var(--main-color);
}
.price-sale .price-dec {
  font-size: 0.55em;
  font-weight: 700;
  vertical-align: super;
  line-height: 0;
}
.price-original {
  font-size: 1rem;
  color: #888;
  text-decoration: line-through;
  padding: 4px 10px;
  border-radius: 10px;
  /*background: #f0f0f0;*/
  display: inline-block;
}

@media(max-width:550px) {
  .price-original {
    
    padding: 3px 6px 2px 6px;
    
  }
  .price-original--d0 { font-size: 0.85rem; padding: 2px 0px;  }
  .price-original--d1 { font-size: 0.75rem; }
  .price-original--d2 { font-size: 0.75rem; }
  .price-original--d3 { font-size: 0.75rem; }


}
.price-demark-list {
  font-size: 0.9rem;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 7px;
  align-items: center;
  justify-content: center;
  margin: 15px 0 7px 0;
}
/* Étiquettes démarques — couleurs reprises de l'ancien itm3.css */
.price-original--d0 {  background: transparent; color: #999;/* border: 1px solid #ddd; box-shadow: 0 0 5px rgba(0, 0, 0, 0.08)*/}
.price-original--d1 {  background: #fff;    color: #db1900; /*border: 1px solid #db1900; */box-shadow: 0 0 5px rgba(0, 0, 0, 0.2)}
.price-original--d2 {  background: #db1900; color: #fff;  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2)}
.price-original--d3 {  background: #006a3b; color: #fff;  box-shadow: 0 0 5px rgba(0, 0, 0, 0.2)}

 

/* ============================================================
   BADGE REMISE — sprite vertical (144×144px par badge)
   Image fixée à 63px de large (scale ≈ 0.4375)
   Sprite : y=0 → demark%/promo | y=200px → offre_speciale | y=400px → prix_mini | y=600px → vente_privee/precommande
   Conteneur élargi — texte à gauche, image collée à droite
============================================================ */
.remise-badge {
  position: absolute;
  top: -17px;
  right: -7px;
  width: 120px;           /* zone texte (57px) + image (63px) */
  height: 73px;
  padding: 5px 65px 0 8px;    /* réserve l'espace de l'image à droite */

  background: transparent url("img/fleche_remise_item.webp") right 0 no-repeat;
  background-size: 63px auto;
  color: var(--main-color);
  display: flex;
  align-items: center;
  justify-content: flex-start;
  box-sizing: border-box;
  z-index: 1;
}
.remise-badge--offre {
  background-position: right -88px;
  color: var(--badge-remise-color--offre);
}
.remise-badge--new {
  background-position: right -175px;
}
.remise-badge--precommande {
  background-position: right -263px;
}
.remise-badge-pct {
  font-size: 1.1rem;
  font-weight: 00;
  line-height: 1.1;
  letter-spacing: 1.1px;
  color: var(--badge-remise-color);
}

/* ============================================================
   INFOS PRODUIT — VARIANTES COULEURS
============================================================ */
.variants-title {
  font-size: 0.95rem;
  font-weight: 600;
  color: #333;
  margin: 0 0 12px 0 ;
}
.variants-title span {
  font-weight: 400;
  color: #666;
}

.variants-list-wrapper {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
}

.variants-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  overflow: hidden;
  padding: 4px;
  height: 62px;
  transition: height 0.3s ease;
}

@media (max-width:976px){
.variants-list {
  padding: 4px 4px 0 4px;
  transition: none;
}

}
.variants-list.expanded {
  height: auto;
  overflow: visible;
}

/* Bouton "voir plus de couleurs" */
.more-colors-btn {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background-color: #f0f0f0;
  border: 2px solid #f1f1f1;
  color: #555;
  font-size: 0.85rem;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.more-colors-btn:hover {
  background-color: var(--main-color);
}

/* Rond couleur */
.color-circle {
  display: block;
  width: 56px;
  height: 56px;
  border-radius: var(--border-radius);
  border: 1px solid #ddd;
  padding: 7px;
  background-color: #fff;
  cursor: pointer;
  transition: all 0.2s ease;
  box-sizing: border-box;
  position: relative;
}
.color-circle img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  color: transparent;        /* cache le texte alt */
  font-size: 0; 
}
.color-circle:hover {
  transform: scale(1.1);
  border-color: #bbb;
}
.color-circle.active {
  border-color: var(--main-color);
  border-width: 2px;
}

/* Tooltip couleur */
.color-tooltip {
  position: absolute;
  z-index: 9999;
  background-color: #222;
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
  padding: 6px 10px;
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
  opacity: 0;
  visibility: hidden;
  transition:
    opacity 0.2s ease,
    transform 0.2s ease;
  transform: translateY(-8px);
  pointer-events: none;
}
.color-tooltip::after {
  content: "";
  position: absolute;
  top: -5px;
  left: 50%;
  transform: translateX(-50%);
  border-width: 0 5px 5px 5px;
  border-style: solid;
  border-color: transparent transparent #222 transparent;
}
.color-tooltip.visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* ============================================================
   INFOS PRODUIT — SÉLECTEUR DE TAILLE
============================================================ */
.size-selector-container {
  margin: 00 auto;
  text-align: center;
  width: 100%;
  font-family: "josefin", sans-serif;
}

.current-size-text {
  color: var(--main-color, #ff8330);
  font-weight: bold;
}

/* Grille de cases */
.size-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
  width: 100%;
  margin: 0 auto;
}
/* 7 tuiles ou plus : 5 par ligne max (5×50px + 4×10px gap = 290px) */
.size-grid:has(> :nth-child(7)) {
  max-width: 300px;
}

/* Case taille */
.size-tile {
  position: relative;
  width: 50px;
  height: 50px;
  background-color: #fff;
  border: 1px solid #ddd;
  border-radius: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family:
    Verdana, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans",
    "DejaVu Sans", sans-serif;
  font-size: 16px;
  color: #333;
  cursor: pointer;
  transition: all 0.2s ease;
  padding: 0;
}
.size-tile:not(.disabled):hover {
  border-color: #999;
  background-color: #f9f9f9;
}
.size-tile.active,
.size-tile.active:hover {
  border-color: var(--main-color, #ff8330);
  background-color: var(--main-color, #ff8330);
  color: #fff;
  font-weight: bold;
  box-shadow: 0 2px 5px rgba(255, 131, 48, 0.3);
}

/* Stock épuisé (barré diagonal) */
.size-tile.disabled {
  cursor: not-allowed;
  color: #ccc;
  /*background-color: #f5f5f5;*/
  border-color: #eee;
  overflow: hidden;
}
.size-tile.disabled::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    to top left,
    transparent calc(50% - 1px),
    #ddd,
    transparent calc(50% + 1px)
  );
}

/* Icône stock bas */
.stock-clock-icon {
  position: absolute;
  top: 3px;
  right: 3px;
  width: 12px;
  height: 12px;
  color: var(--main-color);
  background: #fff;
  border-radius: 50%;
}
.stock-clock-icon svg {
  width: 100%;
  height: 100%;
  display: block;
}
.size-tile.active .stock-clock-icon {
  color: #fff;
  background: transparent;
}

/* Tooltip taille */
.size-tooltip {
  visibility: hidden;
  opacity: 0;
  position: absolute;
  bottom: 110%;
  left: 50%;
  transform: translateX(-50%);
  background-color: #333;
  color: #fff;
  font-size: 11px;
  white-space: nowrap;
  padding: 5px 8px;
  border-radius: 4px;
  z-index: 10;
  transition: opacity 0.2s;
  pointer-events: none;
}
.size-tooltip::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #333 transparent transparent transparent;
}
.size-tile:hover .size-tooltip {
  visibility: visible;
  opacity: 1;
}

/* ============================================================
   INFOS PRODUIT — FORMULAIRE & BOUTON PANIER
============================================================ */
.form-select {
  width: 100%;
  padding: 12px 10px;
  font-size: 1rem;
  border: 1px solid #ccc;
  border-radius: 6px;
  background-color: #fff;
  appearance: none;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M5%208l5%205%205-5z%22%20fill%3D%22%23555%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  background-size: 16px 16px;
}
.form-select:disabled {
  background-color: #f5f5f5;
}

.sz_choos {
  font-size: 16px !important;
  line-height: 140% !important;
  padding: 10px 0 !important;
  height: auto !important;
}

/* Bouton ajouter au panier */
#sub_pdt_cnt {
  border-radius: 20px;
  color: #fff;
  width: 100%;
  text-align: center;
}
.sub_ajt_pdt_form,
.sub_ajt_pdt_form_2 {
  transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
  background-image: linear-gradient(180deg, #ff8330, #ff6600);
  display: block;
  width: 100%;
  height: 56px;
  line-height: 56px;
  font-size: 18px;
  cursor: pointer;
  font-weight: bold;
  color: #fff;
  border: 2px solid #fff;
  border-radius: 20px !important;
}
.sub_ajt_pdt_form {
  font-size: 20px;
}
.sub_ajt_pdt_form_2 {
  border: none;
  font-size: 1em;
  font-weight: normal;
  cursor: default;
}
#sub_ajt_pan:hover {
  border-color: #ff8330;
  background: #fff;
  color: #ff8330;
  box-shadow: 0 4px 14px rgba(255,131,48,0.35);
}
#sub_ajt_pan.cpanel-disabled {
  opacity: 0.55;
  cursor: default;
  pointer-events: none;
  background-image: none;
  background: #bbb;
}
@keyframes btn-blowup {
  0%   { transform: scale(1); }
  40%  { transform: scale(1.12); }
  70%  { transform: scale(0.96); }
  100% { transform: scale(1); }
}
#sub_ajt_pan.btn-pop {
  animation: btn-blowup 0.35s ease forwards;
}
/* Message animé sous le bouton panier */
.sub_pdt_cnt_withmessBtn {
}
.note_item_3_withmessBtn {
  border-bottom: none !important;
}
#messBtnItem {
  font-size: 0.85em;
  line-height: 150%;
  margin: -10px auto 0 auto;
  width: auto; min-width: 80%;max-width: 95%;
  background: #fff;
  color: #444;
  padding: 15px;
  text-align: center;
  height: auto;
  animation: pulsation_bouton 3s ease-out 3;
  border-radius: 20px;
  /*border : 1px solid #ddd;*/
  box-shadow: 0 0 18px rgba(0, 0, 0, 0.04);
}

#messBtnItem a {
  font-size: 1.2em;
  color: #ff6600;
  transition: 0.3s;
}
#messBtnItem a:hover {
  color: #cc4400;
  background-color: #f4f4f4;
  transition: 0.3s;
  border-radius: 7px;
  text-decoration: none;
}

@keyframes pulsation_bouton {
  from {
    box-shadow:
      0 0 0 -3px hsla(0, 0%, 100%, 0),
      0 0 0 0 var(--main-color);
  }
  to {
    box-shadow:
      0 0 0 10px hsla(0, 0%, 100%, 0),
      0 0 0 13px hsla(0, 0%, 100%, 0);
  }
}
@keyframes nom_anim_bouton {
  from {
    box-shadow: 0 0 2px #fff;
  }
  to {
    box-shadow: 0 0 17px #fff;
  }
}

/* Notes et aide pointure */
 

/* ============================================================
   INFOS PRODUIT — RÉASSURANCE & DISPO MAGASIN
============================================================ */
.product-reassurance {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px 10px;
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
  padding: 18px 0;
}
.reassurance-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
}
.reassurance-icon {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #f2f2f2;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  color: #555;
  margin-bottom: 2px;
}
.reassurance-icon svg {
  width: 18px;
  height: 18px;
}
.reassurance-text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  text-align: left;
}
.reassurance-label {
  font-size: 0.78rem;
  font-weight: 600;
  color: #444;
  line-height: 1.2;
}
.reassurance-note {
  font-size: 0.68rem;
  color: #888;
  line-height: 1.2;
}

.product-store-availability {
  background-color: #f9f9f9;
  border: 1px solid #eee;
  border-radius: 8px;
  padding: 20px;
}
.store-title {
  font-size: 1.2rem;
  margin: 0 0 15px 0;
  font-family: 'josefin';
  color:#bbb;
  letter-spacing: 0.12rem;
  text-transform: uppercase;
}
.store-stock-status {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 15px;
  font-size: 0.9rem;
  font-weight: 500;
}
.stock-icon {
  width: 10px;
  height: 10px;
  border-radius: 50%;
}
.stock-available {
  background-color: #28a745;
  box-shadow: 0 0 6px #28a745;
}
#tailles_in_mag_cnt {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin-top: 8px;
  font-size: 0.9em;
}
.mag-arrow {
  color: #aaa;
  font-size: 1.15em;
  line-height: 1;
  flex-shrink: 0;
}
#tailles_in_mag {
  font-size: 0.95em;
  color: #444;
}
#tailles_in_mag strong {
  color: #333;
  font-weight: 600;
}
#tailles_in_mag em {
  color: #999;
  font-style: normal;
  font-size: 0.9em;
}
#magLiv_select {
  color: #777;
  margin: 0.2em 0;
  border: none;
}
/* ============================================================
   ACCORDÉON (description / guide tailles / etc.)
============================================================ */
.product-accordion {
  width: 100%;
  max-width: 1300px;
  margin: 50px auto;
  border: 1px solid #eee;
  border-radius: 20px;
  overflow: hidden;
  background-color: #fff;
  box-sizing: border-box;
}
@media (max-width:748px){
   
   .product-accordion { margin: 20px auto; border-radius:0;}
}
.accordion-item {
  border-bottom: 1px solid #eee;
}
.accordion-item:last-child {
  border-bottom: none;
}
.accordion-title {
  margin: 0;
  padding: 0;
  font-size: 18px;
}
.accordion-header {
  width: 100%;
  padding: 18px 20px;
  background-color: #fff;
  border: none;
  cursor: pointer;
  text-align: left;
  font-size: 22px;
  font-weight: 600;
  color: #777;
  font-family: "josefin";
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: background-color 0.2s ease;
}
.accordion-header:hover {
  background-color:#f4f4f4;
  
}
.accordion-header:focus {
  background-color: #f4f4f4;
  color: var(--main-color);
}
.accordion-header::after {
  content: "+";
  font-size: 1.5rem;
  font-weight: 300;
  color: var(--main-color);
  transition: transform 0.2s ease;
}
.accordion-header.active::after {
  content: "−";
  transform: rotate(180deg);
}
.accordion-content {
  display: none;
  padding: 20px;
  background-color: #fff;
  border-top: 1px dashed #eee;
}
.accordion-content p {
  margin: 0;
  line-height: 1.6;
}

/* Guide des tailles */
.product-size-guide p {
  margin: 0;
  font-size: 0.70rem;
  border-top: 1px solid #eee;
  border-bottom: 1px solid #eee;
  padding: 15px;
  color:#777;
}

@media (max-width:976px){

  .product-size-guide p {
    padding: 10px;
    border-top: 1px solid #ddd;
    border-bottom: 1px solid #ddd;

}

}
.product-size-guide a {
  color: var(--main-color);
  text-decoration: none;
  font-weight: 600;
}

.product-size-guide a:hover {

  text-decoration: underline;

}

/* ============================================================
   WIDGET ALMA — PAIEMENT 3X SANS FRAIS (ACCORDÉON)
============================================================ */
.alma-widget {
  border: 1px solid #e8e8e8;
  border-radius: 10px;
  background: #fff;
  font-size: 0.87rem;
  overflow: hidden;
  margin-top: 8px;
}
/* --- Ligne d'en-tête (toujours visible) --- */
.alma-widget-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  cursor: pointer;
  user-select: none;
}
.alma-logo {
  display: block;
  height: 15px;
  width: auto;
  flex-shrink: 0;
}
.alma-badge-3x {
  flex-shrink: 0;
  font-size: 0.78rem;
  font-weight: 700;
  color: #fff;
  background: #444;
  border-radius: 4px;
  padding: 1px 5px;
  line-height: 1.4;
}
.alma-header-text {
  flex: 1;
  font-size: 0.70rem;
  color: #444;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.alma-header-text strong {
  font-weight: 700;
  color: #111;
}
.alma-sans-frais {
  color: #888;
  font-style: normal;
}
@media (max-width: 480px) {
  .alma-header-text { white-space: normal; overflow: visible; text-overflow: clip; line-height: 1.3; }
}
.alma-chevron {
  flex-shrink: 0;
  font-size: 0.7rem;
  color: #999;
  transition: transform 0.25s ease;
  line-height: 1;
}
.alma-chevron::before {
  content: '▼';
}
.alma-widget.open .alma-chevron {
  transform: rotate(180deg);
}
/* --- Corps (masqué par défaut) --- */
.alma-widget-body {
  display: none;
  flex-direction: column;
  gap: 10px;
  padding: 0 14px 12px;
  border-top: 1px solid #f0f0f0;
}
.alma-widget.open .alma-widget-body {
  display: flex;
}
/* --- Détail des échéances --- */
.alma-plan {
  display: flex;
  align-items: center;
  gap: 6px;
  padding-top: 10px;
}
.alma-installment {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #f8f8f8;
  border-radius: 8px;
  padding: 7px 4px;
  gap: 2px;
}
.alma-amount {
  /*font-size: 0.95rem;/*/
  font-weight: 700;
  color: #222;
  white-space: nowrap;
}
.alma-date {
  font-size: 0.68rem;
  color: #999;
  white-space: nowrap;
}
.alma-plus {
  color: #ccc;
  font-size: 1rem;
  font-weight: 300;
  flex-shrink: 0;
}
/* --- Total + Frais sur une ligne --- */
.alma-recap {
  display: flex;
  justify-content: center;
  gap: 16px;
}
.alma-total,
.alma-frais {
  font-size: 0.82rem;
  color: #555;
}
.alma-total strong {
  color: #222;
  font-weight: 700;
}
.alma-frais strong {
  color: #3a9c3a;
  font-weight: 700;
}
/* --- Explication --- */
.alma-explications {
  font-size: 0.76rem;
  color: #444;
  line-height: 1.4;
}

/* ============================================================
   PRODUITS SIMILAIRES — SLIDER
============================================================ */
.related-products-section {
  max-width: 1300px;
  margin: 60px auto;
  padding: 0 20px;
}
.section-title {
  font-size: 1.5rem;
  font-weight: 700;
  /*margin-bottom: 10px; 25px;*/
  color: #333;
  border-bottom: 1px solid #eee;
  padding-bottom: 15px;
}

.slider-wrapper {
  position: relative;
  /*display: flex;*/
  align-items: center;
  padding-top: 44px;
}
.related-slider {
  display: flex;
  gap: 36px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 10px 20px 20px 20px;
  scroll-padding-left: 20px;
  scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
.related-slider::-webkit-scrollbar {
  display: none;
}

/* Carte produit */
.related-product-card {
  flex: 0 0 calc(25% - 27px);
  scroll-snap-align: start;
  border: 1px solid #eee;
  border-radius: 15px;
  overflow: hidden;
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease;
  background: #fff;
}
.related-product-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.08);
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease;
}
.product-link {
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.product-link:hover {
  text-decoration: none;
}

.img-container {
  position: relative;
  width: 100%;
  background-color: #f9f9f9;
  aspect-ratio: 1 / 1;
  display: flex;
  justify-content: center;
  align-items: center;
}
.img-container img {
  max-width: 240px;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Labels (Soldes / Nouveau) */
.product-label {
  display: block;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  text-align: center;
  margin: 0 0 3px;
  background: none;
  color: var(--main-color);
}
.label-sale {
  color: var(--main-color);
}
/* Texte & prix carte */
.product-info {
  padding: 15px;
  text-align: center;
}
.product-name {
  font-size: 0.95rem;
  margin: 0 0 2px 0;
  font-weight: 700;
  color: #333;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.product-type {
  display: block;
  font-size: 0.72rem;
  color: #666;
  margin: 0 0 1px;
}
.product-color {
  display: block;
  font-size: 0.72rem;
  color: #999;
  margin: 0 0 4px;
}
.product-pricing {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.price-new {
  font-weight: 700;
  color: #333;
}
.price-old {
  text-decoration: line-through;
  color: #999;
  font-size: 0.9rem;
}
/* Flèches de navigation — fond rond, positionnées en haut à droite */
.slider-arrow {
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid #e0e0e0;
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  padding: 0;
  outline: none;
  color: var(--main-color);
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
  position: absolute;
  top: 4px;
  transform: none;
  transition: box-shadow 0.15s ease, background 0.15s ease;
  margin-right: 8px;
}
.slider-arrow:hover {
  background: #fff;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
}
.slider-arrow svg {
  width: 18px;
  height: 18px;
  stroke: var(--main-color);
  stroke-width: 2;
}
.slider-arrow.prev {
  right: 46px;
  left: auto;
}
.slider-arrow.next {
  right: 4px;
}

/* Lazy load images */
.lazy-prod-img {
  max-width: 240px;
  width: 100%;
  height: auto;
  object-fit: contain;
  opacity: 0;
  transition: opacity 0.4s ease-in-out;
}
.lazy-prod-img.loaded {
  opacity: 1;
}

.ico_pdt {
  cursor: pointer;
  display: block;
  width: 56px;
  height: 56px;
  float: left;
  background-color: #fff;
}

.liens_gen_a_p {
  padding: 10px 0 10px 10px;
  width: 100%;
  box-sizing: border-box;
  margin-bottom: 20px;
}
@media (max-width:550px){

  .liens_gen_a_p {
    font-size:0.75rem;
    margin-bottom: 20px;
  }

}

/* Déjà vus */
.dejavu-inner {
  max-width: 1200px;
  margin: 0 auto;
  text-align: center;
  padding-top:20px;
}

/* Titres H4 sections */
#main_grbx h4,
.dejavu_h4,
#pdts_pan h4 {
  box-sizing: border-box;
  font-weight: normal;
  font-family: "josefin", Verdana, Geneva, sans-serif;
  font-size: 24px;
  color: #999;
  text-shadow: 0 1px 3px #ddd;
  padding: 10px 0;
  width: 100%;
  border-bottom: 1px solid #f1f1f1;
  clear: both;
  margin: 0;
}
.dejavu_h4,
.pdts_equi_h4 {
  font-family: "josefin";
  color: #bbb;
  text-align: center;
  background-color: #f4f4f4;
  margin: 0 auto 10px auto;
  text-transform: uppercase;
  letter-spacing: 0.12rem;
  font-size: 1.2rem;
  padding: 20px 0;
  width: 100% ;
}
.dejavu_h4 {
  border-top: 1px solid #f1f1f1;
  border-bottom: 1px solid #f1f1f1;
}
.pdts_equi_h4 {
  border: 1px solid #f1f1f1;
  border-radius: 20px;
}

.spec_pdt_table {
  margin: 20px 5px 70px 5px;
  width: 47%;
  font-size: 1em;
}
.spec_pdt_table tr td {
  padding: 0 1em;
  border-bottom: 1px solid #eee;
  height: 3em;
  vertical-align: middle;
}
.spec_pdt_table tr td:first-child {
  color: #444;
  max-width: 35%  ;
}
.spec_pdt_table tr td:last-child {
  font-style: italic;
  color: #888;
}
#spectable1 {
  float: left;
}
#spectable2 {
  float: right;
}

/* Versions récentes du produit */
.marge_top_spec {
  margin-top: 0 !important;
}

/* ============================================================
   FANCYBOX (visionneuse zoom)
============================================================ */
.fancybox-nav {
  top: 45%;
}
.fancybox-bg,
.fancybox-container {
  background: rgba(240, 240, 240, 0.8) !important;
}
.fancybox-thumbs {
  top: auto;
  width: auto;
  bottom: 0;
  left: 0;
  right: 0;
  height: 110px;
  padding: 3px 10px;
  box-sizing: border-box;
  background: rgba(255, 255, 255, 1);
}
.fancybox-thumbs__list a::before {
  border: 2px solid var(--second-color);
  border-radius: 10px;
}
div.fancybox-thumbs__list a {
  width: 100px !important;
  height: 100px !important;
  max-height: 100px !important;
  max-width: 100px !important;
}
.fancybox-button--close {
  width: 150px;
  font-size: 1.2em;
}
.fancybox-thumbs__list {
  left: 50%;
  transform: translate(-50%, 0);
}
.fancybox-show-thumbs .fancybox-inner {
  right: 0;
  bottom: 95px;
}
button.fancybox-button.fancybox-button--play,
button.fancybox-button.fancybox-button--thumbs {
  display: none !important;
}

/* ============================================================
   RESPONSIVE — BREAKPOINTS
============================================================ */

/* ≤ 1200px */
@media (max-width: 1350px) {
  .entete_itm {
    padding-left: 30px;
  }
}

/* 901px–1200px — tablette paysage : deux colonnes, galerie ≥ partie droite */
@media (min-width: 976px) and (max-width: 1270px) {
  .product-page-container {
    gap: 20px;
  }
  .product-gallery-wrapper {
    flex: 1 1 55%;
    min-width: 0;
  }
  .product-info-wrapper {
    flex: 1 1 40%;
    min-width: 0;
    padding: 20px 25px 10px 25px;
  }
  .gallery-main-column {
    grid-template-columns: auto minmax(0, 550px);
    grid-template-rows: auto auto auto;
  }
  .gallery-main-wrapper {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
  }
  .main-image {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
  }
  .thumbnails-wrapper {
    height: 500px;
  }
  .thumb-btn img {
    width: 64px;
  }
  .product-gallery {
    max-width: 100%;
  }
}

/* ≤ 1024px — slider : 3 produits */
@media (max-width: 1024px) {
  .related-product-card {
    flex: 0 0 calc(33.333% - 15px);
  }
}

/* ≤ 900px — colonnes empilées (mobile + tablette portrait) */
@media (max-width: 976px) {
  .product-page-container {
    gap: 20px;
  }
  .size-tile {
    width: 48px;
    height: 48px;
    font-size: 14px;
    border-radius: 10px;
  }
  .size-grid {
    gap: 7px;
  }
  .product-gallery-wrapper,
  .product-info-wrapper {
    flex-basis: 100%;
    width: 100%;
    flex-grow: 1;
    flex-shrink: 1;
  }

  .product-info-wrapper {
    background-color: #f4f4f4;
    border-radius: 10px;
    border: 1px solid #eee;
    margin: 0 12px;
    width: calc(100% - 24px);
    flex-basis: calc(100% - 24px);
    padding:20px 10px;
  }
  .product-info-wrapper.no-price-label {
    padding-top: 30px;
  }

  /* Badge mobile : image 50px (−20%), texte sous la flèche */
  .remise-badge {
    top:-6px;
    right:-6px;
    width: 70px;
    height: 63px;
    padding: 30px 3px 3px 0;
    background-size: 50px auto;
    background-position: right 0;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
     
  }
  .remise-badge--offre        { background-position: right -69px; }
  .remise-badge--new          { background-position: right -139px; }
  .remise-badge--precommande  { background-position: right -208px; }
  .remise-badge-pct { 
    font-size: 0.8rem; 
    font-weight: bold;
    letter-spacing: normal;
     }

  

  .product-gallery {
    margin: 0 auto 30px auto;
  }
  .h1_item {
    box-sizing: border-box;
    padding: 10px 10px 0 10px;
    font-size:1.4rem;
    text-align: center;
    margin: 0 auto;
  }
  .h1_item span {
  font-size: 1em;

  }

 
  #main_grbx {
    width: 100%;
    margin-top: 50px;
  }
   .entete_itm {
    padding:20px 0px;
  }
  .store-title { font-size: 1rem; }
  .related-products-section { margin:30px auto; padding: 0; }

  .accordion-title { font-size: 18px; }
  .accordion-header { font-size: 18px; padding: 14px 16px; }

  .pdts_equi_marque_h4,
  .pdts_equi_h4,.dejavu_h4 {
    border-radius: 0;
    background-color: #f4f4f4;
  }

  /* Badges : très réduits et centrés */

  .product-badges-row {padding:10px}

  .product-badges {
    justify-content: center;
  }
  .product-badge img {
    max-width: 100px;
  }

  /* Atouts : compacts pour ne pas repousser le prix */
  .atouts-cnt {
    margin-top: 0;
  }
  .atout-list-wrap {
    position: relative;
  }
  .atout-list {
    gap: 0;
    justify-content: flex-start;
  }
  .atout-list.collapsible {
    overflow: hidden;
    transition: max-height 0.3s ease;
  }
  .atout-list li {
    font-size: 0.9rem;
    padding-right: 5px;
    gap: 3px;
  }
  .atout-list li::before {
    font-size: 0.9rem;
  }

  /* h3 "Les petits +" — layout mobile */
  .atout-header {
    font-size: 0.85rem;
    padding: 10px 14px;
    width: 100%;
    margin: 0 0 3px 0;
    text-align: left;
    border-radius: 0;
  }

  /* h3 "Tendances liées" — layout mobile */
  .second-atout-header {
    font-size: 0.9rem;
    padding: 10px 14px;
    border-radius: 0;
    float: none;
    width: 100%;
    box-sizing: border-box;
    margin: 4px 0 3px 0;
  }

  .price-label { top:-25px; font-size: 0.8rem; margin-top: 0px; padding:3px 15px 0 15px;}




  #spectable1,
  #spectable2 {
    padding: 0 !important;
    width: 95% !important;
    margin: 0 auto !important;
    float: none !important;
    clear: both !important;
    box-sizing: border-box !important;
  }
  .spec_pdt_table {
    font-size: 11px;
    margin: 0 auto;
  }
  .spec_pdt_table tr td {
    height: 2em;
    border: none;
  }
  .spec_pdt_table tr td:first-child {
    color: #444;
    max-width: none;
    width:auto;
  }
  #spectable1 tr:nth-child(even) {
    background: #fff;
  }
  #spectable1 tr:nth-child(odd) {
    background: #f9f9f9;
  }
  #spectable2 tr:nth-child(even) {
    background: #f9f9f9;
  }
  #spectable2 tr:nth-child(odd) {
    background: #fff;
  }
  .pdts_equi_h4,
  .dejavu_h4 {
    font-size: 1rem;
    line-height: 120%;
    box-sizing: border-box;
    text-align: center;
    padding: 0.8em 2%;
    width: 100%;
    margin: 0 auto;
  }
  .fancybox-thumbs__list {
    bottom: 0;
    left: 0;
    transform: none;
  }
  .fancybox-navigation .fancybox-button {
    top: 20px;
  }
}

/* ≤ 768px — slider : 2 produits, flèches rondes en haut */
@media (max-width: 768px) {

  .pdts_equi_h4 {text-align: left; padding:0.8em 20px;}
  .slider-wrapper {padding-top: 0;}

  .slider-arrow {
    width: 30px;
    height: 30px;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid #e0e0e0;
    border-radius: 50%;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
    top: -39px;
    transform: none;
  }
  .slider-arrow:hover {
    background: #fff;
  }
  .slider-arrow svg {
    width: 18px;
    height: 18px;
    stroke: var(--main-color);
    stroke-width: 2;
  }
  .slider-arrow.prev {
    right: 40px;
    left: auto;
  }
  .slider-arrow.next {
    right: 4px;
  }
  .related-slider {
    gap: 16px;
  }
  .related-product-card {
    flex: 0 0 calc(50% - 8px);
  }
  .product-label {
    font-size: 0.6rem;
  }
  .product-info {
    padding: 8px;
    line-height: 1.2;
  }
  .product-name {
    font-size: 0.75rem;
    margin: 0 0 4px 0;
  }
  .price-new {
    font-size: 0.8rem;
  }
  .price-old {
    font-size: 0.7rem;
  }
  .product-pricing {
    gap: 4px;
  }
  .img-container img {
    max-width: 100%;
  }
  .entete_itm {
    margin-bottom: 10px;
  }
}

/* ≤ 600px */
@media screen and (max-width: 600px) {
  #main_grbx {
    margin-top: 50px;
  }
  .zoom-btn { width:38px; height:38px; top: 5px; right: 5px; left:auto}
}

/* ≤ 480px — slider : 2 produits entiers */
@media (max-width: 480px) {
  .related-product-card {
    flex: 0 0 calc(50% - 8px);
  }
}


@media (max-width: 375px) {
  .size-grid {
      gap: 6px;
    }


}

/* < 375px — tuiles taille : une seule ligne pour 6 tuiles, 5 par ligne pour 7+ */
@media (max-width: 360px) {
  .size-tile {
    width: 45px;
    height: 45px;
    font-size: 13px;
    border-radius: 8px;
  }
  
  .size-grid:has(> :nth-child(7)) {
    max-width: 250px;
  }

  .atout-header, .second-atout-header {
    font-size: 0.78rem;
  }
}

/* ≤ 340px */
@media screen and (max-width: 340px) {
  #spectable1,
  #spectable2 {
    width: 100% !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
  }
}

/* ============================================================
   MINI-PANIER SLIDE-IN (fiche produit)
============================================================ */

#cart-panel-overlay {
    display: none;
    position: fixed; top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.45);
    z-index: 9000;
}
#cart-panel {
    position: fixed; top: 0; right: -440px; width: 400px; max-width: 95vw;
    height: 100%; background: #fff;
    z-index: 9001;
    transition: right 0.32s ease;
    display: flex; flex-direction: column;
    box-shadow: -4px 0 24px rgba(0,0,0,0.18);
}
#cart-panel.cpanel-open { right: 0; }
.cpanel-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 0.85em 1.1em;
    border-bottom: 2px solid #ff8330;
    position: sticky; top: 0; background: #fff; z-index: 1;
}
.cpanel-header strong { font-size: 1.05em; letter-spacing: 0.02em; }
#cart-panel-close {
    background: none; border: none; font-size: 1.5em; cursor: pointer;
    color: #888; line-height: 1; padding: 0.15em 0.3em;
    transition: color 0.15s;
}
#cart-panel-close:hover { color: #ff8330; }
#cart-panel-body { flex: 1; overflow-y: auto; }
.cpanel-empty { text-align: center; padding: 2em 1em; color: #888; }
.cpanel-item {
    padding: 0.5em 0.5em 0.8em;
    line-height: 1.5;
}
.cpanel-item-img { text-align: center; padding: 0.4em 0 0 0; }
.cpanel-item-img img { width: 100%; max-width: 160px; height: auto; }
.cpanel-item-info { text-align: center; font-size: 1em; padding: 0 0.5em 0.3em 0.5em; }
.cpanel-item-info a { display: block; text-decoration: none; color: var(--link-color); }
.cpanel-details-row { display: flex; gap: 0.5em; justify-content: center; align-items: center; flex-wrap: wrap; }
.cpanel-sep { color: #bbb; }
.cpanel-ref { color: #aaa; font-size: 0.82em; font-style: normal; }
.cpanel-remise { color: green; }
.cpanel-item-price {
    text-align: center; font-weight: bold; font-size: 1em;
    background: #f5f5f5; padding: 0.4em 0.5em;
}
.cpanel-totaux { padding: 0.3em 1em 0.8em; }
.cpanel-sous-total, .cpanel-total-ttc {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.5em 0;
}
.cpanel-sous-total { border-top: 1px solid #eee; color: #555; font-size: 0.95em; margin-top: 0.5em; }
.cpanel-total-ttc { border-top: 2px solid #e0e0e0; font-size: 1.15em; }
.cpanel-footer {
    padding: 0.85em 1.1em;
    border-top: 1px solid #eee;
    background: #fff;
    position: sticky; bottom: 0;
    display: flex; flex-direction: column; gap: 0.6em;
}
.cpanel-btn-cmd {
    display: block; width: 100%; box-sizing: border-box;
    text-align: center; padding: 0.75em 1em; margin: 0;
    background-image: linear-gradient(180deg, #ff8330, #ff6600);
    border: 2px solid #fff; border-radius: 20px;
    font-size: 20px; font-weight: bold; color: #fff !important;
    text-decoration: none; cursor: pointer; transition: background 0.25s ease, color 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.cpanel-btn-cmd:hover { text-decoration: none; background-image: none; background: #fff; border-color: #ff8330; color: #ff8330 !important; box-shadow: 0 4px 14px rgba(255,131,48,0.35); }
.cpanel-btn-continue {
    display: block; width: 100%; box-sizing: border-box;
    text-align: center; padding: 0.75em 1em;
    background: none; border: 2px solid #ccc; border-radius: 20px;
    font-size: 1em; font-weight: bold; color: #444;
    cursor: pointer; transition: border-color 0.15s, color 0.15s;
}
.cpanel-btn-continue:hover { border-color: #ff8330; color: #ff8330; }
.cpanel-added-msg {
    text-align: center; padding: 0.6em 1em;
    color: #2a7a2a; font-weight: bold; font-size: 0.95em;
    background: #f0fbf0; border-bottom: 1px solid #c8ecc8;
}

/* ============================================================
   STOCK ÉPUISÉ — point rouge + select désactivé
============================================================ */
.stock-epuise {
  background: #d93030;
  box-shadow: 0 0 0 3px rgba(217, 48, 48, 0.18);
}

.store-stock-status span:last-child {
  color: inherit;
}

.stock-epuise ~ span {
  color: #b94040;
  font-weight: 600;
}

.form-select:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  background-color: #f0f0f0;
}

/* ============================================================
   BLOC ALTERNATIVES — fiche produit épuisée
============================================================ */
.alternative_pdt {
  margin: 16px 0 24px;
}

.alt_pdt_intro {
  font-size: 0.9rem;
  color: #555;
  margin: 0 0 14px;
  line-height: 1.5;
}

.alt_pdt_epuise {
  font-weight: 700;
  color: #b94040;
}

.alt_pdt_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.alt_pdt_item {
  background: #fff;
  border: 1px solid #e6e6e4;
  border-radius: 8px;
  overflow: hidden;
  transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.alt_pdt_item:hover {
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

.alt_pdt_lk {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-decoration: none;
  color: inherit;
  padding: 8px 6px 10px;
}

.alt_pdt_lk:hover {
  text-decoration: none;
  color: var(--main-color, #ff6600);
}

.alt_pdt_img {
  width: 100%;
  height: auto;
  border-radius: 4px;
  display: block;
  aspect-ratio: 1 / 1;
  object-fit: cover;
}

.alt_pdt_name {
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  color: #333;
  text-align: center;
  margin-top: 7px;
  line-height: 1.3;
}

.alt_pdt_color {
  display: block;
  font-size: 0.65rem;
  color: #999;
  text-align: center;
  margin-top: 2px;
}

@media (max-width: 480px) {
  .alt_pdt_grid {
    gap: 6px;
  }
  .alt_pdt_name {
    font-size: 0.65rem;
  }
  .alt_pdt_color {
    font-size: 0.6rem;
  }
}
