/* =========================
   PRODUCTO: Layout base
   ========================= */

.product-container{
  max-width: 1320px;
  margin: 0 auto;
  padding: 4rem 1.5rem;
}

.product-layout{
  display: grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 4rem;
  align-items: start;
}

.product-summary{
  position: sticky;
  top: 120px;
}

/* =========================
   PRODUCTO: Galería + Swiper
   ========================= */

.product-gallery{
  display: flex;
  justify-content: center;
}

.product-gallery .product-swiper{
  width: 55%;
  max-width: 700px;
  overflow: hidden;
}

.product-gallery .product-image,
.product-gallery .product-swiper img{
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Fix: evitar que se “apilen” slides */
.product-gallery .product-swiper .swiper-slide{
  width: 100%;
}

/* Flechas: verde Reusa, flecha blanca, sin borde, sin salto en hover */
.product-gallery .product-swiper .swiper-button-prev,
.product-gallery .product-swiper .swiper-button-next{
  opacity: 1;
  visibility: visible;
  z-index: 20;

  width: 44px;
  height: 44px;
  border-radius: 999px;

  background: #1f4a1f;
  border: none;
  box-shadow: 0 10px 22px rgba(31,74,31,.35);

  --swiper-navigation-size: 22px;
  color: #fff;

  transform: translateY(-50%);
  transition: background .15s ease, box-shadow .15s ease;
}

.product-gallery .product-swiper .swiper-button-prev:hover,
.product-gallery .product-swiper .swiper-button-next:hover{
  background: #173a17;
}

.product-gallery .product-swiper .swiper-button-disabled{
  opacity: .45;
  box-shadow: none;
}

/* =========================
   PRODUCTO: Tipografía + CTA (Resumen)
   ========================= */

body.single-product .product-summary .product_title{
  font-size: 2rem;
  line-height: 1.15;
  font-weight: 800;
  letter-spacing: .01em;
  text-transform: uppercase;
  margin: 0 0 .6rem;
}

body.single-product .product-summary .price{
  font-size: 1.7rem;
  font-weight: 800;
  color: #111;
}

body.single-product .product-summary .price .woocommerce-Price-currencySymbol{
  opacity: .9;
}

body.single-product .woocommerce-product-details__short-description{
  margin: .8rem 0 1.1rem;
  color: #444;
  line-height: 1.7;
}

body.single-product .woocommerce-product-details__short-description p{
  margin: 0;
}

body.single-product .product-summary .stock{
  margin: 0 0 1rem;
  font-size: 1.5rem;
  color: #444;
}

body.single-product .product-summary .stock.in-stock{
  color: #1f4a1f;
  font-weight: 700;
}

body.single-product .product-summary .single_add_to_cart_button{
  margin: .2rem 0 1.2rem;
  display: flex;
  align-items: center;
  justify-content: center;

  width: 100%;
  min-height: 46px;
  padding: 0 1.2rem;

  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;

  border: 0;
  background: #1f4a1f;
  color: #fff;

  box-shadow: 0 6px 14px rgba(31,74,31,.25);
  transition: background .15s ease, transform .15s ease, box-shadow .15s ease;
}

body.single-product .product-summary .single_add_to_cart_button:hover{
  background: #173a17;
  transform: translateY(-1px);
}

/* Meta */
body.single-product .product_meta{
  margin-top: .8rem;
  padding-top: 1.3rem;
  border-top: 1px solid rgba(0,0,0,.08);
  font-size: 1.3rem;
  line-height: 1.6;
  color: #444;
}

body.single-product .product_meta > span{
  display: block;
  margin: .25rem 0;
}

body.single-product .product_meta a{
  color: #1f4a1f;
  text-decoration: none;
  font-weight: 700;
}

body.single-product .product_meta a:hover{
  text-decoration: underline;
}

/* =========================
   PRODUCTO: Tabs (Descripción / Valoraciones)
   ========================= */

body.single-product .woocommerce-tabs{
  margin-top: 3rem;
}

body.single-product .woocommerce-tabs ul.wc-tabs{
  display: flex;
  gap: .6rem;
  border: 0;
  border-bottom: 1px solid rgba(0,0,0,.1);
  margin: 0 0 1.25rem;
  padding: 0;
}

body.single-product .woocommerce-tabs ul.wc-tabs li{
  list-style: none;
  margin: 0;
  background: transparent;
  border: 0;
}

body.single-product .woocommerce-tabs ul.wc-tabs li a{
  display: inline-block;
  padding: .6rem 1rem;

  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;

  color: #111;
  text-decoration: none;

  background: #f4f6f4;
  border-radius: 0;
}

body.single-product .woocommerce-tabs ul.wc-tabs li.active a{
  background: rgba(31,74,31,.12);
  color: #1f4a1f;
  font-weight: 700;
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel{
  padding-top: 1.25rem;
  color: #333;
  line-height: 1.65;
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel h2,
body.single-product #reviews h2{
  font-size: 1.7rem;
  font-weight: 700;
  margin: 0 0 .8rem;
  color: #111;
  letter-spacing: .02em;
  text-transform: uppercase;
}

body.single-product .woocommerce-tabs .woocommerce-Tabs-panel p,
body.single-product #reviews p,
body.single-product #review_form p{
  font-size: 1.5rem;
  line-height: 1.65;
  font-weight: 400;
  color: #333;
}

body.single-product .woocommerce-Tabs-panel img.emoji{
  width: 18px;
  height: 18px;
  vertical-align: -3px;
}

/* Reviews: labels, estrellas, inputs, submit */
body.single-product #reviews label,
body.single-product #reply-title{
  font-size: 1.3rem;
  font-weight: 600;
  color: #111;
}

