/* ==========================================================================
   Nayra — fiche produit : galerie face/dos, résumé (prix, tailles, panier),
   accordéon description/composition/entretien, produits similaires.
   Mobile-first. Chargé uniquement sur les fiches produit (inc/assets.php).
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Structure : galerie au-dessus (mobile) → 2 colonnes (desktop).
   -------------------------------------------------------------------------- */

.fiche-produit {
  padding-top: 1.5rem;
}

@media (min-width: 1024px) {
  .fiche-produit__haut {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 3rem;
    align-items: start;
  }
}

/* --------------------------------------------------------------------------
   2. Galerie face/dos.
   -------------------------------------------------------------------------- */

.galerie__viewport {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.galerie__viewport::-webkit-scrollbar {
  display: none;
}

.galerie__vue {
  flex: 0 0 100%;
  margin: 0;
  scroll-snap-align: start;
}

.galerie__vue img {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  object-fit: cover;
  background: var(--nayra-sable);
}

.galerie__vue--vide {
  display: block;
  width: 100%;
  aspect-ratio: 3 / 4;
  background: var(--nayra-sable-2);
}

.galerie__points {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.galerie__point {
  padding: 0.375rem 1rem;
  font-size: 0.8125rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--nayra-gris-2);
  background: none;
  border: 1px solid var(--nayra-sable);
  cursor: pointer;
}

.galerie__point.est-active {
  color: var(--nayra-blanc);
  background: var(--nayra-or);
  border-color: var(--nayra-or);
}

/* --------------------------------------------------------------------------
   3. Résumé : titre, prix, formulaire de variations.
   -------------------------------------------------------------------------- */

.fiche-produit__resume {
  margin-top: 1.5rem;
}

@media (min-width: 1024px) {
  .fiche-produit__resume {
    margin-top: 0;
  }
}

.fiche-produit__prix {
  margin: 0.5rem 0 1.25rem;
  font-size: 1.375rem;
  color: var(--nayra-or);
}

/* Prix barré / prix promo (D-010 : woocommerce.css ne le fait plus). */
.fiche-produit__prix del,
.fiche-produit .woocommerce-variation-price del {
  margin-right: 0.375rem;
  color: var(--nayra-gris-3);
  font-size: 0.85em;
}

.fiche-produit__prix ins,
.fiche-produit .woocommerce-variation-price ins {
  text-decoration: none;
}

.fiche-produit__extrait {
  margin-bottom: 1.25rem;
  color: var(--nayra-gris-2);
  font-size: 0.9375rem;
}

/* Formulaire de variations natif Woo, remis aux couleurs de la marque. */
.fiche-produit table.variations {
  border-collapse: collapse;
  margin-bottom: 0.5rem;
}

.fiche-produit table.variations th,
.fiche-produit table.variations td {
  padding: 0 0 0.75rem;
  text-align: left;
  vertical-align: middle;
}

.fiche-produit table.variations th {
  padding-right: 1rem;
  font-weight: 500;
}

.fiche-produit .variations select {
  min-width: 10rem;
  padding: 0.625rem 2.25rem 0.625rem 0.875rem;
  font-size: 0.9375rem;
  color: var(--nayra-brun);
  background-color: var(--nayra-blanc);
  border: 1px solid var(--nayra-sable);
  border-radius: 0;
  appearance: none;
  background-image: linear-gradient(45deg, transparent 50%, var(--nayra-or) 50%),
    linear-gradient(135deg, var(--nayra-or) 50%, transparent 50%);
  background-position: calc(100% - 1.2rem) 50%, calc(100% - 0.85rem) 50%;
  background-size: 0.35rem 0.35rem;
  background-repeat: no-repeat;
}

.fiche-produit .reset_variations {
  font-size: 0.8125rem;
  color: var(--nayra-gris-3);
  text-decoration: underline;
}

/* Disponibilité du stock (par taille sélectionnée). */
.fiche-produit .woocommerce-variation-availability {
  margin-bottom: 0.75rem;
  font-size: 0.875rem;
}

.fiche-produit .stock.in-stock {
  color: var(--nayra-gris-2);
}

.fiche-produit .stock.out-of-stock {
  color: var(--nayra-brun);
  font-weight: 600;
}

.fiche-produit .woocommerce-variation-price {
  margin-bottom: 0.75rem;
  font-size: 1.125rem;
  color: var(--nayra-or);
}

/* Quantité + bouton d'ajout au panier. */
.fiche-produit form.cart {
  margin-bottom: 1.5rem;
}

.fiche-produit form.cart .quantity .qty {
  width: 4.25rem;
  padding: 0.75rem 0.5rem;
  text-align: center;
  border: 1px solid var(--nayra-sable);
  background: var(--nayra-blanc);
  border-radius: 0;
}

.fiche-produit form.cart .woocommerce-variation-add-to-cart {
  display: flex;
  align-items: stretch;
  gap: 0.75rem;
}

/* Bouton natif Woo aligné sur .nayra-bouton (woocommerce.css désenfilé
   depuis D-010 — sélecteur simple suffisant). */
.fiche-produit .single_add_to_cart_button {
  flex: 1;
  padding: 0.875rem 2rem;
  font-size: 0.9375rem;
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--nayra-blanc);
  background: var(--nayra-or);
  border: 1px solid var(--nayra-or);
  border-radius: 0;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.fiche-produit .single_add_to_cart_button:hover,
.fiche-produit .single_add_to_cart_button:focus-visible {
  color: var(--nayra-or);
  background: transparent;
}

.fiche-produit .single_add_to_cart_button.disabled,
.fiche-produit .single_add_to_cart_button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Méta (référence, catégorie). */
.fiche-produit .product_meta {
  padding-top: 1rem;
  border-top: 1px solid var(--nayra-sable);
  font-size: 0.8125rem;
  color: var(--nayra-gris-3);
}

.fiche-produit .product_meta > span {
  display: block;
  margin-bottom: 0.25rem;
}

.fiche-produit .product_meta a {
  color: var(--nayra-gris-2);
  text-decoration: underline;
}

/* --------------------------------------------------------------------------
   4. Accordéon description / composition / entretien.
   -------------------------------------------------------------------------- */

.fiche-produit__details {
  max-width: 46rem;
  margin: 3rem auto 0;
}

.fiche-produit__section {
  border-bottom: 1px solid var(--nayra-sable);
}

.fiche-produit__section summary {
  padding: 1rem 0;
  font-family: var(--nayra-font-titres);
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  cursor: pointer;
  list-style: none;
  position: relative;
}

.fiche-produit__section summary::-webkit-details-marker {
  display: none;
}

.fiche-produit__section summary::after {
  content: "+";
  position: absolute;
  right: 0.25rem;
  color: var(--nayra-or);
}

.fiche-produit__section[open] summary::after {
  content: "\2212"; /* signe moins */
}

.fiche-produit__section-contenu {
  padding: 0 0 1.25rem;
  font-size: 0.9375rem;
  color: var(--nayra-gris-2);
}

/* --------------------------------------------------------------------------
   5. Produits similaires (markup natif Woo section.related).
   -------------------------------------------------------------------------- */

.fiche-produit .related.products {
  margin-top: 3.5rem;
}

.fiche-produit .related.products > h2 {
  margin-bottom: 1.5rem;
  text-align: center;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.fiche-produit .related.products ul.products {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1rem 1rem;
  list-style: none;
  padding: 0;
}

@media (min-width: 768px) {
  .fiche-produit .related.products ul.products {
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
  }
}

@media (min-width: 1024px) {
  .fiche-produit .related.products ul.products {
    grid-template-columns: repeat(4, 1fr);
  }
}
