    /* =========================
   PUBLISHER · Woo Product
   versión consolidada
   ========================= */

/* =========================
   Base
   ========================= */

body.single-product {
  --ast-sticky-add-to-cart-height: 0px;
  --publisher-product-green: #3f5b35;
  --publisher-product-green-dark: #2f4728;
  --publisher-product-text: #122033;
  --publisher-product-muted: #6d7682;
  --publisher-product-border: #dfe5eb;
  --publisher-product-soft: #f7f3eb;
}

body.single-product .site-content,
body.single-product .content-area,
body.single-product .ast-container {
  overflow: visible;
}

body.single-product .ast-woocommerce-container {
  padding-bottom: 0 !important;
}

body.single-product .site-main > .product.type-product {
  max-width: 1360px;
  margin: 0 auto;
  padding: 34px 24px 54px;
  box-sizing: border-box;
}

/* =========================
   Bloquear sticky add to cart Astra
   ========================= */

body.single-product .ast-sticky-add-to-cart,
body.single-product .ast-sticky-add-to-cart.top,
body.single-product .ast-sticky-add-to-cart.bottom,
body.single-product .ast-sticky-add-to-cart.is-active {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transform: translateY(-120%) !important;
}

/* =========================
   Mensajes Woo
   ========================= */

body.single-product .woocommerce-message,
body.single-product .woocommerce-info,
body.single-product .woocommerce-error {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;

  width: 100%;
  margin: 0 0 28px;
  padding: 18px 26px 18px 64px;

  border: 1px solid #f5c6d8 !important;
  border-radius: 22px;
  background: #fff;
  color: #122033;

  font-size: 17px;
  line-height: 1.35;
  font-weight: 500;

  box-shadow: none !important;
  outline: 0 !important;
  box-sizing: border-box;
}

/* eliminar pseudo-bordes de Astra/Woo */
body.single-product .woocommerce-message::after,
body.single-product .woocommerce-info::after,
body.single-product .woocommerce-error::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Icono/check izquierdo */
body.single-product .woocommerce-message::before,
body.single-product .woocommerce-info::before,
body.single-product .woocommerce-error::before {
  left: 24px;
  top: 50%;
  transform: translateY(-50%);

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

  display: flex;
  align-items: center;
  justify-content: center;

  background: #fa1188;
  color: #fff !important;

  font-size: 14px;
  line-height: 1;
}

/* Botón Ver carrito */
body.single-product .woocommerce-message .button,
body.single-product .woocommerce-info .button,
body.single-product .woocommerce-error .button {
  order: 2;
  flex: 0 0 auto;

  min-height: 46px;
  padding: 0 30px;
  margin: 0;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  border: 0 !important;
  border-radius: 12px;
  background: #fa1188 !important;
  color: #fff !important;

  font-size: 15px;
  font-weight: 750;
  line-height: 1;
  text-decoration: none;

  box-shadow: none !important;
  transition: background .18s ease, transform .18s ease;
}

/* Hover botón */
body.single-product .woocommerce-message .button:hover,
body.single-product .woocommerce-info .button:hover,
body.single-product .woocommerce-error .button:hover {
  background: #d90f76 !important;
  color: #fff !important;
  transform: translateY(-1px);
}

/* =========================
   Layout escritorio
   ========================= */

@media (min-width: 981px) {
  body.single-product .site-main > .product.type-product {
    display: grid;
    grid-template-columns: minmax(0, 1.12fr) minmax(390px, 0.88fr);
    column-gap: 58px;
    align-items: start;
  }

  body.single-product .site-main > .product.type-product > .woocommerce-product-gallery,
  body.single-product .site-main > .product.type-product > .summary {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
  }

  body.single-product .site-main > .product.type-product > .woocommerce-product-gallery {
    grid-column: 1;
  }

  body.single-product .site-main > .product.type-product > .summary {
    grid-column: 2;
  }

  body.single-product .site-main > .product.type-product > .woocommerce-tabs,
  body.single-product .site-main > .product.type-product > .related,
  body.single-product .site-main > .product.type-product > .up-sells,
  body.single-product .site-main > .product.type-product > .upsells {
    grid-column: 1 / -1;
  }
}

/* =========================
   Badge oferta · single
   ========================= */

body.single-product div.product > span.onsale {
  position: absolute !important;
  top: 18px !important;
  left: 18px !important;
  right: auto !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  min-width: 0 !important;
  min-height: 0 !important;
  width: auto !important;
  height: auto !important;

  padding: 7px 11px !important;
  margin: 0 !important;
  border-radius: 6px !important;
  background: #8b4cf6 !important;
  color: #fff !important;

  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-align: center !important;

  z-index: 20 !important;
}

/* =========================
   Galería principal
   ========================= */

body.single-product div.product div.images.woocommerce-product-gallery {
  position: relative !important;
}

body.single-product .site-main > .product.type-product .woocommerce-product-gallery__wrapper {
  overflow: hidden;
  border-radius: 18px;
  background: var(--publisher-product-soft);
  box-shadow: 0 18px 42px rgba(20, 30, 40, 0.06);
}

body.single-product .site-main > .product.type-product .woocommerce-product-gallery .woocommerce-product-gallery__image a,
body.single-product .site-main > .product.type-product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
  display: block;
  width: 100%;
}

body.single-product .site-main > .product.type-product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
  height: auto;
  object-fit: cover;
}

/* =========================
   Carrusel miniaturas
   ========================= */

body.single-product .publisher-product-thumbs-shell {
  --thumb-size: 82px;
  --thumb-gap: 14px;
  --arrow-width: 36px;
  --thumbs-window: calc((var(--thumb-size) * 4) + (var(--thumb-gap) * 3));

  display: grid !important;
  grid-template-columns: var(--arrow-width) var(--thumbs-window) var(--arrow-width) !important;
  align-items: center !important;
  justify-content: center !important;
  column-gap: 0 !important;

  width: 100% !important;
  margin: 16px auto 0 !important;
  padding: 12px 14px !important;

  background: var(--publisher-product-soft) !important;
  border-radius: 8px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}

body.single-product .publisher-product-thumbs-shell ol.flex-control-nav.flex-control-thumbs {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: var(--thumb-gap) !important;

  width: var(--thumbs-window) !important;
  min-width: var(--thumbs-window) !important;
  max-width: var(--thumbs-window) !important;

  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  list-style: none !important;

  overflow: hidden !important;
  scrollbar-width: none !important;
}

body.single-product .publisher-product-thumbs-shell ol.flex-control-nav.flex-control-thumbs::-webkit-scrollbar {
  display: none !important;
}

body.single-product .publisher-product-thumbs-shell ol.flex-control-nav.flex-control-thumbs li {
  flex: 0 0 var(--thumb-size) !important;
  width: var(--thumb-size) !important;
  min-width: var(--thumb-size) !important;
  max-width: var(--thumb-size) !important;
  height: var(--thumb-size) !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
}

body.single-product .publisher-product-thumbs-shell ol.flex-control-nav.flex-control-thumbs img {
  display: block !important;
  width: var(--thumb-size) !important;
  height: var(--thumb-size) !important;
  object-fit: cover !important;
  border-radius: 8px !important;
  border: 1px solid transparent !important;
  background: #fff !important;
  opacity: 1 !important;
  filter: none !important;
}

body.single-product .publisher-product-thumbs-shell ol.flex-control-nav.flex-control-thumbs img.flex-active,
body.single-product .publisher-product-thumbs-shell ol.flex-control-nav.flex-control-thumbs img:hover {
  border-color: #253044 !important;
  box-shadow: 0 0 0 1px rgba(0,0,0,.12) !important;
}

body.single-product .publisher-product-thumbs-shell .publisher-product-gallery-arrow {
  position: relative !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 36px !important;
  min-width: 36px !important;
  height: var(--thumb-size) !important;

  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;

  color: #253044 !important;
  font-size: 34px !important;
  line-height: 1 !important;
  cursor: pointer !important;
  overflow: visible !important;
}

/* =========================
   Summary · estructura ordenada
   ========================= */

body.single-product div.product .summary.entry-summary {
  display: flex !important;
  flex-direction: column !important;
  margin-bottom: 0 !important;
  padding-top: 6px;
  padding-bottom: 0 !important;
}

body.single-product div.product .summary.entry-summary > * {
  order: 20;
}

body.single-product div.product .summary.entry-summary > .woocommerce-breadcrumb {
  order: 1 !important;
}

body.single-product div.product .summary.entry-summary > .product_title {
  order: 2 !important;
}

body.single-product div.product .summary.entry-summary > .publisher-product-intro-line {
  order: 3 !important;
}

body.single-product div.product .summary.entry-summary > .woocommerce-product-details__short-description {
  order: 4 !important;
}

body.single-product div.product .summary.entry-summary > .product_meta {
  display: none !important;
}

body.single-product div.product .summary.entry-summary > .publisher-product-stock-line {
  order: 5 !important;
}