body.single-product #reviews .stars a{
  color: #1f4a1f;
}

body.single-product #review_form textarea,
body.single-product #review_form input[type="text"],
body.single-product #review_form input[type="email"]{
  width: 100%;
  border: 1px solid rgba(0,0,0,.18);
  border-radius: 0;
  padding: .9rem 1rem;
  font-size: 1.5rem;
}

body.single-product #review_form input#submit,
body.single-product #review_form button[type="submit"]{
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 46px;
  padding: 0 1.4rem;

  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;

  border: 0;
  border-radius: 0;

  background: #1f4a1f;
  color: #fff;

  box-shadow: 0 6px 14px rgba(31,74,31,.25);
  cursor: pointer;
  transition: background .15s ease, box-shadow .15s ease;
}

body.single-product #review_form input#submit:hover,
body.single-product #review_form button[type="submit"]:hover{
  background: #173a17;
  box-shadow: 0 10px 18px rgba(31,74,31,.28);
}

/* =========================
   PRODUCTO: Relacionados (mismo estilo tienda)
   ========================= */

.single-product .related.products{
  margin-top: 3rem;
}

.single-product .related.products > h2{
  margin: 0 0 1.2rem;
  font-size: 1.7rem;
  font-weight: 700;
  letter-spacing: .01em;
  color: #111;
}

.single-product .related.products ul.products{
  list-style: none;
  padding: 0;
  margin: 2rem 0 2.5rem;

  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 2.2rem;
  align-items: stretch;
}

/* quitar floats/clears de Woo */
.single-product .related.products ul.products li.product{
  float: none;
  width: auto;
  margin: 0;
  clear: none;

  background: #fff;
  overflow: hidden;
  display: flex;
  flex-direction: column;

  box-shadow: 0 20px 24px #1f4a1f52;
  transition: transform .25s ease, box-shadow .25s ease;
}

.single-product .related.products ul.products li.product:hover{
  transform: translateY(-6px);
  box-shadow: 0 24px 48px rgba(0,0,0,.12);
}

/* Link principal “cuerpo” */
.single-product .related.products ul.products li.product a.woocommerce-LoopProduct-link,
.single-product .related.products ul.products li.product a.woocommerce-loop-product__link{
  display: flex;
  flex-direction: column;
  gap: .65rem;
  padding: 0;
  text-decoration: none;
  color: inherit;
  flex: 1 1 auto;
}

