/* ==========================================================================
   themes/<votre-theme>/assets/css/product-page.css
   ========================================================================== */

   body#product .container {
    max-width: -webkit-fill-available;
    width: 100%;
}
.product-page-wrapper{
  display:flex;
  align-items:flex-start;
  gap:60px;
  max-width:100%;
  margin:0 auto;
  padding:0 32px;
}

/* ---- Galerie gauche : images empilées ---- */
.product-gallery{
  flex:0 0 55%;
  display:flex;
  flex-direction:column;
  gap:0;
}
.product-gallery-item{
  display:block;
  width:100%;
  border:none;
  background:none;
  padding:0;
  cursor:zoom-in;
  margin-bottom: 30px;
}
.product-gallery-item img{
  width:100%;
  height:auto;
  display:block;
}

/* ---- Colonne droite sticky ---- */
.product-content-sticky{
  flex:0 0 40%;
  position:sticky;
  top:40px;
  align-self:flex-start;
}

.product-page-artist{
  font-size: 18px;
  letter-spacing:.1em;
  text-transform: capitalize;
  margin-bottom:14px;
  position: relative;
}
.product-page-artist a{
  color:#1a1a1a;
  text-decoration:none;
}

.product-page-title{
  color: #000;
  font-size: 18px;
  margin: 0;
  text-align: left;
  padding: 0;
  margin-bottom: 40px;
  line-height: normal;
  font-family: 'Simoncini_Garamond_Std';
  font-style: italic;
  text-transform: none;
  letter-spacing: 1px;
  font-weight: normal;
  margin-top: 40px;
}
.product-page-year{
  font-style:italic;
}

.product-page-price{
  margin-bottom:24px;
  font-size: 17px;
  font-family: 'sackers';
}

/* ---- Actions : Acheter / Réserver / Favoris ---- */
.product-page-actions{
  display:flex;
  align-items:center;
  gap:28px;
  margin-bottom: 14px;
  padding-bottom: 44px;
  border-bottom: 1px solid #777;
  justify-content: start;
}
.product-page-actions form{
  margin:0;
}
.product-cta{
  background:none;
  border:none;
  cursor:pointer;
  font-size:13px;
  letter-spacing:.1em;
  text-transform:uppercase;
  padding:0;
  color: #000;
}
.text_underline_animation{
  border-bottom:1px solid currentColor;
  padding-bottom:3px;
  font-family: 'sackers';
  color: #000;
}

.product-wishlist-btn{
  background:none;
  border:none;
  cursor:pointer;
  margin-left:auto;
  margin: 0;
}
.product-wishlist-btn i{
  font-size:16px;
  color:#1a1a1a;
}
.product-wishlist-btn.is-active i{
  color:#1a1a1a;
}

/* ---- Onglets Description / Question / RDV ---- */
.product-page-tabs{
  display:flex;
  gap:24px;
  margin-bottom:24px;
  flex-wrap:wrap;
}
.product-page-tab{
  font-size:12px;
  letter-spacing:.06em;
  text-transform: inherit;
  color: #000000;
  cursor:pointer;
  padding-bottom:6px;
  border-bottom: 1px solid transparent;
}
.product-page-tab.active{
  color:#1a1a1a;
  border-bottom:1px solid #1a1a1a;
}

.product-features-list{
  list-style:none;
  padding:0;
  margin:0;
}
.product-features-list li{
  font-size:13px;
  color:#8a8478;
  padding:6px 0;
}
.feature-title{
  color:#8a8478;
}
.feature-value{
  color:#1a1a1a;
}

.product-page-pdf{
  margin-top:24px;
}
.product-page-pdf a{
  font-size:12px;
  text-decoration:underline;
  color:#1a1a1a;
}

/* ==========================================================================
   ZOOM IMAGE (desktop)
   ========================================================================== */
.product-zoom-modal{
  position:fixed;inset:0;
  background:rgba(0,0,0,.92);
  display:flex;align-items:center;justify-content:center;
  z-index:2000;
  opacity:0;visibility:hidden;
  transition:opacity .25s ease;max-width: 630px !important;
margin: 20px auto;
}
.product-zoom-modal.open{
  opacity:1;visibility:visible;
}
.product-zoom-image{
  max-width:85vw;
  max-height:85vh;
  object-fit:contain;
}
.product-zoom-close,
.product-zoom-prev,
.product-zoom-next{
  position:absolute;
  background:none;border:none;color:#fff;
  cursor:pointer;font-size:28px;
}
.product-zoom-close{top:24px;right:32px;}
.product-zoom-prev{left:32px;top:50%;transform:translateY(-50%);}
.product-zoom-next{right:32px;top:50%;transform:translateY(-50%);}

.product-zoom-frame img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
}

.product-zoom-frame {
    width: 100%;
    height: 100%;
}

.product-zoom-close {
    background: #fff;
    color: #000;
    font-weight: 900;
}
/* ==========================================================================
   POPUPS Réserver / Question (reprend le style .book_popup/.quest_popup)
   ========================================================================== */