body.single-product div.product .summary.entry-summary > .price {
  order: 6 !important;
}
body.single-product div.product .summary.entry-summary > form.cart {
  order: 7 !important;
}

body.single-product div.product .summary.entry-summary > .publisher-product-trust {
  order: 8 !important;
}

body.single-product div.product .summary.entry-summary > .wcpay-express-checkout-wrapper,
body.single-product div.product .summary.entry-summary > .wc-stripe-payment-request-wrapper,
body.single-product div.product .summary.entry-summary > #wc-stripe-payment-request-wrapper {
  order: 9 !important;
}
body.single-product div.product .summary.entry-summary > .ast-single-product-payments,
body.single-product div.product .summary.entry-summary > fieldset.ast-single-product-payments {
  order: 10 !important;
}

/* =========================
   Summary · textos principales
   ========================= */

body.single-product div.product .summary.entry-summary > .woocommerce-breadcrumb {
  position: relative !important;
  display: block !important;
  width: 100% !important;

  margin: 0 0 18px !important;
  padding: 0 !important;

  color: var(--publisher-product-muted) !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
}

body.single-product div.product .summary.entry-summary > .woocommerce-breadcrumb::after {
  content: "" !important;
  display: block !important;

  width: 100% !important;
  height: 1px !important;

  margin-top: 8px !important;

  background: #e7ecf1 !important;
}

body.single-product .site-main > .product.type-product .woocommerce-breadcrumb a {
  color: var(--publisher-product-muted);
  text-decoration: none;
}

body.single-product div.product .summary.entry-summary > .product_title {
  margin: 0 0 8px !important;
  color: var(--publisher-product-text) !important;
  font-size: 26px !important;
  line-height: 1.06 !important;
  font-weight: 750 !important;
  letter-spacing: -0.03em !important;
}

body.single-product div.product .summary.entry-summary > .price {
  display: grid !important;
  grid-template-columns: auto auto !important;
  column-gap: 7px !important;
  row-gap: 1px !important;

  justify-content: end !important;
  align-items: baseline !important;

  width: 100% !important;
  margin: 0 0 16px !important;

  color: var(--publisher-product-text) !important;
  font-size: 27px !important;
  line-height: 1.05 !important;
  font-weight: 800 !important;
  text-align: right !important;
  white-space: nowrap !important;
}

body.single-product div.product .summary.entry-summary > .price del {
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-self: baseline !important;

  margin: 0 !important;
  color: #8a94a0 !important;
  font-size: 21px !important;
  line-height: 1.05 !important;
  font-weight: 500 !important;
  opacity: 1 !important;
}

body.single-product div.product .summary.entry-summary > .price ins {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: baseline !important;

  margin: 0 !important;
  text-decoration: none !important;
}

body.single-product div.product .summary.entry-summary > .price .woocommerce-price-suffix,
body.single-product div.product .summary.entry-summary > .price .publisher-mobile-iva-short {
  grid-column: 2 !important;
  grid-row: 2 !important;
  justify-self: end !important;

  margin: 0 !important;
  color: var(--publisher-product-text) !important;
  font-size: 13px !important;
  line-height: 1.05 !important;
  font-weight: 700 !important;
}

body.single-product .site-main > .product.type-product .woocommerce-product-details__short-description {
  margin: 0 0 18px;
  color: #55606c;
  font-size: 14px;
  line-height: 1.7;
}

/* =========================
   Línea editorial + categoría + stock
   ========================= */

body.single-product .publisher-product-intro-line {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;

  width: 100% !important;
  margin: 0 0 14px !important;
  padding: 0 0 14px !important;

  color: #4f5965 !important;
  font-size: 14px !important;
  line-height: 1.35 !important;

  border-bottom: 1px solid #dfe5eb !important;
  box-sizing: border-box !important;
}
body.single-product .publisher-product-intro-line span:not(:last-child)::after {
  content: "·";
  margin-left: 8px;
  color: #8a94a0;  
}

body.single-product div.product .summary.entry-summary > .product_meta {
  display: none !important;
}

body.single-product div.product .summary.entry-summary > .woocommerce-product-details__short-description {
  margin: 0 0 18px !important;
  padding: 0 !important;

  color: #6d7682 !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  font-weight: 400 !important;

  text-align: justify !important;
  text-align-last: left !important;

  hyphens: auto !important;
  -webkit-hyphens: auto !important;
  -ms-hyphens: auto !important;

  overflow-wrap: normal !important;
  word-break: normal !important;
}

body.single-product div.product .summary.entry-summary > .woocommerce-product-details__short-description p {
  margin: 0 !important;
}

body.single-product .publisher-product-stock-line {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 9px !important;

  width: 100% !important;
  margin: 0 0 6px !important;

  color: #39d353 !important;
  font-size: 15px !important;
  line-height: 1.3 !important;
  font-weight: 500 !important;
  text-align: right !important;
}

body.single-product .publisher-product-stock-line__dot {
  width: 10px !important;
  height: 10px !important;
  border-radius: 999px !important;
  background: #39d353 !important;
}

/* =========================
   Variaciones / selects
   ========================= */

body.single-product .site-main > .product.type-product form.cart {
  margin: 0;
}

body.single-product .site-main > .product.type-product table.variations {
  width: 100%;
  margin: 0 0 16px;
  border: 0;
}

body.single-product .site-main > .product.type-product table.variations td,
body.single-product .site-main > .product.type-product table.variations th {
  padding: 0 0 12px;
  border: 0;
  vertical-align: top;
}

body.single-product .site-main > .product.type-product table.variations label {
  color: #111;
  font-size: 12px;
  line-height: 1.2;
  font-weight: 600;
}

body.single-product .site-main > .product.type-product table.variations select {
  min-height: 48px;
  padding: 0 14px;
  border: 1px solid #d8dee6;
  border-radius: 15px;
  background: #fff;
  font-size: 14px;
  box-shadow: none;
}

body.single-product .site-main > .product.type-product .reset_variations {
  color: #6a7480;
  font-size: 12px;
  text-decoration: none;
}

/* =========================
   Cantidad + CTA
   ========================= */

body.single-product div.product .summary.entry-summary > form.cart {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 22px !important;

  width: 100% !important;
  max-width: 100% !important;

  margin: 0 0 22px !important;
  padding: 0 !important;
}

/* eliminar espacios fantasma de Woo/Astra */
body.single-product div.product .summary.entry-summary > form.cart::before,
body.single-product div.product .summary.entry-summary > form.cart::after {
  content: none !important;
  display: none !important;
}

/* cantidad alineada a la izquierda */
body.single-product div.product .summary.entry-summary > form.cart > .quantity,
body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added {
  display: inline-flex !important;
  align-items: stretch !important;
  justify-content: flex-start !important;

  flex: 0 0 120px !important;
  width: 120px !important;
  min-width: 120px !important;
  max-width: 120px !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 1px solid #dfe5eb !important;
  border-radius: 0 !important;
  background: #fff !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

body.single-product div.product .summary.entry-summary > form.cart > .quantity .screen-reader-text,
body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added .screen-reader-text {
  display: none !important;
}

body.single-product div.product .summary.entry-summary > form.cart > .quantity .minus,
body.single-product div.product .summary.entry-summary > form.cart > .quantity .plus,
body.single-product div.product .summary.entry-summary > form.cart > .quantity input.qty,
body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added .minus,
body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added .plus,
body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added input.qty {
  width: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;
  height: 40px !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;

  color: #253044 !important;
  font-size: 17px !important;
  line-height: 40px !important;
  text-align: center !important;
}

body.single-product div.product .summary.entry-summary > form.cart > .quantity .minus,
body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added .minus {
  border-right: 1px solid #dfe5eb !important;
}

body.single-product div.product .summary.entry-summary > form.cart > .quantity .plus,
body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added .plus {
  border-left: 1px solid #dfe5eb !important;
}

body.single-product div.product .summary.entry-summary > form.cart > .quantity input.qty,
body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added input.qty {
  -moz-appearance: textfield !important;
  appearance: textfield !important;
}

body.single-product div.product .summary.entry-summary > form.cart > .quantity input.qty::-webkit-outer-spin-button,
body.single-product div.product .summary.entry-summary > form.cart > .quantity input.qty::-webkit-inner-spin-button,
body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added input.qty::-webkit-outer-spin-button,
body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none !important;
  margin: 0 !important;
}

/* botón alineado a la derecha */
body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button,
body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button.button,
body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button.button.alt {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 40px !important;
  height: 40px !important;

  margin: 0 0 0 auto !important;
  padding: 0 28px !important;

  border: 0 !important;
  border-radius: 12px !important;
  background: #fa1188 !important;
  color: #fff !important;

  font-size: 14px !important;
  font-weight: 750 !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;

  box-shadow: none !important;
}

body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button:hover,
body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button.button:hover,
body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button.button.alt:hover {
  background: #d90f76 !important;
  color: #fff !important;
}


/* =========================
   Express payment
   ========================= */