/* Imagen */
.single-product .related.products ul.products li.product
a.woocommerce-LoopProduct-link img,
.single-product .related.products ul.products li.product
a.woocommerce-loop-product__link img{
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
}

/* Título */
.single-product .related.products ul.products li.product .woocommerce-loop-product__title{
  margin: .2rem 1.05rem 0;
  font-size: 1.5rem;
  font-weight: 600;
  line-height: 1.35;
  color: #111;
}

/* Precio */
.single-product .related.products ul.products li.product .price{
  margin: 0 1.05rem .4rem;
  font-size: 1.7rem;
  font-weight: 800;
  color: #000;
  margin-top: auto;
}

.single-product .related.products ul.products li.product .price .amount{
  font-weight: 800;
}

/* Botón */
.single-product .related.products ul.products li.product a.button,
.single-product .related.products ul.products li.product a.add_to_cart_button,
.single-product .related.products ul.products li.product a.ajax_add_to_cart{
  margin: .2rem 1.05rem 1.2rem;
  display: flex;
  align-items: center;
  justify-content: center;

  width: calc(100% - 2.1rem);
  min-height: 46px;
  padding: 0 1.2rem;

  font-size: 1.5rem;
  font-weight: 800;
  letter-spacing: .05em;
  text-transform: uppercase;

  border: 0;
  background: #1f4a1f;
  color: #fff;

  box-shadow: 0 6px 14px rgba(31,74,31,.25);
  transition: background .15s ease, transform .15s ease, box-shadow .15s ease;
}

.single-product .related.products ul.products li.product a.button:hover,
.single-product .related.products ul.products li.product a.add_to_cart_button:hover,
.single-product .related.products ul.products li.product a.ajax_add_to_cart:hover{
  background: #183b18;
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(31,74,31,.35);
}

.single-product .related.products ul.products li.product a.button:active,
.single-product .related.products ul.products li.product a.add_to_cart_button:active,
.single-product .related.products ul.products li.product a.ajax_add_to_cart:active{
  transform: translateY(0);
  box-shadow: 0 4px 10px rgba(31,74,31,.25);
}

/* limpiar clearfix Woo en la lista */
.single-product .related.products ul.products::before,
.single-product .related.products ul.products::after{
  content: none;
  display: none;
}

/* ===========================
   SINGLE PRODUCT – FIX + RESPONSIVE (<= 991px)
   =========================== */

/* FIX CRÍTICO: en grid, los hijos deben poder encogerse o Swiper revienta el layout */
.product-layout > *{
  min-width: 0;
}

/* El Swiper jamás puede dictar el ancho */
.product-gallery .product-swiper,
.product-gallery .product-swiper.swiper,
.product-gallery .product-swiper .swiper-wrapper,
.product-gallery .product-swiper .swiper-slide{
  max-width: 100%;
}

/* Swiper: fuerza contención sin “crecer infinito” */
.product-gallery .product-swiper,
.product-gallery .product-swiper.swiper{
  width: 100%;
  overflow: hidden;
}

/* Evita que imágenes/slide empujen el ancho */
.product-gallery img,
.product-gallery .swiper-slide img{
  max-width: 100%;
  height: auto;
  display: block;
}

/* RESPONSIVE real: desde 991px hacia abajo */
@media (max-width: 991px){

  .product-container{
    padding: 2rem 1rem;
  }

  .product-layout{
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  .product-summary{
    position: static;
    top: auto;
  }

  /* En móvil/tablet: slider a ancho completo */
  .product-gallery{
    display: block;
  }

  .product-gallery .product-swiper{
    width: 100%;
    max-width: none;
  }

  /* Flechas: que no molesten en pantallas estrechas */
  .product-gallery .product-swiper .swiper-button-prev,
  .product-gallery .product-swiper .swiper-button-next{
    width: 40px;
    height: 40px;
  }
}