.book_popup,
.quest_popup{
  position:fixed;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  background:#fff;
  
  padding:20px;
  width:700px;
  max-width:90vw;
  z-index:1500;
}
.book_popup.hidden,
.quest_popup.hidden{
  display:none;
}
.book_popup input,
.quest_popup input,
.quest_popup textarea{
  width:100%;
  border:none;
  border-bottom:1px solid #1a1a1a;
  padding:8px 0;
  margin:14px 0;
  font-size:13px;
  outline:none;
  background:transparent;
}
.quest_popup textarea{
  min-height:80px;
  border:1px solid #1a1a1a;
  padding:10px;
}
.cta_send_booking_product,
.cta_send_quest_product{
  background:#1a1a1a;color:#fff;
  text-align:center;padding:13px;
  font-size:11px;text-transform:uppercase;
  cursor:pointer;margin-top:16px;
    font-family: 'sackers';
}
p {
    font-family: 'EBGaramond';
}
.close_book,
.close_quest{
  position:absolute;top:14px;right:16px;
  cursor:pointer;font-size:16px;
}
.product-manufacturer , .product-quantities {
    display: none;
}

.product-features>dl.data-sheet dd.value, .product-features>dl.data-sheet dt.name {
    background: transparent;
    padding: 0;
    margin: 0;
    height: auto;
    min-height: auto;
    font-size: 13px;
}

.definition-list dl dd:nth-of-type(even), .definition-list dl dt:nth-of-type(even), .product-features>dl.data-sheet dd.value:nth-of-type(even), .product-features>dl.data-sheet dt.name:nth-of-type(even) {
    background: transparent;
    padding: 0;
    margin: 0;
    height: auto;
}
.product-page-tab:hover {border-bottom: 1px solid;transition: 0.4s;}

.cart-error-popup{
  position:fixed;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  background:#fff;
  border:1px solid #1a1a1a;
  padding:36px;
  width:380px;
  max-width:90vw;
  z-index:1600;
  text-align:center;
}
.cart-error-popup.hidden{
  display:none;
}
.cart-error-message{
  font-size:14px;
  line-height:1.6;
  margin:0;
}
p.h5.text-uppercase {
    text-align: center;
    font-family: 'sackers';
    margin-bottom: 4%;
    letter-spacing: 1.5px;
    color: #444;
}

section.product-accessories.clearfix {
    margin-top: 5%;
}
/* ==========================================================================
   RESPONSIVE : slider mobile pour la galerie
   ========================================================================== */
@media (max-width: 900px){
  .product-page-wrapper{
    flex-direction:column;
    gap:24px;
    padding:0 16px;
  }

  .product-gallery{
    flex:none;
    width:100%;
    position:relative;
    overflow:hidden; /* on masque le débordement, le JS gère le déplacement */
  }

  .product-gallery-track{
    display:flex;
    flex-wrap:nowrap;
    transition:transform .3s ease;
    will-change:transform;
  }

  .product-gallery-item{
    flex:0 0 100%;
    width:100%;
    cursor:default;
  }

  .product-gallery-dots{
    display:flex;
    justify-content:center;
    gap:8px;
    margin-top:14px;
  }
  .product-gallery-dot{
    width:6px;height:6px;border-radius:50%;
    background:#ddd5c4;border:none;padding:0;cursor:pointer;
  }
  .product-gallery-dot.active{
    background:#1a1a1a;
  }

  .product-content-sticky{
    flex:none;
    width:100%;
    position:static;
  }
}
/* ========== Modale zoom ========== */
.product-zoom-modal {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: none;
  align-items: center;
  justify-content: center;
  overflow: hidden;              /* aucun scroll dans la modale */
  background: rgba(255, 255, 255, 0.85);
}

.product-zoom-modal.open {
  display: flex;
}

/* Cadre fixe : coupe le zoom aux bords de la photo */
.product-zoom-frame {
  position: relative;
  overflow: hidden;
  line-height: 0;                /* évite un petit vide sous l'image */
  cursor: zoom-in;
}

.product-zoom-image {
  display: block;
  max-width: 85vw;
  max-height: 95vh;
  transition: transform 0.25s ease;
  will-change: transform;
}

/* Croix de fermeture (dans l'image, en haut à droite) */
.product-zoom-close {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 2;
  width: 40px;
  height: 40px;
  border: none;
  background: rgba(255, 255, 255, 0.8);
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
}

/* Flèches précédent / suivant */
.product-zoom-prev,
.product-zoom-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 3;
  width: 50px;
  height: 50px;
  border: none;
  background: none;
  font-size: 48px;
  line-height: 1;
  cursor: pointer;
}

.product-zoom-prev { left: 20px; }
.product-zoom-next { right: 20px; }

/* Bloque le scroll de la page quand la modale est ouverte */
body.no-scroll {
  overflow: hidden;
}