body.single-product .site-main > .product.type-product .wc-stripe-payment-request-wrapper,
body.single-product .site-main > .product.type-product .wcpay-payment-request-wrapper,
body.single-product .site-main > .product.type-product #wc-stripe-payment-request-wrapper {
  width: 100%;
  margin-top: 12px !important;
}

/* =========================
   Confianza
   ========================= */

body.single-product .publisher-product-trust {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 18px;
  margin: 22px 0 2px !important;
  padding: 0 !important;
}

body.single-product .publisher-product-trust__item {
  text-align: center;
  color: #4d5661;
  font-size: 12px;
  line-height: 1.35;
}

body.single-product .publisher-product-trust__icon {
  display: block;
  margin: 0 auto 8px;
  font-size: 24px;
  line-height: 1;
  filter: grayscale(1);
  opacity: .72;
}

body.single-product .publisher-product-trust__item strong {
  display: block;
  margin-bottom: 4px;
  color: #1d2938;
  font-size: 12px;
  font-weight: 700;
}

body.single-product .publisher-product-trust__item span:last-child {
  display: block;
  max-width: 110px;
  margin: 0 auto;
  color: #6c7580;
  font-size: 11px;
}

/* =========================
   Pago seguro garantizado
   ========================= */

body.single-product div.product .summary.entry-summary > fieldset.ast-single-product-payments {
  width: 100%;
  margin: 0 !important;
  padding: 12px 18px !important;
  border: 1px solid #dfe5eb !important;
  border-radius: 8px !important;
  box-sizing: border-box !important;
}

body.single-product div.product .summary.entry-summary > fieldset.ast-single-product-payments ul {
  margin: 0 !important;
  padding: 0 !important;
}

body.single-product div.product .summary.entry-summary > fieldset.ast-single-product-payments legend {
  margin: 0 !important;
  padding: 0 12px !important;
  line-height: 1.1 !important;
}

/* =========================
   Auxiliares summary
   ========================= */

body.single-product .site-main > .product.type-product .summary > .woocommerce-payment-methods,
body.single-product .site-main > .product.type-product .summary > .payment-icons,
body.single-product .site-main > .product.type-product .summary > .payment_methods,
body.single-product .site-main > .product.type-product .summary > .secure-payment,
body.single-product .site-main > .product.type-product .summary > .guaranteed-safe-checkout,
body.single-product .site-main > .product.type-product .summary > .yith-wcwl-add-to-wishlist {
  margin-top: 18px;
}

/* =========================
   Tabs / descripción
   ========================= */

body.single-product .site-main > .product.type-product .woocommerce-tabs {
  margin-top: 54px;
  margin-bottom: 2em !important;
  padding-top: 2em !important;
}

  body.single-product div.product.type-product > div.woocommerce-tabs.wc-tabs-wrapper {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
  }

body.single-product .site-main > .product.type-product .woocommerce-tabs ul.tabs {
  margin: 0 0 20px !important;
  padding: 0 !important;
  border-bottom: 1px solid #e7ecf1;
}

body.single-product .site-main > .product.type-product .woocommerce-tabs ul.tabs::before,
body.single-product .site-main > .product.type-product .woocommerce-tabs ul.tabs::after,
body.single-product .site-main > .product.type-product .woocommerce-tabs ul.tabs li::before,
body.single-product .site-main > .product.type-product .woocommerce-tabs ul.tabs li::after {
  display: none !important;
}

body.single-product .site-main > .product.type-product .woocommerce-tabs ul.tabs li {
  margin: 0 22px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  border-radius: 0 !important;
}

body.single-product .site-main > .product.type-product .woocommerce-tabs ul.tabs li a {
  display: inline-block;
  padding: 0 0 12px !important;
  color: #5f6975 !important;
  font-size: 14px;
  font-weight: 600 !important;
  line-height: 1.2;
}

body.single-product .site-main > .product.type-product .woocommerce-tabs ul.tabs li.active a {
  color: #111 !important;
  box-shadow: inset 0 -2px 0 #111;
}

body.single-product .site-main > .product.type-product .woocommerce-Tabs-panel {
  max-width: 980px;
  margin: 0;
  padding: 0;
  color: #4f5965;
  font-size: 15px;
  line-height: 1.8;
}

body.single-product .site-main > .product.type-product .woocommerce-Tabs-panel h2 {
  margin: 0 0 16px;
  color: #111;
  font-size: 28px;
  line-height: 1.04;
  font-weight: 700;
  letter-spacing: -0.02em;
}

body.single-product .site-main > .product.type-product .woocommerce-Tabs-panel p,
body.single-product .site-main > .product.type-product .woocommerce-Tabs-panel ul,
body.single-product .site-main > .product.type-product .woocommerce-Tabs-panel ol {
  margin-bottom: 16px;
}

/* =========================
   Relacionados / upsells
   ========================= */

body.single-product .site-main > .product.type-product .related,
body.single-product .site-main > .product.type-product .up-sells,
body.single-product .site-main > .product.type-product .upsells {
  margin-top: 28px !important;
  margin-bottom: 0 !important;
  padding-top: 34px;
  padding-bottom: 0 !important;
  border-top: 1px solid #e7ecf1;
}

body.single-product section.related.products > h2,
body.single-product .site-main > .product.type-product .related > h2,
body.single-product .site-main > .product.type-product .up-sells > h2,
body.single-product .site-main > .product.type-product .upsells > h2 {
  margin: 0 0 22px !important;
  color: var(--publisher-product-text) !important;
  font-size: 30px !important;
  line-height: 1.15 !important;
  font-weight: 650 !important;
  letter-spacing: -0.025em !important;
}

body.single-product .site-main > .product.type-product .related ul.products,
body.single-product .site-main > .product.type-product .up-sells ul.products,
body.single-product .site-main > .product.type-product .upsells ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  margin: 0 !important;
  padding: 0 !important;
}

body.single-product .site-main > .product.type-product .related ul.products::before,
body.single-product .site-main > .product.type-product .related ul.products::after,
body.single-product .site-main > .product.type-product .up-sells ul.products::before,
body.single-product .site-main > .product.type-product .up-sells ul.products::after,
body.single-product .site-main > .product.type-product .upsells ul.products::before,
body.single-product .site-main > .product.type-product .upsells ul.products::after {
  display: none !important;
}

body.single-product .site-main > .product.type-product .related ul.products li.product,
body.single-product .site-main > .product.type-product .up-sells ul.products li.product,
body.single-product .site-main > .product.type-product .upsells ul.products li.product {
  position: relative;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  float: none !important;
  list-style: none;
}

/* Ocultar descripción corta en productos relacionados */
body.single-product section.related.products .astra-shop-summary-wrap .ast-woo-shop-product-description {
  display: none !important;
}

/* Badge oferta · relacionados */
body.single-product section.related.products ul.products li.product .astra-shop-thumbnail-wrap {
  position: relative !important;
  overflow: hidden;
  border-radius: 10px;
}

/* Badge oferta · relacionados */
body.single-product section.related.products ul.products li.product .astra-shop-thumbnail-wrap span.onsale {
  position: absolute !important;
  top: 10px !important;
  left: 10px !important;
  right: auto !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  min-width: 0 !important;
  min-height: 0 !important;
  width: auto !important;
  height: auto !important;

  margin: 0 !important;
  padding: 5px 8px !important;

  border-radius: 5px !important;
  background: #8b4cf6 !important;
  background-color: #8b4cf6 !important;
  color: #fff !important;

  font-size: 11px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-align: center !important;

  z-index: 20 !important;
}

body.single-product .site-main > .product.type-product .related ul.products li.product > *:last-child,
body.single-product .site-main > .product.type-product .up-sells ul.products li.product > *:last-child,
body.single-product .site-main > .product.type-product .upsells ul.products li.product > *:last-child {
  margin-bottom: 0 !important;
}

body.single-product .site-main > .product.type-product .related ul.products li.product a,
body.single-product .site-main > .product.type-product .up-sells ul.products li.product a,
body.single-product .site-main > .product.type-product .upsells ul.products li.product a {
  text-decoration: none;
}

body.single-product section.related.products .astra-shop-thumbnail-wrap img {
  display: block !important;
  width: 100% !important;
  aspect-ratio: 1 / 1 !important;
  margin: 0 !important;
  border-radius: 5px !important;
  object-fit: cover !important;
}

body.single-product section.related.products .astra-shop-thumbnail-wrap {
  position: relative !important;
  overflow: hidden !important;
  border-radius: 5px !important;
  margin: 0 0 12px !important;
}

body.single-product .site-main > .product.type-product .related ul.products li.product .woocommerce-loop-product__title,
body.single-product .site-main > .product.type-product .up-sells ul.products li.product .woocommerce-loop-product__title,
body.single-product .site-main > .product.type-product .upsells ul.products li.product .woocommerce-loop-product__title {
  margin: 0 0 8px;
  padding: 0 !important;
  color: var(--publisher-product-text);
  font-size: 16px !important;
  line-height: 1.25;
  font-weight: 750;
  letter-spacing: -0.015em;
}



body.single-product .site-main > .product.type-product .related ul.products li.product .price,
body.single-product .site-main > .product.type-product .up-sells ul.products li.product .price,
body.single-product .site-main > .product.type-product .upsells ul.products li.product .price {
  display: flex;
  align-items: baseline;
  gap: 6px;
  margin: 0 0 14px;
  color: var(--publisher-product-green);
  font-size: 15px;
  line-height: 1.2;
  font-weight: 800;
}

body.single-product .site-main > .product.type-product .related ul.products li.product .price del,
body.single-product .site-main > .product.type-product .up-sells ul.products li.product .price del,
body.single-product .site-main > .product.type-product .upsells ul.products li.product .price del {
  color: #8a94a0;
  opacity: 1;
  font-size: 13px;
  font-weight: 500;
}

body.single-product .site-main > .product.type-product .related ul.products li.product .price ins,
body.single-product .site-main > .product.type-product .up-sells ul.products li.product .price ins,
body.single-product .site-main > .product.type-product .upsells ul.products li.product .price ins {
  text-decoration: none;
}

body.single-product .site-main > .product.type-product .related ul.products li.product .button,
body.single-product .site-main > .product.type-product .up-sells ul.products li.product .button,
body.single-product .site-main > .product.type-product .upsells ul.products li.product .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;

  min-height: 44px;
  width: 100%;
  padding: 0 16px;
  margin-bottom: 0 !important;

  border: 0;
  border-radius: 10px;
  background: #fa1188 !important;
  color: #fff !important;

  font-size: 14px;
  font-weight: 750;
  box-shadow: none;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}

body.single-product .site-main > .product.type-product .related ul.products li.product .button:hover,
body.single-product .site-main > .product.type-product .up-sells ul.products li.product .button:hover,
body.single-product .site-main > .product.type-product .upsells ul.products li.product .button:hover {
  background: #d90f76 !important;
  color: #fff !important;
  transform: translateY(-1px);
}
/* =========================
   FIX FINAL · Botón relacionados rosa + ancho foto
   ========================= */

body.single-product section.related.products ul.products li.product a.button,
body.single-product section.related.products ul.products li.product a.button.product_type_simple,
body.single-product section.related.products ul.products li.product a.add_to_cart_button,
body.single-product section.related.products ul.products li.product a.ajax_add_to_cart {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  width: 100% !important;
  max-width: 100% !important;

  min-height: 46px !important;
  margin: 14px 0 0 !important;
  padding: 0 18px !important;

  box-sizing: border-box !important;

  background: #fa1188 !important;
  background-color: #fa1188 !important;
  color: #fff !important;

  border: 0 !important;
  border-radius: 10px !important;
  box-shadow: none !important;

  font-size: 15px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  text-align: center !important;

  transition: background .18s ease, transform .18s ease;
}

body.single-product section.related.products ul.products li.product a.button:hover,
body.single-product section.related.products ul.products li.product a.button.product_type_simple:hover,
body.single-product section.related.products ul.products li.product a.add_to_cart_button:hover,
body.single-product section.related.products ul.products li.product a.ajax_add_to_cart:hover {
  background: #d90f76 !important;
  background-color: #d90f76 !important;
  color: #fff !important;
  transform: translateY(-1px);
}

/* =========================
   FIX escritorio · ocultar controles móviles
   ========================= */

@media (min-width: 641px) {

  /* Ocultar flechas móviles bajo/encima de la galería en escritorio/tablet */
  body.single-product .publisher-product-main-arrows,
  body.single-product .publisher-product-main-arrow {
    display: none !important;
  }

  /* Ocultar botón Ver más de descripción en escritorio/tablet */
  body.single-product .publisher-product-description-toggle {
    display: none !important;
  }

  /* En escritorio/tablet la descripción no debe estar colapsada */
  body.single-product .publisher-product-mobile-desc-text,
  body.single-product .publisher-product-mobile-desc-text.is-mobile-collapsed {
    display: block !important;
    overflow: visible !important;
    -webkit-line-clamp: unset !important;
    -webkit-box-orient: unset !important;
    
    
    
  }
}

/* =========================
   Responsive
   ========================= */

/* =========================
   Escritorio medio
   hasta 1180px
   ========================= */

@media (max-width: 1180px) {
  body.single-product .site-main > .product.type-product .product_title {
    font-size: 36px;
  }

  body.single-product .site-main > .product.type-product .related ul.products,
  body.single-product .site-main > .product.type-product .up-sells ul.products,
  body.single-product .site-main > .product.type-product .upsells ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}


/* =========================
   Tablet · escritorio comprimido
   641px a 980px
   ========================= */

@media (min-width: 641px) and (max-width: 980px) {
  body.single-product .site-main > .product.type-product {
    display: grid;
    grid-template-columns: minmax(0, 1.04fr) minmax(320px, .96fr);
    column-gap: 28px;
    align-items: start;

    max-width: 1180px;
    padding: 26px 18px 44px;
  }

  body.single-product .site-main > .product.type-product > .woocommerce-product-gallery,
  body.single-product .site-main > .product.type-product > .summary {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
  }

  body.single-product .site-main > .product.type-product > .woocommerce-product-gallery {
    grid-column: 1;
  }

  body.single-product .site-main > .product.type-product > .summary {
    grid-column: 2;
    padding-top: 0 !important;
  }

  body.single-product .site-main > .product.type-product > .woocommerce-tabs,
  body.single-product .site-main > .product.type-product > .related,
  body.single-product .site-main > .product.type-product > .up-sells,
  body.single-product .site-main > .product.type-product > .upsells {
    grid-column: 1 / -1;
  }

  body.single-product .site-main > .product.type-product .product_title {
    font-size: 28px;
    line-height: 1.08;
  }

  body.single-product .publisher-product-intro-line {
    font-size: 13px !important;
  }

  body.single-product div.product .summary.entry-summary > .woocommerce-product-details__short-description {
    font-size: 13px !important;
    line-height: 1.45 !important;
  }



  body.single-product div.product .summary.entry-summary > form.cart {
    gap: 16px !important;
  }

  body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button,
  body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button.button,
  body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button.button.alt {
    min-height: 40px;
    padding: 0 24px !important;
    font-size: 14px;
  }

  body.single-product .publisher-product-trust {
    gap: 12px;
    margin-top: 20px !important;
  }

  body.single-product .publisher-product-trust__icon {
    font-size: 22px;
  }

  body.single-product .publisher-product-trust__item strong {
    font-size: 11px;
  }

  body.single-product .publisher-product-trust__item span:last-child {
    font-size: 10.5px;
  }

  body.single-product .site-main > .product.type-product .related ul.products,
  body.single-product .site-main > .product.type-product .up-sells ul.products,
  body.single-product .site-main > .product.type-product .upsells ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
  }
}

/* =========================
   Móvil · ficha producto
   hasta 640px
   ========================= */

@media (max-width: 640px) {
  body.single-product .ast-woocommerce-container {
    padding-top: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
  

/* FIX móvil · limpiar aire superior/inferior del contenedor Astra */
body.single-product #primary,
body.single-product .content-area.primary,
body.single-product .site-content #primary {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
}

  /* =========================
     Base móvil
     ========================= */

  body.single-product div.product.type-product {
    display: block !important;
    padding: 0px 16px 16px !important;
    box-sizing: border-box !important;
  }

  body.single-product div.product .summary.entry-summary {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* =========================
     Orden móvil dentro del summary
     JS mete la galería dentro del summary
     después del título
     ========================= */

    body.single-product div.product .summary.entry-summary > .woocommerce-breadcrumb {
      order: 1 !important;
    }
    
    body.single-product div.product .summary.entry-summary > .woocommerce-product-gallery {
      order: 2 !important;
    }
    
    body.single-product div.product .summary.entry-summary > .product_title {
      order: 3 !important;
    }
    
    body.single-product div.product .summary.entry-summary > .publisher-product-intro-line {
      order: 4 !important;
    }

  body.single-product div.product .summary.entry-summary > .publisher-product-stock-line {
    order: 5 !important;
  }
  
  body.single-product div.product .summary.entry-summary > .price {
    order: 6 !important;
  }

  body.single-product div.product .summary.entry-summary > form.cart {
    order: 7 !important;
  }
  body.single-product div.product .summary.entry-summary > .publisher-product-trust {
    order: 8 !important;
  }
  
  body.single-product div.product .summary.entry-summary > .wcpay-express-checkout-wrapper,
  body.single-product div.product .summary.entry-summary > .wc-stripe-payment-request-wrapper,
  body.single-product div.product .summary.entry-summary > #wc-stripe-payment-request-wrapper {
    order: 9 !important;
  }

  body.single-product div.product .summary.entry-summary > .ast-single-product-payments,
  body.single-product div.product .summary.entry-summary > fieldset.ast-single-product-payments {
    order: 10 !important;
  }

  body.single-product div.product .summary.entry-summary > .product_meta {
    display: none !important;
  }

  /* =========================
     Breadcrumb + título
     ========================= */

body.single-product div.product .summary.entry-summary > .woocommerce-breadcrumb {
  display: block !important;
  margin: 0 0 18px !important;
  padding: 0 !important;

  color: #6d7682 !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
}
  body.single-product div.product .summary.entry-summary > .woocommerce-breadcrumb a {
    color: #6d7682 !important;
    text-decoration: none !important;
  }

body.single-product div.product .summary.entry-summary > .product_title {
  margin: 0 0 16px !important;
  color: var(--publisher-product-text) !important;
  font-size: 24px !important;
  line-height: 1.12 !important;
  font-weight: 750 !important;
  letter-spacing: -0.02em !important;
}

  /* =========================
     Intro line debajo de foto
     ========================= */

  body.single-product .publisher-product-intro-line {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 7px !important;

    max-width: 100% !important;
    margin: 0 0 16px !important;

    color: #4f5965 !important;
    font-size: 13px !important;
    line-height: 1.25 !important;

    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }

  body.single-product .publisher-product-intro-line span {
    flex: 0 0 auto !important;
  }

  body.single-product .publisher-product-intro-line span:not(:last-child)::after {
    content: "·" !important;
    margin-left: 7px !important;
    color: #8a94a0 !important;
  }

  /* Ocultar descripción corta superior en móvil */
  body.single-product div.product .summary.entry-summary > .woocommerce-product-details__short-description {
    display: none !important;
  }

  /* =========================
     Galería móvil · foto cuadrada + flechas laterales
     ========================= */

  body.single-product {
    --publisher-mobile-gallery-size: 250px;
    --publisher-mobile-arrow-size: 42px;
    --publisher-mobile-arrow-gap: 0px;
      --publisher-mobile-title-offset: 40px;
  }

body.single-product div.product div.images.woocommerce-product-gallery {
  position: relative !important;
  float: none !important;

  width: 100% !important;
  max-width: 100% !important;

  margin: 0 0 24px !important;
  padding: 0 !important;

  overflow: visible !important;
  box-sizing: border-box !important;
  opacity: 1 !important;
}
  body.single-product div.product div.images.woocommerce-product-gallery .flex-viewport {
    width: var(--publisher-mobile-gallery-size) !important;
    height: var(--publisher-mobile-gallery-size) !important;

    margin: 0 auto !important;
    padding: 0 !important;

    overflow: hidden !important;
    border-radius: 5px !important;
    background: #fff !important;
  }

  body.single-product div.product div.images.woocommerce-product-gallery .woocommerce-product-gallery__wrapper {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  body.single-product div.product div.images.woocommerce-product-gallery .woocommerce-product-gallery__image {
    width: var(--publisher-mobile-gallery-size) !important;
    height: var(--publisher-mobile-gallery-size) !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;
    border-radius: 5px !important;
    background: #fff !important;
  }

  body.single-product div.product div.images.woocommerce-product-gallery .woocommerce-product-gallery__image a {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;
    border-radius: 5px !important;
  }

  body.single-product div.product div.images.woocommerce-product-gallery .woocommerce-product-gallery__image img {
    display: block !important;

    width: 100% !important;
    height: 100% !important;

    margin: 0 !important;

    object-fit: cover !important;
    object-position: center center !important;

    border-radius: 5px !important;
    box-shadow: none !important;
  }

  /* Ocultar miniaturas */
  body.single-product .publisher-product-thumbs-shell,
  body.single-product div.product div.images.woocommerce-product-gallery ol.flex-control-nav.flex-control-thumbs {
    display: none !important;
  }

  /* Flechas laterales */
  body.single-product .publisher-product-main-arrows {
    display: block !important;
  }

body.single-product .publisher-product-main-arrow {
  position: absolute !important;
  top: 50% !important;
  z-index: 40 !important;

  width: 24px !important;
  height: 42px !important;
  padding: 0 !important;

  display: flex !important;
  align-items: center !important;

  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: #111 !important;

  font-size: 38px !important;
  line-height: 1 !important;
  font-weight: 500 !important;

  box-shadow: none !important;
  transform: translateY(-50%) !important;
  cursor: pointer !important;
}

body.single-product .publisher-product-main-arrow--prev {
  left: 0 !important;
  justify-content: flex-start !important;
}

body.single-product .publisher-product-main-arrow--next {
  right: 0 !important;
  justify-content: flex-end !important;
}

/* Badge oferta móvil · depende de la galería/foto */
body.single-product div.product div.images.woocommerce-product-gallery > span.onsale {
  position: absolute !important;

  top: 10px !important;
  left: calc(
    50% -
    (var(--publisher-mobile-gallery-size) / 2) +
    10px
  ) !important;

  right: auto !important;
  margin: 0 !important;

  padding: 3px 3px 3px !important;
  border-radius: 5px !important;

  background: #8b4cf6 !important;
  color: #fff !important;

  font-size: 10px !important;
  line-height: 1 !important;
  font-weight: 700 !important;

  z-index: 70 !important;
  
 min-height: 0 !important;
min-width: 0 !important;
  
}



  /* =========================
     Precio móvil
     ========================= */

body.single-product div.product .summary.entry-summary > .price {
  display: grid !important;
  grid-template-columns: auto auto !important;
  column-gap: 7px !important;
  row-gap: 1px !important;

  justify-content: end !important;
  align-items: baseline !important;

  width: 100% !important;
  margin: 0 0 16px !important;

  color: var(--publisher-product-text) !important;
  font-size: 25px !important;
  line-height: 1.05 !important;
  font-weight: 800 !important;
  text-align: right !important;
  white-space: nowrap !important;
}

  body.single-product div.product .summary.entry-summary > .price del {
    flex: 0 0 auto !important;
    margin-right: 0 !important;
    color: #8a94a0 !important;
    font-size: 19px !important;
    font-weight: 500 !important;
    opacity: 1 !important;
  }

  body.single-product div.product .summary.entry-summary > .price ins {
    flex: 0 0 auto !important;
    text-decoration: none !important;
  }

  body.single-product div.product .summary.entry-summary > .price .woocommerce-price-suffix {
    flex: 0 0 auto !important;
    font-size: 16px !important;
    font-weight: 800 !important;
  }

  body.single-product div.product .summary.entry-summary > .price .publisher-mobile-iva-short {
    flex: 0 0 auto !important;
    font-size: 16px !important;
    font-weight: 800 !important;
  }


body.single-product div.product .summary.entry-summary > .price del {
  grid-column: 1 !important;
  grid-row: 1 !important;
  align-self: baseline !important;
}

body.single-product div.product .summary.entry-summary > .price ins {
  grid-column: 2 !important;
  grid-row: 1 !important;
  align-self: baseline !important;
}

body.single-product div.product .summary.entry-summary > .price .woocommerce-price-suffix,
body.single-product div.product .summary.entry-summary > .price .publisher-mobile-iva-short {
  grid-column: 2 !important;
  grid-row: 2 !important;
  justify-self: end !important;

  margin: 0 !important;
  font-size: 13px !important;
  line-height: 1.05 !important;
  font-weight: 700 !important;
}

  /* =========================
     Stock
     ========================= */

body.single-product .publisher-product-stock-line {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 9px !important;

  width: 100% !important;
  margin: 0 0 6px !important;
  color: #39d353 !important;

  font-size: 15px !important;
  line-height: 1.3 !important;
  font-weight: 500 !important;
  text-align: right !important;
}

  body.single-product .publisher-product-stock-line__dot {
    width: 10px !important;
    height: 10px !important;
    border-radius: 999px !important;
    background: #39d353 !important;
  }

  /* =========================
     Cantidad + botón en una línea
     ========================= */

body.single-product div.product .summary.entry-summary > form.cart {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 22px !important;

  width: 100% !important;
  max-width: 100% !important;

  margin: 0 0 22px !important;
  padding: 0 !important;
}

  /* eliminar espacios fantasma de Woo/Astra */
  body.single-product div.product .summary.entry-summary > form.cart::before,
  body.single-product div.product .summary.entry-summary > form.cart::after {
    content: none !important;
    display: none !important;
  }

  /* bloque cantidad alineado al borde izquierdo */
  body.single-product div.product .summary.entry-summary > form.cart > .quantity,
  body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added {
    display: inline-flex !important;
    align-items: stretch !important;
    justify-content: flex-start !important;

    flex: 0 0 120px !important;
    width: 120px !important;
    min-width: 120px !important;
    max-width: 120px !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 1px solid #dfe5eb !important;
    border-radius: 0 !important;
    background: #fff !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }

  body.single-product div.product .summary.entry-summary > form.cart > .quantity .screen-reader-text,
  body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added .screen-reader-text {
    display: none !important;
  }

  /* menos / número / más más bajos */
  body.single-product div.product .summary.entry-summary > form.cart > .quantity .minus,
  body.single-product div.product .summary.entry-summary > form.cart > .quantity .plus,
  body.single-product div.product .summary.entry-summary > form.cart > .quantity input.qty,
  body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added .minus,
  body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added .plus,
  body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added input.qty {
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
    height: 40px !important;

    margin: 0 !important;
    padding: 0 !important;

    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;

    color: #253044 !important;
    font-size: 17px !important;
    line-height: 40px !important;
    text-align: center !important;
  }

  body.single-product div.product .summary.entry-summary > form.cart > .quantity .minus,
  body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added .minus {
    border-right: 1px solid #dfe5eb !important;
  }

  body.single-product div.product .summary.entry-summary > form.cart > .quantity .plus,
  body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added .plus {
    border-left: 1px solid #dfe5eb !important;
  }

  body.single-product div.product .summary.entry-summary > form.cart > .quantity input.qty,
  body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added input.qty {
    -moz-appearance: textfield !important;
    appearance: textfield !important;
  }

  body.single-product div.product .summary.entry-summary > form.cart > .quantity input.qty::-webkit-outer-spin-button,
  body.single-product div.product .summary.entry-summary > form.cart > .quantity input.qty::-webkit-inner-spin-button,
  body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added input.qty::-webkit-outer-spin-button,
  body.single-product div.product .summary.entry-summary > form.cart > .quantity.buttons_added input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
  }

  /* botón alineado al borde derecho */
body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button,
body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button.button,
body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button.button.alt {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  min-height: 40px !important;
  height: 40px !important;

  margin: 0 0 0 auto !important;
  padding: 0 22px !important;

  border: 0 !important;
  border-radius: 12px !important;
  background: #fa1188 !important;
  color: #fff !important;

  font-size: 13.5px !important;
  font-weight: 750 !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;

  box-shadow: none !important;
}

  body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button:hover,
  body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button.button:hover,
  body.single-product div.product .summary.entry-summary > form.cart > button.single_add_to_cart_button.button.alt:hover {
    background: #d90f76 !important;
    color: #fff !important;
  }

  /* =========================
     Google Pay / express
     ========================= */

  body.single-product div.product .summary.entry-summary > .wc-stripe-payment-request-wrapper,
  body.single-product div.product .summary.entry-summary > .wcpay-payment-request-wrapper,
  body.single-product div.product .summary.entry-summary > .wcpay-express-checkout-wrapper,
  body.single-product div.product .summary.entry-summary > #wc-stripe-payment-request-wrapper {
    width: 100% !important;
    margin: 0 0 18px !important;
  }

  /* =========================
     Trust móvil
     ========================= */

  body.single-product .publisher-product-trust {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 8px !important;

    margin: 4px 0 20px !important;
    padding: 0 !important;
  }

  body.single-product .publisher-product-trust__item {
    text-align: center !important;
    color: #4d5661 !important;
    font-size: 10px !important;
    line-height: 1.25 !important;
  }

  body.single-product .publisher-product-trust__icon {
    display: block !important;
    margin: 0 auto 5px !important;
    font-size: 20px !important;
    line-height: 1 !important;
  }

  body.single-product .publisher-product-trust__item strong {
    display: block !important;
    margin-bottom: 3px !important;
    color: #122033 !important;
    font-size: 10.5px !important;
    line-height: 1.2 !important;
    font-weight: 750 !important;
  }

  body.single-product .publisher-product-trust__item span:last-child {
    display: block !important;
    max-width: 78px !important;
    margin: 0 auto !important;
    color: #6d7682 !important;
    font-size: 10px !important;
    line-height: 1.25 !important;
  }

  /* =========================
     Pago seguro garantizado
     ========================= */

  body.single-product div.product .summary.entry-summary > fieldset.ast-single-product-payments {
    width: 100% !important;
    margin: 0 0 24px !important;
    padding: 12px 14px !important;
    border: 1px solid #dfe5eb !important;
    border-radius: 12px !important;
    box-sizing: border-box !important;
  }

  body.single-product div.product .summary.entry-summary > fieldset.ast-single-product-payments legend {
    margin: 0 !important;
    padding: 0 12px !important;
    font-size: 16px !important;
    line-height: 1.1 !important;
  }

  body.single-product div.product .summary.entry-summary > fieldset.ast-single-product-payments ul {
    margin: 0 !important;
    padding: 0 !important;
  }

  /* =========================
     Tabs / descripción móvil
     ========================= */

  body.single-product div.product.type-product .woocommerce-tabs {
    margin-top: 8px !important;
    margin-bottom: 28px !important;
    padding-top: 0 !important;
  }

  body.single-product div.product.type-product .woocommerce-tabs ul.tabs {
    display: none !important;
  }

  body.single-product div.product.type-product .woocommerce-Tabs-panel {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #253044 !important;
    font-size: 15px !important;
    line-height: 1.65 !important;
  }

  body.single-product div.product.type-product .woocommerce-Tabs-panel:not(.woocommerce-Tabs-panel--description) {
    display: none !important;
  }

  body.single-product div.product.type-product .woocommerce-Tabs-panel--description {
    position: relative !important;
  }

  body.single-product div.product.type-product .woocommerce-Tabs-panel--description h2 {
    display: none !important;
  }

  body.single-product div.product.type-product .woocommerce-Tabs-panel--description p {
    margin: 0 0 14px !important;
  }

  body.single-product .publisher-product-mobile-desc-text {
    position: relative !important;
  }

body.single-product .publisher-product-mobile-desc-text.is-mobile-collapsed {
  display: -webkit-box !important;
  -webkit-line-clamp: 3 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;

  margin-bottom: 0 !important;
  padding-bottom: 0 !important;

  color: #4f5965 !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  text-align: justify !important;


  hyphens: auto !important;
  -webkit-hyphens: auto !important;
}

body.single-product .publisher-product-description-toggle {
  display: flex !important;
  justify-content: flex-end !important;
  align-items: center !important;

  width: 100% !important;
  margin: 4px 0 0 !important;
  padding: 0 !important;

  border: 0 !important;
  background: transparent !important;
  color: #8b4cf6 !important;

  font-size: 15px !important;
  font-weight: 750 !important;
  line-height: 1.1 !important;
  text-align: right !important;
  text-decoration: none !important;
  cursor: pointer !important;
}
  /* =========================
     Relacionados móvil
     ========================= */

  body.single-product div.product.type-product .related,
  body.single-product div.product.type-product .up-sells,
  body.single-product div.product.type-product .upsells {
    margin-top: 18px !important;
    padding-top: 24px !important;
  }

  body.single-product section.related.products > h2,
  body.single-product div.product.type-product .related > h2,
  body.single-product div.product.type-product .up-sells > h2,
  body.single-product div.product.type-product .upsells > h2 {
    margin: 0 0 16px !important;
    font-size: 24px !important;
    line-height: 1.12 !important;
    font-weight: 750 !important;
  }

  body.single-product div.product.type-product .related ul.products,
  body.single-product div.product.type-product .up-sells ul.products,
  body.single-product div.product.type-product .upsells ul.products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 18px 12px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.single-product div.product.type-product .related ul.products li.product,
  body.single-product div.product.type-product .up-sells ul.products li.product,
  body.single-product div.product.type-product .upsells ul.products li.product {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.single-product section.related.products .astra-shop-thumbnail-wrap {
    margin: 0 0 8px !important;
    border-radius: 8px !important;
  }

  body.single-product section.related.products .astra-shop-thumbnail-wrap img {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    object-fit: cover !important;
    border-radius: 8px !important;
  }
  
/* Badge oferta · relacionados móvil */
body.single-product section.related.products ul.products li.product .astra-shop-thumbnail-wrap span.onsale {
  position: absolute !important;
  top: 10px !important;
  left: 10px !important;
  right: auto !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  margin: 0 !important;
  padding: 3px 3px 3px !important;
  border-radius: 5px !important;

  background: #8b4cf6 !important;
  background-color: #8b4cf6 !important;
  color: #fff !important;

  font-size: 10px !important;
  line-height: 1 !important;
  font-weight: 700 !important;
  text-align: center !important;

  min-width: 0 !important;
  min-height: 0 !important;
  width: auto !important;
  height: auto !important;

  z-index: 20 !important;
}

  body.single-product div.product.type-product .related ul.products li.product .woocommerce-loop-product__title,
  body.single-product div.product.type-product .up-sells ul.products li.product .woocommerce-loop-product__title,
  body.single-product div.product.type-product .upsells ul.products li.product .woocommerce-loop-product__title {
    margin: 0 0 6px !important;
    font-size: 14px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
  }

  body.single-product div.product.type-product .related ul.products li.product .price,
  body.single-product div.product.type-product .up-sells ul.products li.product .price,
  body.single-product div.product.type-product .upsells ul.products li.product .price {
    margin: 0 0 10px !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
  }

  body.single-product div.product.type-product .related ul.products li.product .price del,
  body.single-product div.product.type-product .up-sells ul.products li.product .price del,
  body.single-product div.product.type-product .upsells ul.products li.product .price del {
    font-size: 12px !important;
  }

  body.single-product section.related.products ul.products li.product a.button,
  body.single-product section.related.products ul.products li.product a.button.product_type_simple,
  body.single-product section.related.products ul.products li.product a.add_to_cart_button,
  body.single-product section.related.products ul.products li.product a.ajax_add_to_cart {
    min-height: 38px !important;
    margin: 10px 0 0 !important;
    padding: 0 10px !important;
    border-radius: 10px !important;
    font-size: 12.5px !important;
  }

/* =========================
   Ticket Woo móvil · compacto ordenado
   ========================= */

body.single-product .woocommerce-message,
body.single-product .woocommerce-info,
body.single-product .woocommerce-error {
  display: grid !important;
  grid-template-columns: 34px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 10px 12px !important;

  width: auto !important;
  max-width: calc(100% - 32px) !important;
  margin: 0 16px 22px !important;
  padding: 16px 18px !important;

  border: 1px solid #f5c6d8 !important;
  border-radius: 18px !important;
  background: #fff !important;

  color: #122033 !important;
  font-size: 15px !important;
  line-height: 1.25 !important;
  font-weight: 500 !important;

  box-sizing: border-box !important;
  overflow: hidden !important;
}

/* icono */
body.single-product .woocommerce-message::before,
body.single-product .woocommerce-info::before,
body.single-product .woocommerce-error::before {
  position: static !important;
  transform: none !important;

  grid-column: 1 !important;
  grid-row: 1 !important;

  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  min-height: 30px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  margin: 0 !important;
}

/* botón Ver carrito */
body.single-product .woocommerce-message .button,
body.single-product .woocommerce-info .button,
body.single-product .woocommerce-error .button {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;

  float: none !important;
  clear: both !important;

  width: 100% !important;
  min-height: 44px !important;
  height: 44px !important;

  margin: 6px 0 0 !important;
  padding: 0 18px !important;

  display: flex !important;
  align-items: center !important;
  justify-content: center !important;

  border-radius: 14px !important;

  font-size: 15px !important;
  line-height: 1 !important;
  font-weight: 750 !important;
}
  
    /* =========================
     flechas falsas
     ========================= */
  
  body.single-product .woocommerce-product-gallery.publisher-product-gallery--fake-single .publisher-product-main-arrow {
  color: #b8b8b8 !important;
  cursor: default !important;
}

body.single-product .woocommerce-product-gallery.publisher-product-gallery--fake-single .publisher-product-main-arrow:hover {
  color: #b8b8b8 !important;
}
}













/* =========================
   FIX FINAL · títulos relacionados máximo 2 líneas
   ========================= */

body.single-product section.related.products ul.products li.product .woocommerce-loop-product__title,
body.single-product section.related.products ul.products li.product .woocommerce-loop-product__title a,
body.single-product .site-main > .product.type-product .related ul.products li.product .woocommerce-loop-product__title,
body.single-product .site-main > .product.type-product .related ul.products li.product .woocommerce-loop-product__title a,
body.single-product .site-main > .product.type-product .up-sells ul.products li.product .woocommerce-loop-product__title,
body.single-product .site-main > .product.type-product .up-sells ul.products li.product .woocommerce-loop-product__title a,
body.single-product .site-main > .product.type-product .upsells ul.products li.product .woocommerce-loop-product__title,
body.single-product .site-main > .product.type-product .upsells ul.products li.product .woocommerce-loop-product__title a {
  display: -webkit-box !important;
  -webkit-box-orient: vertical !important;
  -webkit-line-clamp: 2 !important;
  line-clamp: 2 !important;

  overflow: hidden !important;
  text-overflow: ellipsis !important;

  max-height: calc(1.25em * 2) !important;

  word-break: normal !important;
  overflow-wrap: anywhere !important;
}


/* =========================
   FIX · eliminar zoom hover galería producto
   ========================= */

body.single-product .woocommerce-product-gallery .zoomImg {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body.single-product .woocommerce-product-gallery__image,
body.single-product .woocommerce-product-gallery__image a,
body.single-product .woocommerce-product-gallery__image img {
  cursor: default !important;
}

body.single-product .woocommerce-product-gallery__image:hover img {
  transform: none !important;
  scale: 1 !important;
}


/* =========================================================
   PUBLISHER · Single Woo · Producto variable estable
   ========================================================= */

/* Rango inicial: "Desde..." */
body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-range {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;
  justify-content: flex-start !important;
  gap: 4px !important;
  width: 100% !important;
  text-align: right !important;
}

body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-range__from {
  display: block !important;
  color: var(--publisher-product-text) !important;
  font-size: 28px !important;
  line-height: 1.05 !important;
  font-weight: 800 !important;
  letter-spacing: -0.02em !important;
}

body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-range__note {
  display: block !important;
  max-width: 340px !important;
  color: #6d7682 !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
  font-weight: 500 !important;
}



/* IVA bajo el precio inicial "Desde..." */
body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-range__from::after {
  content: "Iva incluido" !important;
  display: block !important;

  margin: 3px 0 0 !important;

  color: var(--publisher-product-text) !important;
  font-size: 13px !important;
  line-height: 1.05 !important;
  font-weight: 700 !important;
  text-align: right !important;
}

/* Cuando ya eligió variación y el producto tiene precios distintos,
   ocultamos el rango superior porque Woo muestra el precio elegido abajo */
body.single-product.publisher-variable-has-price-range.publisher-variation-selected div.product .summary.entry-summary > .price {
  display: none !important;
}

/* Si el producto variable tiene precio único en todas sus opciones,
   el precio principal NO se oculta */
body.single-product.publisher-variable-same-price.publisher-variation-selected div.product .summary.entry-summary > .price {
  display: grid !important;
}

/* El producto variable se comporta como bloque vertical ordenable */
body.single-product div.product .summary.entry-summary > form.cart.variations_form {
  display: flex !important;
  flex-direction: column !important;
  align-items: flex-end !important;

  width: 100% !important;
  max-width: 100% !important;

  margin: 0 0 22px !important;
  padding: 0 !important;

  box-sizing: border-box !important;
}

/* Tabla de variaciones limpia */
body.single-product div.product .summary.entry-summary > form.cart.variations_form table.variations {
  display: block !important;

  width: 100% !important;
  max-width: 190px !important;

  margin: 0 0 6px auto !important;
  padding: 0 !important;

  border: 0 !important;
  table-layout: fixed !important;
  border-collapse: collapse !important;

  height: auto !important;
  min-height: 0 !important;
}

body.single-product div.product .summary.entry-summary > form.cart.variations_form table.variations tbody,
body.single-product div.product .summary.entry-summary > form.cart.variations_form table.variations tr,
body.single-product div.product .summary.entry-summary > form.cart.variations_form table.variations th,
body.single-product div.product .summary.entry-summary > form.cart.variations_form table.variations td {
  display: block !important;

  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;

  height: auto !important;
  min-height: 0 !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
}

body.single-product div.product .summary.entry-summary > form.cart.variations_form table.variations th.label,
body.single-product div.product .summary.entry-summary > form.cart.variations_form table.variations label {
  display: none !important;
}

/* Select variable */
body.single-product div.product .summary.entry-summary > form.cart.variations_form table.variations select {
  display: block !important;

  width: 100% !important;
  max-width: 240px !important;
  min-height: 38px !important;
  height: 38px !important;

  margin: 0 !important;
  padding: 0 36px 0 12px !important;

  border: 1px solid #d8dee6 !important;
  border-radius: 8px !important;
  background-color: #fff !important;
  color: #253044 !important;

  font-size: 13px !important;
  line-height: 38px !important;

  box-shadow: none !important;
  box-sizing: border-box !important;
}

/* Limpiar */
body.single-product div.product .summary.entry-summary > form.cart.variations_form .reset_variations {
  display: inline-block !important;
  margin: 7px 0 0 !important;
  color: #9aa3ad !important;
  font-size: 11px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
}

/* Permite ordenar precio, select y CTA aunque Woo los meta en wrappers distintos */
body.single-product div.product .summary.entry-summary > form.cart.variations_form .single_variation_wrap {
  display: contents !important;
}
/* Orden fijo dentro del producto variable */
body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation {
  order: 1 !important;
}

body.single-product div.product .summary.entry-summary > form.cart.variations_form table.variations {
  order: 2 !important;
}

body.single-product div.product .summary.entry-summary > form.cart.variations_form .reset_variations {
  order: 2 !important;
  align-self: flex-end !important;

  width: 100% !important;
  max-width: 240px !important;

  margin: 7px 0 0 auto !important;
  padding-left: 12px !important;

  box-sizing: border-box !important;
  text-align: left !important;
}

body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart {
  order: 3 !important;
}

/* Precio de la variación elegida */
body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation {
  width: 100% !important;
  min-height: 0 !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  text-align: right !important;
}

body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-price {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  text-align: right !important;
}

body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-price .price {
  display: grid !important;
  grid-template-columns: auto auto !important;
  column-gap: 8px !important;
  row-gap: 2px !important;
  justify-content: end !important;
  align-items: baseline !important;

  margin: 0 !important;
  color: var(--publisher-product-text) !important;
  font-size: 27px !important;
  line-height: 1.05 !important;
  font-weight: 800 !important;
  text-align: right !important;
  white-space: nowrap !important;
}

body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-price .price del {
  grid-column: 1 !important;
  grid-row: 1 !important;
  margin: 0 !important;
  color: #8a94a0 !important;
  font-size: 20px !important;
  line-height: 1.05 !important;
  font-weight: 500 !important;
  opacity: 1 !important;
}

body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-price .price ins {
  grid-column: 2 !important;
  grid-row: 1 !important;
  margin: 0 !important;
  text-decoration: none !important;
}

body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-price .price .woocommerce-price-suffix,
body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-price .price .publisher-mobile-iva-short {
  grid-column: 2 !important;
  grid-row: 2 !important;
  justify-self: end !important;
  margin: 0 !important;
  color: var(--publisher-product-text) !important;
  font-size: 13px !important;
  line-height: 1.05 !important;
  font-weight: 700 !important;
}

/* Cantidad + botón debajo del precio */
body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart {
  display: flex !important;
  justify-content: space-between !important;
  align-items: center !important;
  gap: 28px !important;

  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Cantidad dentro de producto variable */
body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart > .quantity,
body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart > .quantity.buttons_added {
  display: inline-flex !important;
  align-items: stretch !important;
  justify-content: flex-start !important;

  flex: 0 0 120px !important;
  width: 120px !important;
  min-width: 120px !important;
  max-width: 120px !important;
  height: 40px !important;

  margin: 0 auto 0 0 !important;
  padding: 0 !important;

  border: 1px solid #dfe5eb !important;
  border-radius: 4px !important;
  background: #fff !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart > .quantity .screen-reader-text {
  display: none !important;
}

body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart > .quantity .minus,
body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart > .quantity .plus,
body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart > .quantity input.qty {
  width: 40px !important;
  min-width: 40px !important;
  max-width: 40px !important;
  height: 38px !important;

  margin: 0 !important;
  padding: 0 !important;

  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;

  color: #253044 !important;
  font-size: 17px !important;
  line-height: 38px !important;
  text-align: center !important;
}

body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart > .quantity .minus {
  border-right: 1px solid #dfe5eb !important;
}

body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart > .quantity .plus {
  border-left: 1px solid #dfe5eb !important;
}

/* Botón variable */
body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart > button.single_add_to_cart_button,
body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart > button.single_add_to_cart_button.button,
body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart > button.single_add_to_cart_button.button.alt {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  flex: 0 0 auto !important;
  width: auto !important;
  min-width: 190px !important;
  max-width: none !important;
  height: 40px !important;
  min-height: 40px !important;

  margin: 0 0 0 auto !important;
  padding: 0 24px !important;

  border: 0 !important;
  border-radius: 8px !important;
  background: #fa1188 !important;
  color: #fff !important;

  font-size: 14px !important;
  font-weight: 750 !important;
  line-height: 1 !important;
  text-align: center !important;
  white-space: nowrap !important;

  box-shadow: none !important;
}

/* Tablet y móvil */
@media (max-width: 980px) {
  body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-range {
    align-items: flex-start !important;
    text-align: left !important;
  }

  body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-range__from {
    font-size: 25px !important;
  }

  body.single-product div.product .summary.entry-summary > form.cart.variations_form table.variations {
    max-width: 100% !important;
  }

  body.single-product div.product .summary.entry-summary > form.cart.variations_form table.variations select {
    max-width: 100% !important;
  }

    body.single-product div.product .summary.entry-summary > form.cart.variations_form .reset_variations {
      max-width: 100% !important;
    }
    
    @media (max-width: 980px) {
  body.single-product.publisher-variable-same-price div.product .summary.entry-summary > .price .publisher-variable-price-range__note::after,
  body.single-product.publisher-variable-has-price-range div.product .summary.entry-summary > .price .publisher-variable-price-range__note::after {
    text-align: left !important;
  }
}

  body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation,
  body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-price,
  body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-price .price {
    text-align: left !important;
    justify-content: start !important;
  }

body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart {
  display: grid !important;
  grid-template-columns: 120px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 12px !important;
}

  body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart > button.single_add_to_cart_button,
  body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart > button.single_add_to_cart_button.button,
  body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart > button.single_add_to_cart_button.button.alt {
    width: 100% !important;
    min-width: 0 !important;
  }
}


/* =========================================================
   FIX · Producto variable · reducir aire entre select y CTA
   ========================================================= */

body.single-product div.product .summary.entry-summary > form.cart.variations_form {
  gap: 8px !important;
}

/* El aviso oculto de Woo no debe ocupar separación visual */
body.single-product div.product .summary.entry-summary > form.cart.variations_form .reset_variations_alert {
  display: none !important;
}

/* Select más pegado al bloque inferior */
body.single-product div.product .summary.entry-summary > form.cart.variations_form table.variations {
  margin-bottom: 0 !important;
}

/* Cuando no hay variación elegida, este bloque no debe empujar */
body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation[style*="display: none"] {
  display: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Bloque cantidad + botón */
body.single-product div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart {
  margin-top: 2px !important;
}



/* =========================================================
   PUBLISHER · Producto variable · nota real bajo precio
   ========================================================= */

body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-note {
  grid-column: 1 / -1 !important;
  grid-row: 3 !important;
  justify-self: end !important;

  display: block !important;
  max-width: 340px !important;

  margin: 7px 0 0 !important;
  padding: 0 !important;

  color: #6d7682 !important;
  font-size: 13px !important;
  line-height: 1.25 !important;
  font-weight: 500 !important;
  text-align: right !important;
  white-space: normal !important;
}

/* Si el producto variable tiene precio único, el precio principal se mantiene visible */
body.single-product.publisher-variable-same-price.publisher-variation-selected div.product .summary.entry-summary > .price {
  display: grid !important;
}

/* Si el producto variable tiene precios distintos, al elegir opción se oculta el "Desde..." */
body.single-product.publisher-variable-has-price-range.publisher-variation-selected div.product .summary.entry-summary > .price {
  display: none !important;
}

/* Producto variable con precio único:
   Woo activa .woocommerce-variation, pero no necesitamos ese bloque porque genera aire vacío */
body.single-product.publisher-variable-same-price div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
}

/* En producto de precio único, el select y el botón no deben separarse por el bloque vacío */
body.single-product.publisher-variable-same-price div.product .summary.entry-summary > form.cart.variations_form {
  gap: 6px !important;
}

body.single-product.publisher-variable-same-price div.product .summary.entry-summary > form.cart.variations_form .woocommerce-variation-add-to-cart {
  margin-top: 0 !important;
}

/* Tablet / móvil */
@media (max-width: 980px) {
  body.single-product.publisher-variable-same-price div.product .summary.entry-summary > .price,
  body.single-product.publisher-variable-has-price-range div.product .summary.entry-summary > .price {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
  }

  body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-range,
  body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-note {
    align-items: flex-start !important;
    justify-self: start !important;
    text-align: left !important;
  }
}


/* =========================================================
   FIX FINAL · Producto variable · precio alineado a la derecha
   ========================================================= */

/* En escritorio: el precio ocupa todo el ancho del summary
   y su contenido se pega al borde derecho */
@media (min-width: 981px) {
  body.single-product div.product .summary.entry-summary > .price {
    width: 100% !important;
    max-width: 100% !important;

    margin: 0 0 16px 0 !important;

    display: grid !important;
    grid-template-columns: 1fr !important;

    justify-content: stretch !important;
    justify-items: end !important;
    align-items: end !important;

    text-align: right !important;
  }

  body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-range {
    width: 100% !important;
    max-width: 100% !important;

    display: flex !important;
    flex-direction: column !important;
    align-items: flex-end !important;

    text-align: right !important;
  }

  body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-range__from,
  body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-note {
    width: 100% !important;
    max-width: 100% !important;

    display: block !important;
    text-align: right !important;
  }

  body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-note {
    margin-top: 8px !important;
  }
}

/* Tablet y móvil: vuelve a alinearse a la izquierda */
@media (max-width: 980px) {
  body.single-product div.product .summary.entry-summary > .price {
    width: 100% !important;
    max-width: 100% !important;

    margin: 0 0 16px 0 !important;

    justify-content: start !important;
    justify-items: start !important;

    text-align: left !important;
  }

  body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-range {
    width: 100% !important;
    max-width: 100% !important;

    align-items: flex-start !important;
    text-align: left !important;
  }

  body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-range__from,
  body.single-product div.product .summary.entry-summary > .price .publisher-variable-price-note {
    width: 100% !important;
    max-width: 100% !important;

    text-align: left !important;
  }
}